प्लगइन को कस्टम कैरेक्टर्स के साथ कैसे उपयोग करें
यह गाइड आपको गैर-मेटाह्यूमन कैरेक्टर्स के लिए Runtime MetaHuman Lip Sync सेट करने की प्रक्रिया के माध्यम से ले जाती है। इस प्रक्रिया के लिए एनीमेशन अवधारणाओं और रिगिंग से परिचित होना आवश्यक है। यदि आपको अपने विशिष्ट कैरेक्टर के लिए इसे लागू करने में सहायता की आवश्यकता है, तो आप solutions@georgy.dev पर पेशेवर सहायता के लिए संपर्क कर सकते हैं।
लिप सिंक मॉडल संगतता के बारे में महत्वपूर्ण नोट
कस्टम कैरेक्टर्स केवल स्टैंडर्ड (फास्टर) मॉडल के साथ समर्थित हैं।
रियलिस्टिक (हायर क्वालिटी) मॉडल मेटाह्यूमन और ARKit कैरेक्टर्स के लिए डिज़ाइन किया गया है और अन्य कस्टम कैरेक्टर्स के साथ उपयोग नहीं किया जा सकता है। इस पूरी गाइड में, जब भी संदर्भित किया जाए, आपको मुख्य सेटअप गाइड से स्टैंडर्ड मॉडल निर्देशों का पालन करना चाहिए।
एक्सटेंशन प्लगइन आवश्यक: कस्टम कैरेक्टर्स के साथ स्टैंडर्ड मॉडल का उपयोग करने के लिए, आपको मुख्य सेटअप गाइड के पूर्वापेक्षाएँ अनुभाग में वर्णित Standard Lip Sync Extension plugin इंस्टॉल करना होगा।
यह एक्सटेंशन इस गाइड में वर्णित सभी कस्टम कैरेक्टर कार्यान्वयन के लिए आवश्यक है।
पूर्वापेक्षाएँ
शुरू करने से पहले, सुनिश्चित करें कि आपका कैरेक्टर इन आवश्यकताओं को पूरा करता है:
- एक वैध स्केलेटन है
- चेहरे के भावों के लिए मॉर्फ टार्गेट्स (ब्लेंड शेप्स) शामिल हैं
- आदर्श रूप में विज़ेम्स को परिभाषित करने वाले 10+ मॉर्फ टार्गेट्स हैं (अधिक विज़ेम्स = बेहतर लिप सिंक गुणवत्ता)
प्लगइन को आपके कैरेक्टर के मॉर्फ टार्गेट्स को निम्नलिखित मानक विज़ेम्स पर मैप करने की आवश्यकता है:
Sil -> Silence
PP -> Bilabial plosives (p, b, m)
FF -> Labiodental fricatives (f, v)
TH -> Dental fricatives (th)
DD -> Alveolar plosives (t, d)
KK -> Velar plosives (k, g)
CH -> Postalveolar affricates (ch, j)
SS -> Sibilants (s, z)
NN -> Nasal (n)
RR -> Approximant (r)
AA -> Open vowel (aa)
E -> Mid vowel (e)
IH -> Close front vowel (ih)
OH -> Close-mid back vowel (oh)
OU -> Close back vowel (ou)
नोट: यदि आपके कैरेक्टर में विज़म का एक अलग सेट है (जो संभावित है), तो आपको प्रत्येक विज़म के लिए सटीक मिलान की आवश्यकता नहीं है। अनुमानित मिलान अक्सर पर्याप्त होते हैं - उदाहरण के लिए, आपके कैरेक्टर के SH विज़म को प्लगइन के CH विज़म पर मैप करना प्रभावी रूप से काम करेगा क्योंकि वे निकट से संबंधित पोस्टलवियोलर ध्वनियाँ हैं।
Viseme mapping reference
यहाँ सामान्य विज़म सिस्टम और प्लगइन के आवश्यक विज़म के बीच मैपिंग दी गई हैं:
- Apple ARKit
- FACS-Based Systems
- Preston Blair System
- 3ds Max Phoneme System
- Custom Characters (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe)
ARKit चेहरे की एनीमेशन के लिए ब्लेंडशेप्स का एक व्यापक सेट प्रदान करता है, जिसमें कई मुंह के आकार शामिल हैं। यहाँ बताया गया है कि उन्हें RuntimeMetaHumanLipSync विज़म पर कैसे मैप करें:
| RuntimeMetaHumanLipSync Viseme | ARKit Equivalent | नोट्स |
|---|---|---|
| Sil | mouthClose | तटस्थ/विश्राम स्थिति |
| PP | mouthPressLeft + mouthPressRight | द्विओष्ठ्य ध्वनियों के लिए, दोनों प्रेस आकारों को एक साथ उपयोग करें |
| FF | lowerLipBiteLeft + lowerLipBiteRight (या mouthRollLower) | निचला होंठ ऊपरी दांतों को छूता है, जैसे "f" और "v" ध्वनियों में |
| TH | tongueOut | ARKit में सीधी जीभ नियंत्रण है |
| DD | jawOpen (हल्का) + tongueUp (यदि आपके पास जीभ रिग है) | जीभ एल्वियोलर रिज को छूती है; हल्का जबड़ा खुलना |
| KK | mouthLeft या mouthRight (हल्का) | मुंह के कोने का सूक्ष्म खिंचाव वेलर ध्वनियों का अनुमान लगाता है |
| CH | jawOpen (हल्का) + mouthFunnel (हल्का) | पोस्टलवियोलर ध्वनियों के लिए संयोजित करें |
| SS | mouthFrown | सिबिलेंट्स के लिए हल्की भृकुटी का उपयोग करें |
| NN | jawOpen (बहुत हल्का) + mouthClose | लगभग बंद मुंह हल्के जबड़े के खुलने के साथ |
| RR | mouthPucker (हल्का) | आर-ध्वनियों के लिए सूक्ष्म गोलाई |
| AA | jawOpen + mouthStretchLeft + mouthStretchRight (या jawOpen + mouthOpen) | "आह" ध्वनि के लिए चौड़ा खुला मुंह |
| E | jawOpen (हल्का) + mouthSmile | मध्यम खुली स्थिति हल्की मुस्कान के साथ |
| IH | mouthSmile (हल्का) | होंठों का हल्का फैलाव |
| OH | mouthFunnel | गोल खुला आकार |
| OU | mouthPucker | कसकर गोल होंठ |
FACS (फेशियल एक्शन कोडिंग सिस्टम) चेहरे की गतिविधियों का वर्णन करने के लिए एक्शन यूनिट्स (AUs) का उपयोग करता है। कई पेशेवर एनीमेशन सिस्टम FACS-आधारित दृष्टिकोण का उपयोग करते हैं:
| RuntimeMetaHumanLipSync Viseme | FACS Action Units | नोट्स |
|---|---|---|
| Sil | Neutral | कोई सक्रिय AU नहीं |
| PP | AU23 + AU24 | लिप प्रेसर + लिप टाइटनर |
| FF | AU22 + AU28 | लिप फनलर + लिप सक |
| TH | AU25 (हल्का) + AU27 | लिप्स अपार्ट + माउथ स्ट्रेच |
| DD | AU25 + AU16 | लिप्स अपार्ट + लोअर लिप डिप्रेसर |
| KK | AU26 + AU14 | जॉ ड्रॉप + डिम्पलर |
| CH | AU18 + AU25 | लिप पकर + लिप्स अपार्ट |
| SS | AU20 | लिप स्ट्रेचर |
| NN | AU25 (बहुत हल्का) | हल्का लिप्स अपार्ट |
| RR | AU18 (हल्का) | हल्का लिप पकर |
| AA | AU27 + AU26 | माउथ स्ट्रेच + जॉ ड्रॉप |
| E | AU25 + AU12 | लिप्स अपार्ट + लिप कॉर्नर पुलर |
| IH | AU12 + AU25 (हल्का) | लिप कॉर्नर पुलर + हल्का लिप्स अपार्ट |
| OH | AU27 (हल्का) + AU18 | हल्का माउथ स्ट्रेच + लिप पकर |
| OU | AU18 + AU26 (हल्का) | लिप पकर + हल्का जॉ ड्रॉप |
प्रेस्टन ब्लेयर सिस्टम एक क्लासिक एनीमेशन मानक है जो मुंह के आकारों के लिए वर्णनात्मक नामों का उपयोग करता है:
| RuntimeMetaHumanLipSync Viseme | Preston Blair | नोट्स |
|---|---|---|
| Sil | Rest | तटस्थ बंद मुंह स्थिति |
| PP | MBP | क्लासिक "MBP" मुंह आकार |
| FF | FV | निचले होंठ पर दांतों के साथ "FV" स्थिति |
| TH | TH | सामने के दांतों को छूती हुई जीभ |
| DD | D/T/N | इन व्यंजनों के लिए समान स्थिति |
| KK | CKG | कठोर व्यंजन स्थिति |
| CH | CH/J/SH | इन ध्वनियों के लिए हल्का मुंह बनाना |
| SS | S/Z | हल्का खुले दांतों की स्थिति |
| NN | N/NG/L | D/T के समान लेकिन अलग जीभ स्थिति |
| RR | R | आर ध्वनि के लिए गोल होंठ |
| AA | AI | चौड़ा खुला मुंह |
| E | EH | मध्यम खुला मुंह |
| IH | EE | फैले हुए होंठ |
| OH | OH | गोल मध्यम खुलाव |
| OU | OO | कसकर गोल होंठ |
3ds Max अपने कैरेक्टर स्टूडियो के लिए एक फोनेम-आधारित सिस्टम का उपयोग करता है:
| RuntimeMetaHumanLipSync Viseme | 3ds Max Phoneme | नोट्स |
|---|---|---|
| Sil | rest | डिफ़ॉल्ट मुंह स्थिति |
| PP | p_b_m | सीधा समकक्ष |
| FF | f_v | सीधा समकक्ष |
| TH | th | सीधा समकक्ष |
| DD | t_d | सीधा समकक्ष |
| KK | k_g | सीधा समकक्ष |
| CH | sh_zh_ch | संयुक्त आकार |
| SS | s_z | सीधा समकक्ष |
| NN | n_l | इन ध्वनियों के लिए संयुक्त |
| RR | r | सीधा समकक्ष |
| AA | ah | खुला स्वर ध्वनि |
| E | eh | मध्य स्वर |
| IH | ee | बंद अग्र स्वर |
| OH | oh | पिछला गोल स्वर |
| OU | oo | बंद पिछला स्वर |
विज़म या मुंह ब्लेंड शेप्स/मॉर्फ टार्गेट वाले कस्टम कैरेक्टर (Daz Genesis 8/9, Reallusion CC3/CC4, Mixamo, ReadyPlayerMe, आदि) को आम तौर पर प्लगइन के विज़म सिस्टम पर उचित अनुमानों के साथ मैप किया जा सकता है।
Creating a custom Pose Asset
इन चरणों का पालन करें ताकि आप अपने कैरेक्टर के लिए एक कस्टम पोज़ एसेट बना सकें जिसका उपयोग Blend Runtime MetaHuman Lip Sync नोड के साथ किया जाएगा:
1. Locate your character's Skeletal Mesh
उस स्केलेटल मेश को ढूंढें जिसमें वे मॉर्फ टार्गेट (ब्लेंड शेप्स) हैं जिनका उपयोग आप लिप सिंक एनीमेशन के लिए करना चाहते हैं। यह आपके कैरेक्टर के डिज़ाइन के आधार पर एक पूर्ण-शरीर वाला मेश या केवल एक चेहरे का मेश हो सकता है।
2. Verify Morph Targets and Curves
आगे बढ़ने से पहले, जांचें कि आपके स्केलेटल मेश में लिप सिंक एनीमेशन के लिए उपयुक्त मॉर्फ टार्गेट और संबंधित कर्व्स हैं।
मॉर्फ टार्गेट जांचें: सत्यापित करें कि आपके स्केलेटल मेश में मॉर्फ टार्गेट (ब्लेंड शेप्स) हैं जिनका उपयोग लिप सिंक एनीमेशन के लिए विज़म के रूप में किया जा सकता है। चेहरे की एनीमेशन सपोर्ट वाले अधिकांश कैरेक्टर में कुछ फोनेम/विज़म मॉर्फ टार्गेट होने चाहिए।

महत्वपूर्ण: कर्व्स टैब सत्यापित करें यह चरण ब्लेंडर या अन्य बाहरी सॉफ़्टवेयर से निर्यात किए गए कैरेक्टर के लिए विशेष रूप से महत्वपूर्ण है:
- स्केलेटल मेश एडिटर में कर्व्स टैब खोलें
- जांचें कि क्या आप अपने मॉर्फ टार्गेट के अनुरूप कर्व्स देख सकते हैं
- यदि कर्व्स टैब खाली है लेकिन मॉर्फ टार्गेट मौजूद हैं, तो बिल्कुल वही नाम का उपयोग करके जो आपके मॉर्फ टार्गेट के हैं, मैन्युअल रूप से नई कर्व्स जोड़ें
नोट: यह समस्या आमतौर पर ब्लेंडर निर्यात के साथ होती है जहां मॉर्फ टार्गेट सफलतापूर्वक आयात हो जाते हैं लेकिन एनीमेशन कर्व्स स्वचालित रूप से नहीं बनाए जाते। मिलान करने वाले कर्व्स के बिना, कंट्रोल रिग में बेक करने के बाद एनीमेशन ठीक से भर नहीं पाएगा।
वैकल्पिक समाधान: ब्लेंडर से निर्यात के दौरान इस समस्या को रोकने के लिए, अपनी FBX निर्यात सेटिंग्स में कस्टम प्रॉपर्टीज़ और एनीमेशन को सक्षम करने का प्रयास करें, जो मॉर्फ टार्गेट के साथ एनीमेशन कर्व्स को शामिल करने में मदद कर सकता है।
3. Create a Reference Pose Animation
Create Asset -> Create Animation -> Reference Poseपर जाएं- एनीमेशन अनुक्रम के लिए एक वर्णनात्मक नाम दर्ज करें और इसे उपयुक्त स्थान पर सहेजें
- बनाया गया एनीमेशन सीक्वेंस स्वचालित रूप से खुलेगा, जो एक खाली एनीमेशन को लूप में चलाते हुए दिखाएगा

- आसान संपादन के लिए एनीमेशन प्लेबैक रोकने के लिए
Pauseबटन पर क्लिक करें

4. Edit the Animation Sequence
Edit in Sequencer->Edit with FK Control Rigपर क्लिक करेंBake to Control Rigडायलॉग में, बिना किसी सेटिंग को बदलेBake to Control Rigबटन पर क्लिक करें

- एडिटर
Animation Modeमें स्विच हो जाएगा जिसमेंSequencerटैब खुला होगा View Range End Timeको 0016 पर सेट करें (जो स्वचालित रूप सेWorking Range Endको भी 0016 पर सेट कर देगा)- स्लाइडर के दाएं किनारे को सीक्वेंसर विंडो के दाएं छोर तक खींचें
5. Prepare the Animation Curves
- एनीमेशन सीक्वेंस एसेट पर वापस जाएं और
Curvesसूची में मॉर्फ टारगेट्स का पता लगाएं (यदि वे दिखाई नहीं दे रहे हैं, तो एनीमेशन सीक्वेंस एसेट को बंद करें और फिर से खोलें) - उन सभी मॉर्फ टारगेट्स को हटा दें जो विसेम या मुंह की गतिविधियों से संबंधित नहीं हैं, जिनका उपयोग आप लिप सिंक के लिए करना चाहते हैं
6. Plan your viseme mapping
अपने कैरेक्टर के विसेम्स को प्लगइन के आवश्यक सेट से मैच करने के लिए एक मैपिंग योजना बनाएं। उदाहरण के लिए:
Sil -> Sil
PP -> FV
FF -> FV
TH -> TH
DD -> TD
KK -> KG
CH -> CH
SS -> SZ
NN -> NL
RR -> RR
AA -> AA
E -> E
IH -> IH
OH -> O
OU -> U
ध्यान दें कि यह स्वीकार्य है कि आपके चरित्र के विसेम सेट में हर आवश्यक विसेम के लिए सटीक मिलान न होने पर मैपिंग दोहराई जाए।
7. Animate each viseme
- प्रत्येक विसेम के लिए, संबंधित मॉर्फ टार्गेट कर्व्स को 0.0 से 1.0 तक एनिमेट करें
- प्रत्येक विसेम एनीमेशन को एक अलग फ्रेम पर शुरू करें
- प्राकृतिक दिखने वाले विसेम आकार बनाने के लिए आवश्यकतानुसार अतिरिक्त कर्व्स कॉन्फ़िगर करें (जबड़ा/मुंह खोलना, जीभ की स्थिति, आदि)
8. Create a Pose Asset
Create Asset->Pose Asset->Current Animationपर जाएं- Pose Asset के लिए एक वर्णनात्मक नाम दर्ज करें और इसे एक उपयुक्त स्थान पर सहेजें
- बनाया गया Pose Asset स्वचालित रूप से खुलेगा, जिसमें
Pose_0,Pose_1, आदि जैसे पोज़ दिखाई देंगे, जिनमें से प्रत्येक एक विसेम से मेल खाता है - यह सुनिश्चित करने के लिए विसेम वेट का पूर्वावलोकन करें कि वे अपेक्षा के अनुरूप काम करते हैं

9. Finalize the Pose Asset
- प्रत्येक पोज़ का नाम पूर्वापेक्षाएँ अनुभाग से विसेम नामों से मेल खाने के लिए बदलें
- किसी भी अप्रयुक्त पोज़ को हटा दें
Setting up audio handling and blending
एक बार आपका पोज़ एसेट तैयार हो जाने के बाद, आपको ऑडियो हैंडलिंग और ब्लेंडिंग नोड्स सेट करने की आवश्यकता है:
- अपने कैरेक्टर के एनीमेशन ब्लूप्रिंट का पता लगाएं या बनाएं
- मानक प्लगइन सेटअप गाइड में दस्तावेज किए गए समान चरणों का पालन करते हुए ऑडियो हैंडलिंग और ब्लेंडिंग सेट करें
Blend Runtime MetaHuman Lip Syncनोड में, डिफ़ॉल्ट MetaHuman पोज़ एसेट के बजाय अपना कस्टम पोज़ एसेट चुनें

Combining with body animations
यदि आप अन्य बॉडी एनिमेशन के साथ लिप सिंक करना चाहते हैं:
- मानक प्लगइन गाइड में दस्तावेज किए गए समान चरणों का पालन करें
- MetaHuman बोन नामों का उपयोग करने के बजाय, अपने कैरेक्टर की नेक स्केलेटन के लिए सही बोन नाम प्रदान करना सुनिश्चित करें
परिणाम
यहां इस सेटअप का उपयोग करने वाले कस्टम कैरेक्टर्स के उदाहरण दिए गए हैं:



लिप सिंक की गुणवत्ता काफी हद तक विशिष्ट कैरेक्टर और उसके विसेम कितनी अच्छी तरह सेट अप हैं, पर निर्भर करती है। उपरोक्त उदाहरण अलग-अलग प्रकार के कस्टम कैरेक्टर्स के साथ काम कर रहे प्लगइन को प्रदर्शित करते हैं, जिनमें विशिष्ट विसेम सिस्टम हैं।