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

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

यह गाइड आपको गैर-मेटाह्यूमन कैरेक्टर्स के लिए 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

यहाँ सामान्य विज़म सिस्टम और प्लगइन के आवश्यक विज़म के बीच मैपिंग दी गई हैं:

ARKit चेहरे की एनीमेशन के लिए ब्लेंडशेप्स का एक व्यापक सेट प्रदान करता है, जिसमें कई मुंह के आकार शामिल हैं। यहाँ बताया गया है कि उन्हें RuntimeMetaHumanLipSync विज़म पर कैसे मैप करें:

RuntimeMetaHumanLipSync VisemeARKit Equivalentनोट्स
SilmouthCloseतटस्थ/विश्राम स्थिति
PPmouthPressLeft + mouthPressRightद्विओष्ठ्य ध्वनियों के लिए, दोनों प्रेस आकारों को एक साथ उपयोग करें
FFlowerLipBiteLeft + lowerLipBiteRight (या mouthRollLower)निचला होंठ ऊपरी दांतों को छूता है, जैसे "f" और "v" ध्वनियों में
THtongueOutARKit में सीधी जीभ नियंत्रण है
DDjawOpen (हल्का) + tongueUp (यदि आपके पास जीभ रिग है)जीभ एल्वियोलर रिज को छूती है; हल्का जबड़ा खुलना
KKmouthLeft या mouthRight (हल्का)मुंह के कोने का सूक्ष्म खिंचाव वेलर ध्वनियों का अनुमान लगाता है
CHjawOpen (हल्का) + mouthFunnel (हल्का)पोस्टलवियोलर ध्वनियों के लिए संयोजित करें
SSmouthFrownसिबिलेंट्स के लिए हल्की भृकुटी का उपयोग करें
NNjawOpen (बहुत हल्का) + mouthCloseलगभग बंद मुंह हल्के जबड़े के खुलने के साथ
RRmouthPucker (हल्का)आर-ध्वनियों के लिए सूक्ष्म गोलाई
AAjawOpen + mouthStretchLeft + mouthStretchRight (या jawOpen + mouthOpen)"आह" ध्वनि के लिए चौड़ा खुला मुंह
EjawOpen (हल्का) + mouthSmileमध्यम खुली स्थिति हल्की मुस्कान के साथ
IHmouthSmile (हल्का)होंठों का हल्का फैलाव
OHmouthFunnelगोल खुला आकार
OUmouthPuckerकसकर गोल होंठ

Creating a custom Pose Asset

इन चरणों का पालन करें ताकि आप अपने कैरेक्टर के लिए एक कस्टम पोज़ एसेट बना सकें जिसका उपयोग Blend Runtime MetaHuman Lip Sync नोड के साथ किया जाएगा:

1. Locate your character's Skeletal Mesh

उस स्केलेटल मेश को ढूंढें जिसमें वे मॉर्फ टार्गेट (ब्लेंड शेप्स) हैं जिनका उपयोग आप लिप सिंक एनीमेशन के लिए करना चाहते हैं। यह आपके कैरेक्टर के डिज़ाइन के आधार पर एक पूर्ण-शरीर वाला मेश या केवल एक चेहरे का मेश हो सकता है।

2. Verify Morph Targets and Curves

आगे बढ़ने से पहले, जांचें कि आपके स्केलेटल मेश में लिप सिंक एनीमेशन के लिए उपयुक्त मॉर्फ टार्गेट और संबंधित कर्व्स हैं।

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

एक कैरेक्टर में मॉर्फ टार्गेट का उदाहरण

महत्वपूर्ण: कर्व्स टैब सत्यापित करें यह चरण ब्लेंडर या अन्य बाहरी सॉफ़्टवेयर से निर्यात किए गए कैरेक्टर के लिए विशेष रूप से महत्वपूर्ण है:

  1. स्केलेटल मेश एडिटर में कर्व्स टैब खोलें
  2. जांचें कि क्या आप अपने मॉर्फ टार्गेट के अनुरूप कर्व्स देख सकते हैं
  3. यदि कर्व्स टैब खाली है लेकिन मॉर्फ टार्गेट मौजूद हैं, तो बिल्कुल वही नाम का उपयोग करके जो आपके मॉर्फ टार्गेट के हैं, मैन्युअल रूप से नई कर्व्स जोड़ें

नोट: यह समस्या आमतौर पर ब्लेंडर निर्यात के साथ होती है जहां मॉर्फ टार्गेट सफलतापूर्वक आयात हो जाते हैं लेकिन एनीमेशन कर्व्स स्वचालित रूप से नहीं बनाए जाते। मिलान करने वाले कर्व्स के बिना, कंट्रोल रिग में बेक करने के बाद एनीमेशन ठीक से भर नहीं पाएगा।

वैकल्पिक समाधान: ब्लेंडर से निर्यात के दौरान इस समस्या को रोकने के लिए, अपनी FBX निर्यात सेटिंग्स में कस्टम प्रॉपर्टीज़ और एनीमेशन को सक्षम करने का प्रयास करें, जो मॉर्फ टार्गेट के साथ एनीमेशन कर्व्स को शामिल करने में मदद कर सकता है।

3. Create a Reference Pose Animation

  1. Create Asset -> Create Animation -> Reference Pose पर जाएं
  2. एनीमेशन अनुक्रम के लिए एक वर्णनात्मक नाम दर्ज करें और इसे उपयुक्त स्थान पर सहेजें
  3. बनाया गया एनीमेशन सीक्वेंस स्वचालित रूप से खुलेगा, जो एक खाली एनीमेशन को लूप में चलाते हुए दिखाएगा

एक रेफरेंस पोज़ एसेट बनाना रेफरेंस पोज़ एसेट का नामकरण

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

एनीमेशन प्लेबैक रोकना

4. Edit the Animation Sequence

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

FK Control Rig के साथ संपादन Control Rig में बेक करना

  1. एडिटर Animation Mode में स्विच हो जाएगा जिसमें Sequencer टैब खुला होगा
  2. View Range End Time को 0016 पर सेट करें (जो स्वचालित रूप से Working Range End को भी 0016 पर सेट कर देगा)
  3. स्लाइडर के दाएं किनारे को सीक्वेंसर विंडो के दाएं छोर तक खींचें

5. Prepare the Animation Curves

  1. एनीमेशन सीक्वेंस एसेट पर वापस जाएं और Curves सूची में मॉर्फ टारगेट्स का पता लगाएं (यदि वे दिखाई नहीं दे रहे हैं, तो एनीमेशन सीक्वेंस एसेट को बंद करें और फिर से खोलें)
  2. उन सभी मॉर्फ टारगेट्स को हटा दें जो विसेम या मुंह की गतिविधियों से संबंधित नहीं हैं, जिनका उपयोग आप लिप सिंक के लिए करना चाहते हैं

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

  1. प्रत्येक विसेम के लिए, संबंधित मॉर्फ टार्गेट कर्व्स को 0.0 से 1.0 तक एनिमेट करें
  2. प्रत्येक विसेम एनीमेशन को एक अलग फ्रेम पर शुरू करें
  3. प्राकृतिक दिखने वाले विसेम आकार बनाने के लिए आवश्यकतानुसार अतिरिक्त कर्व्स कॉन्फ़िगर करें (जबड़ा/मुंह खोलना, जीभ की स्थिति, आदि)

8. Create a Pose Asset

  1. Create Asset -> Pose Asset -> Current Animation पर जाएं
  2. Pose Asset के लिए एक वर्णनात्मक नाम दर्ज करें और इसे एक उपयुक्त स्थान पर सहेजें
  3. बनाया गया Pose Asset स्वचालित रूप से खुलेगा, जिसमें Pose_0, Pose_1, आदि जैसे पोज़ दिखाई देंगे, जिनमें से प्रत्येक एक विसेम से मेल खाता है
  4. यह सुनिश्चित करने के लिए विसेम वेट का पूर्वावलोकन करें कि वे अपेक्षा के अनुरूप काम करते हैं

Creating a pose asset Naming the pose asset Pose asset with visemes

9. Finalize the Pose Asset

  1. प्रत्येक पोज़ का नाम पूर्वापेक्षाएँ अनुभाग से विसेम नामों से मेल खाने के लिए बदलें
  2. किसी भी अप्रयुक्त पोज़ को हटा दें

Setting up audio handling and blending

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

  1. अपने कैरेक्टर के एनीमेशन ब्लूप्रिंट का पता लगाएं या बनाएं
  2. मानक प्लगइन सेटअप गाइड में दस्तावेज किए गए समान चरणों का पालन करते हुए ऑडियो हैंडलिंग और ब्लेंडिंग सेट करें
  3. Blend Runtime MetaHuman Lip Sync नोड में, डिफ़ॉल्ट MetaHuman पोज़ एसेट के बजाय अपना कस्टम पोज़ एसेट चुनें

कस्टम पोज़ एसेट का चयन

Combining with body animations

यदि आप अन्य बॉडी एनिमेशन के साथ लिप सिंक करना चाहते हैं:

  1. मानक प्लगइन गाइड में दस्तावेज किए गए समान चरणों का पालन करें
  2. MetaHuman बोन नामों का उपयोग करने के बजाय, अपने कैरेक्टर की नेक स्केलेटन के लिए सही बोन नाम प्रदान करना सुनिश्चित करें

परिणाम

यहां इस सेटअप का उपयोग करने वाले कस्टम कैरेक्टर्स के उदाहरण दिए गए हैं:

उदाहरण 1: कस्टम कैरेक्टर के साथ लिप सिंक

उदाहरण 2: अलग विसेम सिस्टम के साथ लिप सिंक

उदाहरण 3: अलग विसेम सिस्टम के साथ लिप सिंक

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