उन पूँछों को एनिमेट करना जिन्हें रिगर ने कभी हड्डी नहीं दी
Oleg Sidorkin द्वारा, Cinevva के CTO और सह-संस्थापक
11 सितंबर, 2026 को अपडेट किया गया: माउस ने हमें क्या सिखाया में इलास्टिक मोड़, फ़्लोर कॉन्टैक्ट और पूँछ के कारण शरीर के उठने का एक दूसरा प्रकार जोड़ा गया है।
एक उपयोगकर्ता ने हमारे रिगर में एक एंथ्रोपोमॉर्फिक लोमड़ी को रिग किया और Walk क्लिप चलाई। शरीर ठीक था। पूँछ गीले तौलिये की तरह बाएँ पैर से लिपट गई, और जहाँ बाएँ तथा दाएँ पैर के वेट मिलते थे, वहाँ वह फट गई। नीचे वही लोमड़ी हमारा प्रमुख उदाहरण है, और इसका समाधान अब रिगर तथा उसकी क्लिप चलाने वाली रनटाइम लाइब्रेरी—दोनों में लाइव है।
इस लेख में दिखाई गई लोमड़ी और माउस, दोनों को हमारे 3D मॉडल जनरेटर से बनाया गया, फिर Cinevva में रिग और एनिमेट किया गया।

बाएँ से दाएँ, एक ही फ़्रेम में कदम के बीच की अवस्था: रिगर से निकला मूल रिग, वही रिग जिसमें पूरी पूँछ को एक ही टुकड़े के रूप में पेल्विस को सौंपा गया है, और अपनी बोन चेन पर लगी पूँछ जिसे रनटाइम झुला रहा है। आप इन तीनों को नीचे जाकर चारों ओर घुमा सकते हैं।
ह्यूमनॉइड रिगर ऐसा क्यों करता है
हमारा Fast इंजन Make-It-Animatable पर बना है, जो एक निश्चित Mixamo-शैली के कंकाल का अनुमान लगाता है: शरीर की 22 हड्डियाँ, या उँगलियों सहित 65। मेश के हर वर्टेक्स को इन्हीं हड्डियों में से किसी एक को सौंपना होता है। सूची में पूँछ नहीं है, इसलिए मॉडल अपनी जानकारी के अनुसार अगला सर्वोत्तम विकल्प चुनता है और पूँछ के वर्टेक्स उस अंग को सौंप देता है जो उसके सीखे हुए फ़ीचर स्पेस में सबसे निकट हो। इस लोमड़ी के लिए वह बाईं पिंडली थी, जबकि बाकी वेट दोनों जाँघों के बीच बँट गया।
यह वेट में कोई बग नहीं है। यह टेम्पलेट की सीमा है। कोई प्रॉम्प्ट या सेटिंग मॉडल से पूँछ की हड्डी नहीं बनवा सकती, क्योंकि उसके पास बनाने के लिए पूँछ की हड्डी है ही नहीं। पंखों, केप, लंबे बालों और धड़ से लटकने वाली हर दूसरी चीज़ के साथ भी यही होता है।
कुछ भी बदलने से पहले हमने लोमड़ी की पूँछ के 1,582 वर्टेक्स पर इसकी लागत मापी। प्रत्येक वर्टेक्स से उसे वास्तव में हिलाने वाली हड्डियों तक की दूरी का वेटेड औसत, 191 सेमी लंबे मॉडल पर 47 सेमी था। पूँछ को लगभग आधा मीटर दूर से नियंत्रित किया जा रहा था।
पूँछ खोजना
इस चरण पर हमारे पास केवल रिग किया हुआ GLB है, और हमें बस उसी की आवश्यकता है। यह पास किसी भी रिगर के आउटपुट पर चलता है, केवल हमारे रिगर पर नहीं।
कंकाल के ऊपर एक डिस्टेंस फ़ील्ड। प्रत्येक वर्टेक्स
और किसी वर्टेक्स की कंकाल दूरी सभी सेगमेंटों में न्यूनतम दूरी होती है। अंतिम जॉइंट के आगे एक छोटा स्टब जोड़ा जाता है, ताकि थूथन या हाथ को उसकी अपनी हड्डी से दूर न माना जाए। कोई वर्टेक्स दूर तब है जब यह दूरी मॉडल की ऊँचाई के 7% से अधिक हो। लोमड़ी के लिए यह 13 सेमी है।
दूर स्थित स्किन के जुड़े हुए हिस्से। दूर वाले वर्टेक्स को मेश के अपने फ़ेस के साथ कनेक्टेड कंपोनेंट में समूहित किया जाता है। एक विवरण ने हमारा एक घंटा खर्च कराया: एक्सपोर्टर UV और हार्ड-नॉर्मल सीम पर वर्टेक्स विभाजित कर देते हैं, इसलिए इस मेश में 23,129 वर्टेक्स हैं लेकिन केवल 29,081 त्रिभुज, और केवल फ़ेस ग्राफ़ एक पूँछ को दर्जनों अलग-अलग द्वीपों में तोड़ देता है। हम पहले स्थिति के आधार पर वर्टेक्स वेल्ड करते हैं, वेल्ड किए गए ग्राफ़ पर कनेक्टिविटी चलाते हैं, और फिर प्रत्येक मूल वर्टेक्स पर वेट वापस लिखते हैं।
यह कहाँ जुड़ता है? किसी हिस्से का कॉलर उसके पड़ोस में मौजूद गैर-दूर वर्टेक्स की रिंग है। उसका केंद्र निकटतम जॉइंट के आधार पर हमें बताता है कि वह हिस्सा कहाँ से लटकता है, लेकिन एक पक्षपात के साथ: यदि धड़ या जाँघ का जॉइंट निकटतम दूरी के 1.5 गुना के भीतर है, तो वह चुना जाता है, क्योंकि पेल्विस के आसपास जाँघों के ऊपरी सिरे हिप्स जितने ही निकट होते हैं और उनके बीच स्थित पूँछ की जड़ शरीर की होती है। हम जानबूझकर इसके लिए कॉलर के वेट पर भरोसा नहीं करते। अलग शेल के रूप में मॉडल की गई पूँछ में—जैसा अधिकांश गेम मॉडल में होता है—कॉलर पूँछ की अपनी रूट रिंग होती है, जिस पर वही खराब वेट होता है जिसे हम ठीक करने की कोशिश कर रहे हैं।
यह उपांग है या शरीर का हिस्सा? दो परीक्षण। मोटे धड़ की हड्डी से दूर स्किन हड्डी के चारों ओर लिपटी होती है, इसलिए उसका द्रव्यमान केंद्र वापस हड्डी पर आता है। पूँछ एक तरफ बाहर निकली होती है, इसलिए उसका द्रव्यमान केंद्र हर हड्डी से दूर होता है। हम आवश्यक करते हैं कि सेंट्रॉइड की कंकाल दूरी उस हिस्से की पहुँच की कम से कम 40% हो। फिर आकार का परीक्षण: जहाँ
लोमड़ी की पूँछ दो ओवरलैपिंग शेल के रूप में निकली—स्किन के ऊपर फर, जो कभी वेल्ड नहीं किए गए थे—इसलिए एक ही अटैचमेंट पर मौजूद वे हिस्से जिनके बाउंडिंग बॉक्स आधे से अधिक ओवरलैप करते हैं, आपस में मिला दिए जाते हैं। एक पूँछ, एक चेन।
पहला चरण: इसे कठोर बनाना
पहला ईमानदार समाधान एक दोपहर लेता है। उस हिस्से के हर वर्टेक्स को Hips पर 1.0 वेट दिया जाता है। पूँछ फटना बंद कर देती है और पेल्विस के साथ एक ही टुकड़े के रूप में चलती है। यह तख़्त जैसी दिखती है, और चित्र में बीच वाली लोमड़ी यही है। हमने इसे एक माइलस्टोन के रूप में रिलीज़ किया क्योंकि बनावट के कारण इसका खिंचाव बिल्कुल शून्य है, जिससे यह नीचे दिए गए मापन के लिए उपयोगी संदर्भ बनती है।
दूसरा चरण: इसके साथ एक चेन बढ़ाना
पूँछ के साथ एक निर्देशांक। हम कॉलर से हिस्से के भीतर Dijkstra चलाते हैं, जहाँ मेश एज की लागत उसकी लंबाई होती है। प्रत्येक पूँछ वर्टेक्स को जड़ से एक जियोडेसिक दूरी
जॉइंट। सेगमेंटों की संख्या Tail_1 से Tail_K तक हैं, साथ में वेट-रहित Tail_End; ये Hips के अधीन पेरेंट की गई हैं और Hips का बाइंड रोटेशन साझा करती हैं, ताकि हर हड्डी अपने पेरेंट के फ़्रेम में शुद्ध ट्रांसलेशन हो। उनके इनवर्स बाइंड मैट्रिक्स सीधे इससे मिल जाते हैं, और मौजूदा क्लिप उनका उल्लेख कभी नहीं करतीं, इसलिए आगे की प्रक्रिया में कुछ नहीं टूटता।
वेट। जहाँ
किसी जॉइंट पर दोनों हड्डियाँ 50/50 अनुपात में मिलती हैं; सेगमेंट के बीच में एक हड्डी पूरी स्किन को नियंत्रित करती है। रूट सेगमेंट के लिए "prev" Hips है, इसलिए पूँछ कॉलर पर सिलवट बनाने के बजाय शरीर में सहजता से ब्लेंड होती है।
पास के बाद पूँछ पर वेटेड बोन दूरी 47 सेमी से घटकर 17 सेमी रह गई, जो लगभग पूँछ की अपनी त्रिज्या के बराबर है। स्किन को नियंत्रित करने वाली हड्डी से वह इससे अधिक करीब नहीं आ सकती।

तीसरा चरण: किसी चीज़ को हड्डियाँ हिलानी होंगी
हमारी लाइब्रेरी की किसी भी क्लिप में पूँछ के ट्रैक नहीं हैं, इसलिए अतिरिक्त काम के बिना चेन अपनी बाइंड पोज़ बनाए रखती है और लोमड़ी तख़्त जैसी पूँछ के साथ घूमती है। गेम इसे प्रोसीजरल सेकेंडरी मोशन से हल करते हैं, और हम भी ऐसा ही करते हैं—उस रनटाइम लाइब्रेरी में जिसे हर रिग किया हुआ मॉडल पहले से लोड करता है।
प्रत्येक जॉइंट टिप वेग
जहाँ
चूँकि पार्टिकल वर्ल्ड स्पेस में रहते हैं, Hips को मोड़ने या तेज़ करने पर पूँछ पीछे रह जाती है और अपने आप झूलती है। कुछ भी स्क्रिप्टेड नहीं है।
यहाँ तीन गलतियाँ स्वीकार करना उपयोगी है, क्योंकि मापे जाने तक हर एक ठीक दिखती थी।
पहला संस्करण प्रत्येक फ़्रेम में हर पार्टिकल को उसके टार्गेट की ओर एक निश्चित अंश, 60 fps पर 12%, खींचता था। स्प्रिंग के रूप में लिखने पर यह
दूसरे संस्करण ने रोप करेक्शन को वेग के रूप में वापस फ़ीड किया: करेक्शन को
तीसरी गलती नीचे दिया गया कैरी एंगल था। इसे हर जॉइंट के अपने फ़्रेम में लागू किया गया था, इसलिए चार हड्डियों वाली पूँछ चार बार ऊपर उठी, लोमड़ी की पीठ के विरुद्ध गेंद की तरह मुड़ गई और हर मोड़ पर अपनी ही स्किन फाड़ने लगी। नीचे दिए गए मापन ने इसे खोजा: पूँछ की एज स्ट्रेच p99 पर 2.3 तक पहुँच गई, जबकि शरीर की बेसलाइन 1.3 थी—उस पिंडली से भी बदतर जहाँ से यह शुरू हुई थी। अब carry पूरी पूँछ का उठाव है, जिसे उसके सभी जॉइंटों में बाँटा जाता है।
क्लिपिंग। पूँछ को पैरों के बीच सीधा नीचे लटकते हुए मॉडल किया गया था, और वॉक साइकल में पैर उसके आर-पार जाते थे। इसलिए स्प्रिंग जिस रेस्ट पोज़ को लक्ष्य बनाता है वह मेश की अपनी पोज़ नहीं है: 50° का carry, Hips के साइड अक्ष के चारों ओर रेस्ट टार्गेट को पीछे और ऊपर उठाता है, जैसे लोमड़ी चलते समय अपनी पूँछ रखती है। यह 50° पूरी पूँछ का उठाव है, जिसे उसके जॉइंटों में बाँटा जाता है, इसलिए चेन चाहे चार हड्डियों की हो या आठ की, आर्क सहज रहता है। और कोई भी पार्टिकल पूँछ की जड़ से गुजरने वाले आगे की ओर मुख किए प्लेन को पार नहीं कर सकता, इसलिए पूँछ कभी पैरों के बीच नहीं झूल सकती।
इसे मापना
ये 6 सितंबर के मूल लोमड़ी मापन हैं, नीचे दिए गए माउस बदलावों से पहले के। ये पहले चेन सॉल्वर का दस्तावेज़ हैं, संशोधित डिफ़ॉल्ट का नया बेंचमार्क नहीं।
स्थिर चित्र फटने के बारे में कुछ साबित नहीं करते, इसलिए हम क्लिप के दौरान एज स्ट्रेच मापते हैं। मेश की हर उस एज के लिए, जिसके दोनों वर्टेक्स पूँछ पर हैं, हम Walk क्लिप के दौरान समान अंतर वाले 24 समय-बिंदुओं पर उसकी स्किन की गई लंबाई और बाइंड लंबाई का अनुपात लेते हैं। 1 का अनुपात अविकृत स्किन है। 1.5 से अधिक खिंची या 0.67 से कम सिकुड़ी एज को फटा हुआ माना जाता है। सामान्य स्किनिंग विकृति कैसी दिखती है, इसकी बेसलाइन के लिए शरीर की एज को भी इसी तरह मापा जाता है।
| Walk क्लिप, पूँछ की एज के 96,864 नमूने | p95 | p99 | अधिकतम | फटी हुई |
|---|---|---|---|---|
| मूल रिग | 1.60 | 2.42 | 4.03 | 11.4% |
| Hips से कठोरता से जुड़ी | 1.00 | 1.00 | 1.00 | 0% |
| पूँछ की चेन | 1.09 | 1.18 | 1.30 | 0% |
| संदर्भ के लिए शरीर | 1.13 | 1.29 | 1.78 | — |
मूल रिग में पूँछ की हर नौ एज में से एक फटने की सीमा से अधिक खिंची, और सबसे खराब एज अपनी बाइंड लंबाई से चार गुना हो गई। चेन की सबसे खराब एज 30% लंबी होती है, जो शरीर की अपनी 1.78 बेसलाइन के भीतर है, और कुछ भी नहीं फटता। कठोर पूँछ ठीक 1.00 पर रहती है क्योंकि वह एक ही टुकड़े के रूप में चलती है; यही वह संख्या थी जिसने चेन पर भरोसा करने से पहले हमें बताया कि परीक्षण हार्नेस सही था।
वास्तव में झूलने वाली पूँछ को अपनी स्किन थोड़ा विकृत करनी पड़ती है, इसलिए चेन का काम 1.00 तक पहुँचना नहीं बल्कि शरीर में पहले से होने वाली विकृति से कम रहना है। इस तालिका के एक पुराने संस्करण में चेन का p99 1.03 दिखाया गया था, जो बेहतर दिखता था लेकिन वास्तव में बदतर था: पूँछ मुश्किल से हिल रही थी, क्योंकि ऊपर बताए गए वेग बग ने उसे अत्यधिक डैम्प करके लगभग कठोर संस्करण जैसा बना दिया था।
लाइव तुलना
लोमड़ी की तीन प्रतियाँ, एक ही क्लिप, एक ही फ़्रेम। चारों ओर घुमाने के लिए ड्रैग करें, ज़ूम करने के लिए व्हील चलाएँ। क्लिप बदलें, चेन को उसकी उठी हुई रेस्ट पोज़ में देखने के लिए पूँछ की फ़िज़िक्स बंद करें, और चेन कहाँ स्थित है यह देखने के लिए हड्डियाँ चालू करें।
किनारे से दिखाई गई वही श्रृंखला, अकेली, कंकाल के रेखांकन के साथ। स्प्रिंट वह क्लिप है जिसमें स्प्रिंग सबसे स्पष्ट दिखाई देता है।चूहे ने हमें क्या सिखाया
लोमड़ी से यह स्थापित हुआ कि एक श्रृंखला फटने की समस्या रोक सकती है। लंबी, पतली पूँछ वाले चूहे ने गति की बची हुई त्रुटियों को देखना बहुत आसान बना दिया। लोमड़ी के फर में छिप जाने वाला तीखा मोड़ चूहे पर टूटे हुए जोड़ जैसा दिखाई देता है। उसकी पूँछ फर्श तक भी पहुँचती है और उसका मॉडल किया गया आकार एक ओर मुड़ता है। ये तीन अलग-अलग समस्याएँ हैं; स्प्रिंग की कठोरता बढ़ा देने से ये सभी हल नहीं होतीं।
नीचे दी गई ऐनिमेशन लाइब्रेरी में चूहे पर अलग-अलग ऐनिमेशन आज़माएँ। कैमरा घुमाने के लिए पात्र को खींचें, थंबनेल पट्टी को बगल में स्क्रॉल करें, या कोई गति खोजने के लिए उसकी खोज और श्रेणी फ़िल्टर का उपयोग करें। बड़े प्रीव्यू में चलाने के लिए किसी टाइल पर क्लिक करें। पूँछ का निरीक्षण शुरू करने के लिए Walk, Crouch Backward, Crawl Idle और Back Flip उपयोगी विकल्प हैं। यह पट्टी हमारे ऐनिमेशन हीरो जैसे ही लाइव ऐनिमेशन प्रीव्यू का उपयोग करती है और ब्राउज़ करते समय गतियाँ लोड करते हुए पूरा कैटलॉग उपलब्ध कराती है।
इन गतियों को अपने रिग किए गए पात्र पर आज़माने और चुनी हुई क्लिप निर्यात करने के लिए पूरी ऐनिमेशन लाइब्रेरी खोलें →।
स्प्रिंगों की श्रृंखला को भी मोड़-प्रतिरोध चाहिए
कणों को प्रत्येक हड्डी की लंबाई बनाए रखने के लिए बाधित किया गया था, लेकिन हर जोड़ अब भी लगभग स्वतंत्र रूप से घूम सकता था। लंबाई बाधाएँ खिंचाव रोकती हैं; वे हिंज को मुड़कर तह होने से नहीं रोकतीं। चूहे ने ठीक इसी अंतर को उजागर किया।

सुधारों से पहले: खंडों की लंबाई बरकरार रखना वक्र को सुचारु बनाए रखने के लिए पर्याप्त नहीं था।
अब हम विश्राम वक्र के सापेक्ष मापे गए पड़ोसी जोड़ों के अतिरिक्त मोड़ों को आपस में जोड़ते हैं। मोड़ों की तुलना एक साझा संदर्भ फ़्रेम में की जाती है, ताकि हड्डियों की अलग-अलग अक्षें एक जोड़ के बाएँ मोड़ को अगले जोड़ पर असंबंधित मरोड़ में न बदल दें। हर चरण आंशिक रूप से अपडेट किए गए मानों के बजाय अपने पड़ोसियों का स्नैपशॉट पढ़ता है। कपलिंग ब्लेंड प्रति रेंडर किए गए फ़्रेम के एक निश्चित अंश के बजाय
किसी जोड़ का प्रत्यास्थ मोड़ उसकी विश्राम दिशा से 30° आगे तक सीमित है। हमने डैम्पिंग को भी बढ़ाकर 0.65 कर दिया है और मोड़ की सीमा की ओर धकेलते रहने वाले वेग को हटा देते हैं, ताकि वह जमा होकर अचानक झटके के रूप में मुक्त न हो सके। आधार को कूल्हों से सहारा मिलता रहता है और सिरा अधिक नरम रहता है। जब पूँछ को फर्श पर लेटना हो, तब संपर्क मोड़ सीमा को ओवरराइड कर सकता है।
कणों की स्थितियों को नहीं, घूर्णनों को जोड़ना।
यह कॉन्जुगेशन मोड़ का निर्देशांक फ़्रेम बदलता है; यह पात्र में कोई अतिरिक्त घूर्णन नहीं जोड़ता। पिछले चरण के स्नैपशॉट
आधार पर पड़ोसी लक्ष्य अगले जोड़ के मोड़ और आइडेंटिटी क्वाटर्नियन
स्केलर घटक
संपर्क प्रोजेक्शन से पहले हम इस मोड़ को वापस पैरेंट फ़्रेम में रूपांतरित करते हैं और इसे
लोड की गई मुद्रा आवश्यक नहीं कि बाइंड मुद्रा हो
चूहे की सहेजी गई फ़ाइल में अंतिम पूँछ जोड़ पर पहले से लगभग 28° का घूर्णन था। हम उस लोड किए गए घूर्णन को न्यूट्रल मानकर पढ़ रहे थे और फिर उसके ऊपर स्प्रिंग की गति जोड़ रहे थे। पहले से ऐनिमेट या निर्यात की गई मुद्रा स्प्रिंग के लक्ष्य का स्थायी हिस्सा बन गई थी।
अब सॉल्वर उपलब्ध होने पर कंकाल की इनवर्स बाइंड मैट्रिस से न्यूट्रल स्थानीय ट्रांसफ़ॉर्म पुनर्प्राप्त करता है। यदि किसी रिग में Tail_End हेल्पर नहीं है, तो उसका अंतिम खंड आने वाली स्पर्शरेखा को उस अंतिम हड्डी के अपने स्थानीय फ़्रेम में व्यक्त करते हुए आगे बढ़ाता है। जैसे ही अंतिम हड्डी का अभिविन्यास अलग होता है, पैरेंट के फ़्रेम से वेक्टर कॉपी करना गलत हो जाता है।
एकतरफ़ा घुमाव का एक और कारण था: वह वास्तविक बाइंड ज्यामिति में मौजूद था। इसलिए बाइंड मुद्रा को सही ढंग से पुनर्प्राप्त करने से यह झुकाव बना रहा। अब सिमुलेशन डिफ़ॉल्ट रूप से कूल्हा स्पेस में बनाए गए और प्रत्येक सुधारे गए पैरेंट के फ़्रेम में रूपांतरित किए गए केंद्रित विश्राम चाप का उपयोग करता है। restCurve मॉडल किए गए घुमाव को वापस मिला सकता है: 0 केंद्रित चाप है, 1 लेखक द्वारा बनाया गया वक्र बनाए रखता है। इससे स्प्रिंगों का लक्ष्य बदलता है; यह मेश या उसके स्किन वेट दोबारा नहीं लिखता।
संदर्भ ट्रांसफ़ॉर्म पुनर्प्राप्त करना। मान लें कि
केंद्रित चाप बनाना। मान लें कि restCurve और
यहाँ
पूँछ जमीन छू सकती है; वह चूहे को उठा नहीं सकती
जमीन से संपर्क किसी खंड को उसकी लंबाई के गोले और फर्श के प्रतिच्छेदन पर घुमा देता है। किसी कण की ऊँचाई को केवल क्लैंप करने से हड्डी छोटी हो जाएगी; क्लैंप करके उसकी लंबाई बहाल करने से वह फिर भूमिगत जा सकती है। मोटाई के लिए हम केंद्ररेखा से नीचे 0.025 वर्ल्ड यूनिट छोड़ते हैं, नीचे की ओर संपर्क वेग हटाते हैं और फिसलन को डैम्प करते हैं। समतल फर्श डिफ़ॉल्ट रूप से वर्ल्ड Y = 0 पर होता है और उसे खिसकाया या अक्षम किया जा सकता है। यह एक समतल बाधा है, भूभाग या पूर्ण मेश टकराव नहीं।
गोला–फर्श प्रतिच्छेदन। फर्श की ऊँचाई और केंद्ररेखा क्लीयरेंस के योग को
यदि पूर्वानुमानित अंतिम बिंदु फर्श से नीचे है, तो
इसकी ऊँचाई ठीक
अन्य वेग प्रोजेक्शन के बाद, संपर्क में मौजूद कण का बचा हुआ नीचे की ओर वेग हटा दिया जाता है और उसके वेग को डैम्प किया जाता है:
यह साधारण डैम्पिंग वाला अप्रत्यास्थ संपर्क है, कूलॉम-घर्षण मॉडल नहीं। यह पूँछ के फर्श पर टिके रहने के दौरान गुरुत्वाकर्षण को नीचे की ओर वेग संचित करने से रोकता है।
इससे पूँछ का फर्श में धँसना हल हो गया, लेकिन दो अन्य जगहों पर भी पूँछ पैरों को हवा में तैरा सकती थी।
पहला, व्यूअर पूरे लोड किए गए मेश के सबसे निचले बिंदु को जमीन पर रखता था। यदि सहेजी गई पूँछ तलवों से नीचे लटकती थी, तो वह पूँछ को समायोजित करने के लिए पूरे पात्र को उठा देता था। अब व्यूअर शरीर का फर्श निर्धारित करते समय पूँछ-प्रधान स्किन को अनदेखा करता है, जबकि कैमरा फ़्रेमिंग में अब भी पूरा पात्र शामिल रहता है।
दूसरा, रीटार्गेटर का शरीर-ग्राउंडिंग पास भी पूँछ को गिनता था। Back Flip के दौरान वह उस स्किन को जमीन से ऊपर रखने के लिए श्रोणि को उठाता था, जबकि स्वतंत्र पूँछ सॉल्वर बाद में उसे वैसे भी हिला देता।
कौन-सी स्किन को श्रोणि उठाने की अनुमति है? मान लें कि
यहाँ
नीचे की तुलना में बताई गई अतिरिक्त उठान केवल कच्चे सुधार की नहीं, बल्कि अंतिम श्रोणि पथों के बीच का अंतर है:
Back Flip के अंत के पास मापी गई श्रोणि उठान
हमने समान ऐनिमेशन समयों पर उसी चूहे का सैंपल लिया और केवल यह बदला कि शरीर की ग्राउंडिंग में पूँछ शामिल थी या नहीं। दोनों कॉलम समान मॉडल वर्ल्ड निर्देशांकों का उपयोग करते हैं; अंतर पूँछ को गिनने से आई अतिरिक्त ऊँचाई को अलग करता है।
| 1.93 s की क्लिप में समय | श्रोणि की ऊँचाई: पूँछ शामिल | श्रोणि की ऊँचाई: पूँछ बाहर | पूँछ गिनने से अतिरिक्त उठान |
|---|---|---|---|
| 1.16 s | 50.5 cm | 35.0 cm | 15.4 cm |
| 1.55 s | 81.3 cm | 70.3 cm | 11.0 cm |
| 1.84 s | 92.2 cm | 77.2 cm | 15.0 cm |
| 1.93 s | 90.6 cm | 77.2 cm | 13.4 cm |
लैंडिंग के बाद खड़े होते समय पात्र को ऊपर उठना चाहिए। त्रुटि अंतिम कॉलम में दी गई अतिरिक्त उठान है, वह इच्छित रिकवरी गति नहीं। मानों को सैंपल की गई वर्ल्ड स्थितियों से स्वतंत्र रूप से राउंड किया गया है।
इस चूहे में पूँछ को बाहर रखने से Back Flip के अंतिम हिस्से में श्रोणि की लगभग 15 cm अतिरिक्त उठान हट गई। अंत के पास शरीर का प्रोब अपने संदर्भ फर्श से लगभग एक मिलीमीटर के भीतर रहा, बजाय उसके कई सेंटीमीटर ऊपर तैरने के। अब पूँछ की स्किन न तो शरीर का फर्श तय करती है, न वह सुधार जो उसकी श्रोणि को उठाता है। पूँछ सॉल्वर स्वयं केवल पूँछ की हड्डियों को घुमाता है; वह मॉडल, कूल्हों या पैरों को कभी स्थानांतरित नहीं करता।
कोई ऐनिमेशन चलाने से पहले ही वह किसी मुद्रा को विरासत में पा सकता है
उठी हुई झुकी मुद्रा ने एक अलग समस्या उजागर की। हम लाइब्रेरी क्लिप क्रमशः जनरेट करते हैं, ताकि हर क्लिप तैयार होने से पहले ही व्यूअर प्लेबैक शुरू कर सके। रीटार्गेटिंग प्लेबैक वाले उसी कंकाल का उपयोग कर रही थी। सॉल्व के बीच प्रीव्यू श्रोणि को हिला सकता था और अगली क्लिप उस ऐनिमेटेड मुद्रा को अपने कैलिब्रेशन संदर्भ के रूप में पढ़ती थी। क्लिप बदलते समय रीसेट करने से जनरेट किए गए ट्रैक्स में पहले से बेक हो चुका खराब संदर्भ ठीक नहीं हो सकता था।
अब रीटार्गेटिंग प्लेबैक शुरू होने से पहले कैप्चर किए गए स्थिर कैलिब्रेशन से बनी निजी कंकाल प्रतियों पर काम करती है। बाद की क्लिप अनुरोध उसी संदर्भ का पुनः उपयोग करते हैं और समवर्ती अनुरोधों के लिए अलग हड्डियाँ होती हैं। एक रिग्रेशन परीक्षण डिलीवर की गई क्लिपों के बीच लाइव कूल्हों को जानबूझकर खिसकाता और घुमाता है; जनरेट किए गए ट्रैक साफ़ रन के समान बने रहने चाहिए और सॉल्विंग के बाद लाइव मुद्रा अछूती रहनी चाहिए। हर दिखाई देने वाली हरकत बग नहीं थी। Climb Idle के सोर्स लूप में पेल्विस का हल्का-सा ऊपर-नीचे हिलना है, जबकि रूट स्थिर रहता है। और नए Crawl Idle सॉल्व में पूरे लूप के दौरान चूहे के हाथ उसके सिर के नीचे रहे; हाथ ऊपर उठे होने वाला स्क्रीनशॉट इस बात का प्रमाण नहीं था कि सोर्स ऐनिमेशन वही पोज़ चाहता है, बल्कि वह पहले की किसी दूषित क्लिप के अनुरूप था। सोर्स, नए सॉल्व और चलते हुए परिणाम की तुलना करने से हम कैलिब्रेशन की त्रुटि छिपाने के लिए जानबूझकर रखी गई गति को सपाट करने से बच सके।
अब हम क्या जाँचते हैं
जाँचों में अलग-अलग लंबाई वाली चेन पर कूल्हों के तेज़ घुमाव, पास-पास के जोड़ों का अधिक सहज मुड़ना, बाएँ/दाएँ समान प्रतिक्रिया, बाइंड पोज़ की पुनर्प्राप्ति, बिना हेल्पर के घुमी हुई अंतिम बोन और वार्म-अप के बाद लूप का ठीक से बंद होना शामिल है। फ़्लोर टेस्ट में झुककर बैठना, ऊपर उठे हुए फ़्लोर प्लेन, स्थिर होना और कूल्हे ऊपर उठने पर मुक्त होना शामिल हैं। अलग रिग्रेशन जाँचें सत्यापित करती हैं कि पूँछ का संपर्क कभी शरीर को न हिलाए और पूँछ की स्किन कभी पेल्विस को ऊपर उठाने का अनुरोध न कर सके।
ये जाँचें विशिष्ट अपरिवर्तनीय नियम स्थापित करती हैं। वे चूहे की गतियों को ध्यान से देखने की जगह नहीं लेतीं, न ही वे लोमड़ी के लिए नए स्ट्रेच आँकड़े स्थापित करती हैं। लाइव उदाहरण संशोधित सॉल्वर का उपयोग करते हैं; पहले वाली लोमड़ी की तालिका मूल माप का रिकॉर्ड बनी हुई है।
इससे आपके लिए क्या बदलता है
अगर आप cinevva.com/tools/rigger पर पूँछ वाले किसी कैरेक्टर को रिग करते हैं, तो पूँछ अपनी अलग बोन चेन पर वापस आती है, जॉब स्टेटस में एक appendages एंट्री होती है जो बताती है कि क्या मिला, और प्रीव्यू उसे झुलाता है। प्लेटफ़ॉर्म API के ज़रिए रिग किए गए मॉडल को भी वही फ़ाइल मिलती है। rt/1.1.12 के मूल इंटीग्रेशन ने createAnimator को बिना किसी अतिरिक्त कोड के Tail_* बोन खोजने और चलाने की क्षमता दी थी; अगर आप अधिक भारी या सुस्त पूँछ चाहते हैं, तो स्प्रिंग की फ़्रीक्वेंसी, डैम्पिंग, ग्रैविटी और कैरी एंगल विकल्प के रूप में उपलब्ध हैं। पूँछ की चेन के बिना बनी पुरानी फ़ाइलों को दोबारा रिग करके फिर से इस पास से चलाया जा सकता है। ऊपर बताए गए 11 सितंबर के बदलाव अब Cinevva के वेब प्रीव्यू में लाइव हैं। पुराने रनटाइम वर्शन पर पिन किए गए गेम और पहले एक्सपोर्ट की गई क्लिप अपने-आप अपडेट नहीं होतीं। सुधारों को शामिल करने के लिए मौजूदा बेक की गई क्लिप को फिर से जनरेट करना होगा।
Blender में। ऐड-ऑन आर्मेचर बनाने से पहले रिग टेबल पर यही पास चलाता है, इसलिए आपकी अपनी मशीन पर रिग की गई पूँछ को उन्हीं नामों के तहत वही चेन मिलती है। Fingers के पास Tail चेकबॉक्स है और परिणाम कार्ड बताता है कि उसे क्या मिला।
हमारे रनटाइम के बाहर। किसी गेम में मौजूद स्प्रिंग उस व्यक्ति के किसी काम की नहीं जो फ़ाइल को Blender, Unity या Unreal में खोलता है, जहाँ पूँछ स्थिर रहती। इसलिए अब एक्सपोर्ट करते समय इसे बेक किया जाता है: हर चुनी हुई क्लिप सिम्युलेट होती है और पूँछ के रोटेशन वास्तविक कीफ़्रेम में सैंपल किए जाते हैं। एक्सपोर्टर क्लिप को बिना दिखाए तब तक चलाता है, जब तक पूँछ उस स्थिति पर वापस नहीं आ जाती जहाँ से पास शुरू हुआ था, और फिर रिकॉर्ड करता है; ऐसा इसलिए है क्योंकि कोल्ड स्टार्ट से बेक किया गया साइकल ठीक से बंद नहीं होता और लूप होने पर पूँछ झटके से उछलती है। जानबूझकर पूँछ का सिरा सबसे नरम लिंक रखा गया है, इसलिए उसकी क्षणिक गति स्थिर होने में सबसे अधिक समय लेती है और एक वार्म-अप पास हमेशा पर्याप्त नहीं होता।
यह पास जानबूझकर सावधानी बरतता है। यह केवल पेल्विस से लटकने वाले लंबे हिस्से के लिए चेन बढ़ाता है। कान, बाल और आस्तीन अछूते रहते हैं, और धड़ पर मौजूद किसी भी चौड़ी चीज़ के साथ भी ऐसा ही होता है: पहले के एक वर्शन ने केप या स्कर्ट को कठोरता से उसकी धड़ की बोन को सौंप दिया था, लेकिन असली अपलोड पर उसे चलते हुए देखने के बाद हमने अपना विचार बदल दिया। उनमें से एक कमर पर मौजूद 6,540-वर्टेक्स वाला परिधान था, जिसे रिगर ने समझदारी से कूल्हों और दोनों जाँघों पर फैलाया था; एक ही बोन उसे पैरों के साथ चलने से पूरी तरह रोक देती। किसी परिधान को एक ही बोन को सौंपना, उस हिस्से के बारे में अनुमान के आधार पर किसी के कैरेक्टर में किया गया बड़ा बदलाव है, इसलिए अब यह अपने-आप होने के बजाय आपके अनुरोध पर होता है। आगे वाले प्लेन से परे पैरों के साथ कोई कोलिज़न नहीं होता और कैरेक्टर के स्थिर खड़े रहने पर कोई आइडल झूलना भी नहीं होता, इसलिए खड़ी हुई लोमड़ी की पूँछ अपने निर्धारित पोज़ में शांति से लटकी रहती है। सूची में अगली दो चीज़ें यही हैं, साथ ही पंखों के लिए भी ऐसा ही ट्रीटमेंट है, जिन्हें एक अलग रेस्ट पोज़ और अलग स्प्रिंग चाहिए।