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

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

यह गाइड आपको अपने 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 प्लगइन इंस्टॉल है

स्टैंडर्ड मॉडल एक्सटेंशन प्लगइन

यदि आप स्टैंडर्ड (तेज़) मॉडल का उपयोग करने की योजना बना रहे हैं, तो आपको एक्सटेंशन प्लगइन इंस्टॉल करने की आवश्यकता होगी:

  1. स्टैंडर्ड लिप सिंक एक्सटेंशन प्लगइन को Google Drive से डाउनलोड करें
  2. डाउनलोड की गई आर्काइव से फ़ोल्डर को अपने प्रोजेक्ट के Plugins फ़ोल्डर में निकालें (यदि यह फ़ोल्डर मौजूद नहीं है तो इसे बनाएं)
  3. सुनिश्चित करें कि आपका प्रोजेक्ट एक C++ प्रोजेक्ट के रूप में सेट अप है (भले ही आपके पास कोई C++ कोड न हो)
  4. अपने प्रोजेक्ट को रीबिल्ड करें
note
  • यह एक्सटेंशन केवल तभी आवश्यक है यदि आप स्टैंडर्ड मॉडल का उपयोग करना चाहते हैं। यदि आपको केवल यथार्थवादी मॉडल की आवश्यकता है, तो आप इस चरण को छोड़ सकते हैं।
  • प्लगइन्स को मैन्युअल रूप से बनाने के तरीके के बारे में अधिक जानकारी के लिए, बिल्डिंग प्लगइन्स ट्यूटोरियल देखें

अतिरिक्त प्लगइन्स

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

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

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

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

Content/MetaHumans/Common/Face/Face_AnimBP

Face Animation Blueprint

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

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

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

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

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

अपना Face एनीमेशन ब्लूप्रिंट खोलें और 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. माइक्रोफोन से ऑडियो कैप्चर करना शुरू करें

Copyable nodes.

Lip Sync During Audio Capture

चरण 4: Anim Graph सेटअप

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

Lip Sync

  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. कस्टम फेशियल एनिमेशन के लिए महत्वपूर्ण: Curve Blend Option में, "Use Max Value" चुनें। यह कस्टम फेशियल एनिमेशन (एक्सप्रेशन, इमोशन, आदि) को लिप सिंक के ऊपर ठीक से लेयर करने की अनुमति देता है।
  4. कनेक्शन बनाएँ:
    • मौजूदा एनिमेशन (जैसे BodyPose) → Base Pose इनपुट
    • फेशियल एनिमेशन आउटपुट (लिप सिंक और/या हंसी नोड्स से) → Blend Poses 0 इनपुट
    • लेयर्ड ब्लेंड नोड → फाइनल Result पोज़

Layered Blend Per Bone

यह क्यों काम करता है: ब्रांच फ़िल्टर फेशियल एनिमेशन बोन को अलग करते हैं, जिससे लिप सिंक और हंसी विशेष रूप से फेशियल मूवमेंट के साथ ब्लेंड हो सके जबकि मूल बॉडी एनिमेशन संरक्षित रहते हैं। "Use Max Value" कर्व ब्लेंड विकल्प प्रत्येक कर्व से अधिकतम मान लेता है न कि उन्हें एडिटिवली ब्लेंड करता है, जिससे कस्टम फेशियल एनिमेशन (जैसे एक्सप्रेशन और इमोशन) को लिप सिंक के साथ बिना कॉन्फ्लिक्ट के ठीक से संयोजित किया जा सकता है। यह प्राकृतिक एकीकरण के लिए MetaHuman फेशियल रिग संरचना से मेल खाता है।

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

लिप सिंक व्यवहार को फाइन-ट्यून करना

बेसिक लिप सिंक फंक्शनैलिटी सेटअप करने के बाद, आप अपने प्रोजेक्ट की आवश्यकताओं के अनुरूप मुँह की हलचल के विशिष्ट पहलुओं को बेहतर ढंग से समायोजित करना चाह सकते हैं।

जीभ बाहर निकलने का नियंत्रण

स्टैंडर्ड लिप सिंक मॉडल में, आप कुछ फोनेम के दौरान अत्यधिक आगे की ओर जीभ की हलचल देख सकते हैं। जीभ बाहर निकलने को नियंत्रित करने के लिए:

  1. अपने Blend Runtime MetaHuman Lip Sync या Blend Realistic MetaHuman Lip Sync नोड के बाद, एक Modify Curve नोड जोड़ें
  2. Modify Curve नोड पर राइट-क्लिक करें और Add Curve Pin चुनें
  3. CTRL_expressions_tongueOut नाम के साथ एक कर्व पिन जोड़ें
  4. नोड के Apply Mode प्रॉपर्टी को Scale पर सेट करें
  5. जीभ के एक्सटेंशन को नियंत्रित करने के लिए Value पैरामीटर को एडजस्ट करें (उदाहरण के लिए, 20% कम करने के लिए 0.8)

जॉ ओपनिंग कंट्रोल

यथार्थवादी लिप सिंक आपके ऑडियो कंटेंट और विजुअल आवश्यकताओं के आधार पर अत्यधिक रिस्पॉन्सिव जॉ मूवमेंट्स उत्पन्न कर सकता है। जॉ ओपनिंग इंटेंसिटी को एडजस्ट करने के लिए:

  1. अपने लिप सिंक ब्लेंड नोड के बाद, एक Modify Curve नोड जोड़ें
  2. Modify Curve नोड पर राइट-क्लिक करें और Add Curve Pin चुनें
  3. CTRL_expressions_jawOpen नाम के साथ एक कर्व पिन जोड़ें
  4. नोड के Apply Mode प्रॉपर्टी को Scale पर सेट करें
  5. जॉ ओपनिंग रेंज को नियंत्रित करने के लिए Value पैरामीटर को एडजस्ट करें (उदाहरण के लिए, जॉ मूवमेंट को 10% कम करने के लिए 0.9)

कॉन्फ़िगरेशन

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

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)।

लिप सिंक मॉडल्स के बीच चयन

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

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

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

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

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

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

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