मुख्य कंटेंट तक स्किप करें

प्लगिन का उपयोग कैसे करें

यह गाइड आपको अपने MetaHuman कैरेक्टर्स के लिए Runtime MetaHuman Lip Sync को सेट करने की प्रक्रिया के माध्यम से ले जाती है।

नोट: Runtime MetaHuman Lip Sync MetaHuman और कस्टम कैरेक्टर्स दोनों के साथ काम करता है। प्लगिन विभिन्न प्रकार के कैरेक्टर्स का समर्थन करता है, जिनमें शामिल हैं:

  • लोकप्रिय व्यावसायिक कैरेक्टर्स (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, आदि)
  • FACS-आधारित ब्लेंडशेप्स वाले कैरेक्टर्स
  • ARKit ब्लेंडशेप मानकों का उपयोग करने वाले मॉडल
  • Preston Blair फोनीम सेट वाले कैरेक्टर्स
  • 3ds Max फोनीम सिस्टम
  • चेहरे के भावों के लिए कस्टम मॉर्फ टारगेट वाले कोई भी कैरेक्टर

सभी उपरोक्त मानकों के लिए विसीम मैपिंग संदर्भों सहित कस्टम कैरेक्टर्स को सेट करने के विस्तृत निर्देशों के लिए, कस्टम कैरेक्टर सेटअप गाइड देखें।

पूर्वापेक्षाएँ

शुरू करने से पहले, सुनिश्चित करें:

  1. आपके प्रोजेक्ट में MetaHuman प्लगिन सक्षम है (नोट: UE 5.6 से शुरू होकर, यह चरण अब आवश्यक नहीं है क्योंकि MetaHuman कार्यक्षमता सीधे इंजन में एकीकृत है)
  2. आपके पास कम से कम एक MetaHuman कैरेक्टर डाउनलोड किया गया है और आपके प्रोजेक्ट में उपलब्ध है
  3. Runtime MetaHuman Lip Sync प्लगिन इंस्टॉल किया गया है

अतिरिक्त प्लगिन:

  • यदि आप ऑडियो कैप्चर (जैसे, माइक्रोफोन इनपुट) का उपयोग करने की योजना बना रहे हैं, तो Runtime Audio Importer प्लगिन इंस्टॉल करें।
  • यदि आप टेक्स्ट-टू-स्पीच कार्यक्षमता का उपयोग करने की योजना बना रहे हैं, तो Runtime Text To Speech प्लगिन इंस्टॉल करें।

प्लेटफॉर्म-विशिष्ट कॉन्फिगरेशन

Android / Meta Quest कॉन्फिगरेशन

यदि आप Android या Meta Quest प्लेटफॉर्म को लक्षित कर रहे हैं और इस प्लगिन के साथ बिल्ड त्रुटियों का सामना कर रहे हैं, तो आपको अपने प्रोजेक्ट सेटिंग्स में x86_64 (x64) Android आर्किटेक्चर को अक्षम करने की आवश्यकता होगी:

  1. Edit > Project Settings पर जाएं
  2. Platforms > Android पर नेविगेट करें
  3. Platforms - Android, Build सेक्शन के अंतर्गत, Support x86_64 [aka x64] ढूंढें और सुनिश्चित करें कि यह अक्षम है, जैसा कि नीचे दिखाया गया है

Disable x64 Android Architecture

ऐसा इसलिए है क्योंकि प्लगिन वर्तमान में केवल Android / Meta Quest प्लेटफॉर्म के लिए arm64-v8a और armeabi-v7a आर्किटेक्चर का समर्थन करता है।

सेटअप प्रक्रिया

चरण 1: फेस एनिमेशन ब्लूप्रिंट का पता लगाएं और संशोधित करें

आपको अपने MetaHuman कैरेक्टर के चेहरे के एनिमेशन के लिए उपयोग किए जाने वाले एनिमेशन ब्लूप्रिंट को संशोधित करने की आवश्यकता है। डिफ़ॉल्ट MetaHuman फेस एनिमेशन ब्लूप्रिंट यहां स्थित है:

Content/MetaHumans/Common/Face/Face_AnimBP

Face Animation Blueprint

लिप सिंक कार्यक्षमता को लागू करने के लिए आपके पास कई विकल्प हैं:

डिफ़ॉल्ट Face_AnimBP को सीधे खोलें और अपने संशोधन करें। कोई भी परिवर्तन सभी MetaHuman कैरेक्टर्स को प्रभावित करेगा जो इस एनिमेशन ब्लूप्रिंट का उपयोग करते हैं।

नोट: यह दृष्टिकोण सुविधाजनक है लेकिन डिफ़ॉल्ट एनिमेशन ब्लूप्रिंट का उपयोग करने वाले सभी कैरेक्टर्स को प्रभावित करेगा।

महत्वपूर्ण: Runtime MetaHuman Lip Sync ब्लेंडिंग को किसी भी एनिमेशन ब्लूप्रिंट एसेट में लागू किया जा सकता है जिसमें डिफ़ॉल्ट MetaHuman के Face_Archetype_Skeleton में मौजूद चेहरे की हड्डियों वाले पोज़ तक पहुंच है। आप ऊपर दिए गए विकल्पों तक सीमित नहीं हैं - ये केवल सामान्य कार्यान्वयन दृष्टिकोण हैं।

चरण 2: इवेंट ग्राफ सेटअप

अपना फेस एनिमेशन ब्लूप्रिंट खोलें और Event Graph पर स्विच करें। आपको एक जनरेटर बनाने की आवश्यकता होगी जो ऑडियो डेटा को प्रोसेस करेगा और लिप सिंक एनिमेशन उत्पन्न करेगा।

  1. यदि पहले से मौजूद नहीं है तो Event Blueprint Begin Play नोड जोड़ें
  2. Create Runtime Viseme Generator नोड जोड़ें और इसे Begin Play इवेंट से कनेक्ट करें
  3. ग्राफ के अन्य भागों में उपयोग के लिए आउटपुट को एक वेरिएबल (जैसे "VisemeGenerator") के रूप में सहेजें

Creating Runtime Viseme Generator

चरण 3: ऑडियो इनपुट प्रोसेसिंग सेट करें

आपको ऑडियो इनपुट को प्रोसेस करने के लिए एक विधि सेट करने की आवश्यकता है। आपके ऑडियो स्रोत के आधार पर ऐसा करने के कई तरीके हैं।

यह दृष्टिकोण माइक्रोफोन में बोलते समय रियल-टाइम में लिप सिंक करता है:

  1. Runtime Audio Importer का उपयोग करके Capturable Sound Wave बनाएं
  2. ऑडियो कैप्चर करना शुरू करने से पहले, OnPopulateAudioData डेलीगेट से बाइंड करें
  3. बाइंड किए गए फंक्शन में, अपने Runtime Viseme Generator से ProcessAudioData कॉल करें
  4. माइक्रोफोन से ऑडियो कैप्चर करना शुरू करें

कॉपी करने योग्य नोड्स

Lip Sync During Audio Capture

चरण 4: Anim ग्राफ सेटअप

इवेंट ग्राफ को सेट करने के बाद, जनरेटर को कैरेक्टर के एनिमेशन से कनेक्ट करने के लिए Anim Graph पर स्विच करें:

लिप सिंक

  1. उस पोज़ का पता लगाएं जिसमें MetaHuman फेस है (आमतौर पर Use cached pose 'Body Pose' से)
  2. Blend Runtime MetaHuman Lip Sync नोड जोड़ें
  3. पोज़ को Blend Runtime MetaHuman Lip Sync नोड के Source Pose से कनेक्ट करें
  4. अपने RuntimeVisemeGenerator वेरिएबल को Viseme Generator पिन से कनेक्ट करें
  5. Blend Runtime MetaHuman Lip Sync नोड के आउटपुट को Output Pose के Result पिन से कनेक्ट करें

Blend Runtime MetaHuman Lip Sync

जब ऑडियो में लिप सिंक का पता चलता है, तो आपका कैरेक्टर गतिशील रूप से एनिमेट होगा:

Lip Sync

हंसी एनिमेशन

आप हंसी एनिमेशन भी जोड़ सकते हैं जो ऑडियो में पाई गई हंसी के प्रति गतिशील रूप से प्रतिक्रिया करेंगी:

  1. Blend Runtime MetaHuman Laughter नोड जोड़ें
  2. अपने RuntimeVisemeGenerator वेरिएबल को Viseme Generator पिन से कनेक्ट करें
  3. यदि आप पहले से ही लिप सिंक का उपयोग कर रहे हैं:
    • Blend Runtime MetaHuman Lip Sync नोड के आउटपुट को Blend Runtime MetaHuman Laughter नोड के Source Pose से कनेक्ट करें
    • Blend Runtime MetaHuman Laughter नोड के आउटपुट को Output Pose के Result पिन से कनेक्ट करें
  4. यदि लिप सिंक के बिना केवल हंसी का उपयोग कर रहे हैं:
    • अपने सोर्स पोज़ को सीधे Blend Runtime MetaHuman Laughter नोड के Source Pose से कनेक्ट करें
    • आउटपुट को Result पिन से कनेक्ट करें

Blend Runtime MetaHuman Laughter

जब ऑडियो में हंसी का पता चलता है, तो आपका कैरेक्टर गतिशील रूप से एनिमेट होगा:

Laughter

बॉडी एनिमेशन के साथ जोड़ना

उन्हें ओवरराइड किए बिना मौजूदा बॉडी एनिमेशन के साथ लिप सिंक और हंसी लागू करने के लिए:

  1. अपने बॉडी एनिमेशन और अंतिम आउटपुट के बीच एक Layered blend per bone नोड जोड़ें। सुनिश्चित करें कि Use Attached Parent true है।
  2. लेयर सेटअप कॉन्फ़िगर करें:
    • Layer Setup एरे में 1 आइटम जोड़ें
    • लेयर के लिए Branch Filters में 3 आइटम जोड़ें, निम्नलिखित Bone Name के साथ:
      • FACIAL_C_FacialRoot
      • FACIAL_C_Neck2Root
      • FACIAL_C_Neck1Root
  3. कनेक्शन बनाएं:
    • मौजूदा एनिमेशन (जैसे BodyPose) → Base Pose इनपुट
    • फेशियल एनिमेशन आउटपुट (लिप सिंक और/या हंसी नोड्स से) → Blend Poses 0 इनपुट
    • लेयर्ड ब्लेंड नोड → अंतिम Result पोज़

Layered Blend Per Bone

यह क्यों काम करता है: ब्रांच फिल्टर फेशियल एनिमेशन बोन्स को अलग करते हैं, जिससे लिप सिंक और हंसी विशेष रूप से चेहरे की हरकतों के साथ ब्लेंड हो सकते हैं जबकि मूल बॉडी एनिमेशन को संरक्षित रखते हैं। यह MetaHuman फेशियल रिग स्ट्रक्चर से मेल खाता है, जिससे प्राकृतिक एकीकरण सुनिश्चित होता है।

मैं हिंदी अनुवाद जारी रखूंगा:

नोट: लिप सिंक और हंसी फीचर्स आपके मौजूदा एनिमेशन सेटअप के साथ गैर-विनाशकारी ढंग से काम करने के लिए डिज़ाइन किए गए हैं। वे केवल मुंह की हरकत के लिए आवश्यक विशिष्ट चेहरे की हड्डियों को प्रभावित करते हैं, जिससे अन्य चेहरे के एनिमेशन अक्षुण्ण रहते हैं। इसका मतलब है कि आप उन्हें अपनी एनिमेशन चेन में किसी भी बिंदु पर सुरक्षित रूप से एकीकृत कर सकते हैं - या तो अन्य चेहरे के एनिमेशन से पहले (जिससे उन एनिमेशन को लिप सिंक/हंसी को ओवरराइड करने की अनुमति मिलती है) या उनके बाद (जिससे लिप सिंक/हंसी आपके मौजूदा एनिमेशन के ऊपर ब्लेंड हो सकते हैं)। यह लचीलापन आपको लिप सिंक और हंसी को आंखों की झपकी, भौंहों की हरकतों, भावनात्मक अभिव्यक्तियों, और अन्य चेहरे के एनिमेशन के साथ बिना किसी कॉन्फ्लिक्ट के जोड़ने की अनुमति देता है।

कॉन्फिगरेशन

लिप सिंक कॉन्फिगरेशन

Blend Runtime MetaHuman Lip Sync नोड के प्रॉपर्टीज पैनल में कॉन्फिगरेशन विकल्प हैं:

प्रॉपर्टीडिफ़ॉल्टविवरण
Interpolation Speed25नियंत्रित करता है कि होंठों की हरकतें विसीम के बीच कितनी जल्दी ट्रांज़िशन करती हैं। उच्च मान तेज़ और अधिक अचानक ट्रांज़िशन में परिणाम देते हैं।
Reset Time0.2सेकंड में अवधि जिसके बाद लिप सिंक रीसेट हो जाता है। यह लिप सिंक को ऑडियो बंद होने के बाद जारी रहने से रोकने के लिए उपयोगी है।

हंसी कॉन्फिगरेशन

Blend Runtime MetaHuman Laughter नोड के अपने कॉन्फिगरेशन विकल्प हैं:

प्रॉपर्टीडिफ़ॉल्टविवरण
Interpolation Speed25नियंत्रित करता है कि होंठों की हरकतें हंसी एनिमेशन के बीच कितनी जल्दी ट्रांज़िशन करती हैं। उच्च मान तेज़ और अधिक अचानक ट्रांज़िशन में परिणाम देते हैं।
Reset Time0.2सेकंड में अवधि जिसके बाद हंसी रीसेट हो जाती है। यह हंसी को ऑडियो बंद होने के बाद जारी रहने से रोकने के लिए उपयोगी है।
Max Laughter Weight0.7हंसी एनिमेशन की अधिकतम तीव्रता को स्केल करता है (0.0 - 1.0)।

लिप सिंक मॉडल का चयन करना

अपने प्रोजेक्ट के लिए कौन सा लिप सिंक मॉडल उपयोग करना है, इसका निर्णय करते समय इन कारकों पर विचार करें:

विचारस्टैंडर्ड मॉडलरियलिस्टिक मॉडल
कैरेक्टर संगतताMetaHumans और सभी कस्टम कैरेक्टर प्रकारकेवल MetaHumans
विजुअल क्वालिटीकुशल प्रदर्शन के साथ अच्छा लिप सिंकअधिक प्राकृतिक मुंह की हरकतों के साथ बेहतर यथार्थता
प्रदर्शनमोबाइल/VR सहित सभी प्लेटफॉर्म के लिए अनुकूलितथोड़ी अधिक संसाधन आवश्यकताएँ
उपयोग के मामलेसामान्य अनुप्रयोग, गेम्स, VR/AR, मोबाइलसिनेमैटिक अनुभव, क्लोज-अप कैरेक्टर इंटरैक्शन

इंजन वर्जन संगतता

UE 5.2 संगतता समस्या

यदि आप अनरियल इंजन 5.2 का उपयोग कर रहे हैं, तो UE के रीसैम्पलिंग लाइब्रेरी में एक बग के कारण रियलिस्टिक मॉडल सही ढंग से काम नहीं कर सकता है। UE 5.2 उपयोगकर्ताओं के लिए जिन्हें विश्वसनीय लिप सिंक कार्यक्षमता की आवश्यकता है, कृपया इसके बजाय स्टैंडर्ड मॉडल का उपयोग करें।

यह समस्या विशेष रूप से UE 5.2 के लिए है और अन्य इंजन वर्जन को प्रभावित नहीं करती है।

अधिकांश प्रोजेक्ट्स के लिए, स्टैंडर्ड मॉडल गुणवत्ता और प्रदर्शन का उत्कृष्ट संतुलन प्रदान करता है और साथ ही कैरेक्टर प्रकारों की सबसे व्यापक रेंज का समर्थन करता है। रियलिस्टिक मॉडल आदर्श है जब आपको विशेष रूप से MetaHuman कैरेक्टर्स के लिए उच्चतम विजुअल फिडेलिटी की आवश्यकता होती है, ऐसे संदर्भों में जहां प्रदर्शन ओवरहेड कम महत्वपूर्ण है।