Skip to content

चार ऑटो-रिगर, बारह जानवर, एक साझा खामी: सीधी टाँगें ​

Oleg Sidorkin द्वारा, Cinevva के CTO और सह-संस्थापक

हिरण के लिए कलाकार द्वारा बनाया गया वॉक साइकल लें, उसे उसी हिरण पर रीटार्गेट करें जिसे किसी ऑटो-रिगर ने रिग किया हो, और नतीजा कुछ ऐसा गलत दिखता है जिसे शब्दों में बताना मुश्किल है। पैर मोटे तौर पर सही जगहों पर पड़ते हैं। टाइमिंग सही होती है। फिर भी वह चलता हुआ मेज़ लगता है।

हम कुछ समय तक मानते रहे कि समस्या हमारे रीटार्गेटिंग कोड में है। ऐसा नहीं है। किसी भी ऐनिमेशन के उसे छूने से पहले ही रिग गलत होता है, और इसे दिखाने वाली एक ही संख्या है।

वह संख्या ​

एक टाँग लें। कूल्हे से पैर तक उसके बोन सेगमेंट की लंबाइयाँ जोड़ें। इसे रीच कहें। अब बाइंड पोज़ में कूल्हे के जोड़ से पैर के जोड़ तक की सीधी दूरी मापें। इसे स्पैन कहें। रीच को स्पैन से भाग दें।

स्थिर खड़े असली जानवर की टाँग मुड़ी हुई होती है, इसलिए चेन उस सीधी रेखा से अर्थपूर्ण रूप से लंबी होती है जिसके बीच वह फैली है। Quaternius Ultimate Animated Animals पैक के कलाकारों द्वारा रिग किए गए बारह जानवरों में यह अनुपात 1.15 से 1.50 तक है और औसत 1.30 है। हिरण की पिछली टाँग के लिए यह 1.40 है। लोमड़ी की अगली टाँग के लिए 1.29।

अब अहम बात। बिना मोड़ वाली टाँग अपने स्पैन को छोटा किए बिना मुड़ नहीं सकती। अगर जोड़ सीधी रेखा में हों, तो घुटने को मोड़ने का एकमात्र तरीका पैर को कूल्हे की ओर खींचना है। इसलिए या तो पैर ज़मीन से उठ जाता है या शरीर नीचे धँसता है। उस रिग से कलाकार वाला घुटने का कोण माँगें और आपको झुकी हुई मुद्रा मिलती है। कितनी भी रीटार्गेटिंग इसे ठीक नहीं कर सकती, क्योंकि पोज़ के लिए आवश्यक जानकारी स्केलेटन में कभी थी ही नहीं।

एक ही कूल्हे और पैर के बीच दो टाँग चेन, एक मुड़ी हुई जिसका माप 1.31 है और दूसरी लगभग सीधी जिसका माप 1.04 है
दोनों चेन एक ही कूल्हे से शुरू होकर एक ही पैर पर समाप्त होती हैं। मुड़ी हुई चेन अपने स्पैन की रेखा से 31% लंबी है, इसलिए उसमें मुड़ने के लिए अतिरिक्त लंबाई है। सीधी चेन में ऐसा कुछ नहीं है, और दिखाई गई संख्याएँ कलाकारों के रिग का मापा गया औसत और Tripo का औसत हैं।
स्पैन रीडआउट के साथ एक मुड़ी हुई चेन और एक सीधी चेन का समान फ्लेक्स से गुजरते हुए ऐनिमेशन

इसलिए सवाल सीमित है और इसे मापा जा सकता है। क्या रिगर टाँग के बीच वाले जोड़ ऐसी जगह रखता है जहाँ टाँग मुड़ सके?

परीक्षण की व्यवस्था ​

बारह जानवर, सभी Quaternius पैक से CC0, और हर एक के साथ 38 से 51 जोड़ों वाला कलाकार-निर्मित रिग।

अपने ही मटेरियल के साथ रेंडर किए गए बारह Quaternius CC0 जानवर, अल्पाका से भेड़िये तक
परीक्षण के विषय, उनके अपने मटेरियल और कलाकारों द्वारा बनाए गए बोन की संख्या के साथ। इनमें से हर एक रिग सहित आता है, और सबसे पहले हम उसी रिग को हटा देते हैं।
हमने रिग हटा दिया और केवल वही रखा जो उपयोगकर्ता वास्तव में अपलोड करता है: ट्रायंगल। फिर हमने उसे हर रिगर को दिया और लौटकर आए परिणाम की तुलना कलाकार के अपने स्केलेटन से की।

मेश तैयार करने का एक विवरण जितना दिखता है, उससे कहीं अधिक महत्वपूर्ण निकला। वे glTF फ़ाइलें मटेरियल के आधार पर मेश को पाँच प्रिमिटिव में बाँटती हैं, और क्योंकि मॉडल कड़े किनारों वाले लो-पॉली हैं, लगभग हर वर्टेक्स हर सटी हुई फेस के लिए दोहराया गया है। लोमड़ी में 3,752 वर्टेक्स संग्रहित हैं, लेकिन उनमें केवल 926 अलग हैं। मेश टोपोलॉजी पर ग्राफ बनाने वाले रिगर एक ही स्थान पर मौजूद मगर असाझा सीम को दरारों की तरह पढ़ते हैं, इसलिए सिर शरीर से अलग ऑब्जेक्ट बन जाता है, उनके बीच की जियोडेसिक दूरी अनंत हो जाती है, और जिस जोड़ को गर्दन में होना चाहिए उसके वहाँ जाने का कोई कारण नहीं रहता। वहाँ स्थिति के आधार पर वेल्डिंग कोई ऑप्टिमाइज़ेशन नहीं है। यही एक जानवर और छह अलग-अलग द्वीपों के बीच का अंतर है। बारह में से नौ एकल जलरोधी शेल के रूप में निकले। बैल और गाय के सींग अलग हिस्सों के रूप में रहे और नर हिरण के एंटलर भी, जिन्हें हमने जानबूझकर नहीं हटाया, क्योंकि वास्तविक अपलोड ऐसे ही दिखते हैं।

स्कोरिंग के लिए हमने दो चीज़ें इस्तेमाल कीं। पहली हमारा अपना रनटाइम फ़ंक्शन है, जो किसी भी चौपाया स्केलेटन को कैनोनिकल संरचना में घटाता है। उसे चार अलग-अलग क्वाड्रंट में चार पैर, एक स्पाइन और एक गर्दन ढूँढ़नी होती है। अगर वह ऐसा नहीं कर सकता, तो बाकी खूबियाँ चाहे जो हों, रिग को रनटाइम पर चलाया नहीं जा सकता।

यह फ़ंक्शन जानबूझकर किसी भी बोन का नाम नहीं पढ़ता, और इसका कारण शिक्षाप्रद है। Tripo अपनी लिंब चेन को बिना किसी तय अर्थ वाले इंडेक्स से क्रमांकित करता है, इसलिए उसके हिरण पर चेन 0 पिछली जोड़ी है और घोड़े पर अगली जोड़ी। उसके बाएँ और दाएँ लेबल अलग-अलग रिग में एक-दूसरे से सहमत नहीं होते: एक ही दिशा में देखते हिरण पर Left x=-0.072 पर है और घोड़े पर x=+0.076 पर। अपनी लोमड़ी पर वह स्पाइन को लिंब चेन के रूप में लेबल करता है। नामकरण की हर धारणा जिसे हमने आज़माया, मापने पर विफल रही, इसलिए हम इसकी जगह बाइंड ज्योमेट्री पढ़ते हैं, जो यह सब बिना किसी अस्पष्टता के बताती है।

दूसरी चीज़ ऊपर दिया गया फोल्ड अनुपात है। दोनों माप स्केल से अप्रभावित हैं, जो महत्वपूर्ण है क्योंकि ये रिगर बेहद अलग-अलग स्केल पर काम करते हैं। Tripo लगभग एक यूनिट क्यूब पर नॉर्मलाइज़ करता है, इसलिए उसकी लोमड़ी का फैलाव 0.13 गुणा 0.34 गुणा 0.65 है, जबकि कलाकार की लोमड़ी का 0.77 गुणा 2.47 गुणा 6.59।

क्या लौटकर आया ​

रिगररिगचलाने योग्यऔसत जोड़औसत फोल्ड
कलाकार (संदर्भ)121146.81.299
Anything World6637.81.363 (नीचे देखें)
RigNet121254.11.146
SkinTokens121132.01.078
Tripo121025.81.045
पाँच रिगर में छह जानवर, कलाकार के रिग के IK कंट्रोल बोन धूसर और डिफॉर्म करने वाले बोन नीले रंग में दिखाए गए हैं
छह जानवर, पाँच रिगर। हर सेल में चलाने-योग्यता का वास्तविक निर्णय और फोल्ड की सीमा दी गई है। कलाकार वाले कॉलम में नीले बोन मेश को डिफॉर्म करते हैं और धूसर बोन IK कंट्रोल हैं, इसलिए वह कॉलम उसके बगल के अनुमानित रिग से अधिक व्यस्त दिखता है।
1.15 से 1.50 की छायांकित कलाकार सीमा के सामने रिगर के अनुसार औसत फोल्ड अनुपात का डॉट प्लॉट, जिसमें चारों अनुमानित रिगर उससे पीछे हैं
छायांकित पट्टी वह सीमा है जहाँ कलाकारों के रिग आते हैं। Anything World को छोड़कर हर अनुमानित रिगर उसके बाईं ओर आता है और टाँग के लिए आवश्यक फोल्ड से कम रहता है; Anything World गलत कारण से सीमा पार करता है।
कलाकार, Tripo, Anything World, SkinTokens और RigNet के हिरण की पिछली टाँगों पर लागू किया गया एक ही घुटने का रोटेशन

Anything World वाली पंक्ति सावधानी से पढ़ें, क्योंकि यहाँ वही एक संख्या है जो जीत जैसी दिखती है, लेकिन है नहीं। उसका 1.363 औसत कलाकार के औसत से अधिक है, और वह पूरी तरह नीचे वर्णित एक बग के कारण है। बग को अलग रख दें तो उसकी टाँगों का माप 1.02 से 1.18 है। बाकी सबकी तरह सीधी।

इसलिए चारों में से कोई भी कलाकार के न्यूनतम फोल्ड 1.15 तक नहीं पहुँचता। इसमें Tripo भी शामिल है, वही रिगर जिसे हम अपने Pro टियर के रूप में उपलब्ध कराते हैं। यही निष्कर्ष है, और यह किसी लीग तालिका से अधिक महत्वपूर्ण है। स्वतंत्र रूप से बनाए गए चार सिस्टम एक ही त्रुटि पर पहुँचते हैं। वे सभी चौपाए की टाँगों के जोड़ लगभग एक सीधी रेखा में रखते हैं।

इसे देख लेने के बाद बात समझ में आती है। उन्हें ऐसे डेटासेट पर प्रशिक्षित किया गया था जिनमें मुख्यतः द्विपाद और न्यूट्रल रेस्ट पोज़ वाले मॉडल थे। सीधा लिंब सुरक्षित औसत है। मुड़ा हुआ हॉक खास तौर पर चौपायों की विशेषता है, जिसे अधिकतर ह्यूमनॉइड पूर्वधारणा के पास सीखने का बहुत कम कारण है।

यह भी ध्यान देने योग्य है कि संदर्भ वाली पंक्ति भी पूर्ण नहीं है। एक कलाकार रिग, Shiba Inu, हमारे अपने चलाने-योग्यता परीक्षण में विफल होता है, और इसका कारण शिक्षाप्रद है। ये रिग एक IK कंट्रोल लेयर के साथ आते हैं: रूट से जुड़े चार पोल टार्गेट, जो जानवर के सामने शरीर की आधी लंबाई जितनी दूरी पर स्थित हैं, और साथ ही चार IK चेन जिनका कोई पैरेंट ही नहीं है। वे भी "पैर" की ज्यामितीय परिभाषा को वास्तविक पैरों जितनी अच्छी तरह पूरा करते हैं, और Shiba Inu पर वे जीत जाते हैं, जिससे बारह में से आठ गलत उम्मीदवार मिलते हैं।

इससे एक स्पष्ट संदेह उठता है, और उसे दूर करना ज़रूरी है, क्योंकि ज्यामितीय विश्लेषक को भ्रमित करने वाली कंट्रोल लेयर ऐसी लगती है मानो वह बहुत कुछ समझा सकती हो। ऐसा नहीं है। कंट्रोल बोन हटाकर विश्लेषण दोबारा चलाने से कलाकारों के बारह रिग में से ठीक एक का परिणाम बदलता है। Shiba Inu टूटे हुए 2 लिंब से साफ़ 4 पर पहुँच जाता है, और 1.28 से 1.43 का फोल्ड मिलता है जो हस्की के बिल्कुल पास आता है। बाकी ग्यारह के परिणाम बिल्कुल समान रहते हैं, फोल्ड अनुपात सहित। इसलिए IK लेयर हमारे पैर-पहचान में वास्तविक बग और एक-पंक्ति वाला सुधार है, लेकिन ऑटो-रिग की गई टाँगों को सीधा बनाने वाली चीज़ नहीं। कलाकारों की 1.15 से 1.50 की सीमा कभी भी कंट्रोल बोन पर नहीं मापी गई थी, और अनुमानित रिग में कोई कंट्रोल लेयर है ही नहीं: Tripo के स्केलेटन में कोई नहीं है, और Anything World के पाँच नॉन-डिफॉर्मिंग जोड़ केवल लीफ टिप मार्कर हैं।

अनुमानित रिग का शुद्ध FK होना उलटी दिशा में भी असर डालता है। इस एक सीमित अर्थ में, बिना नाम पढ़ने वाले रनटाइम के लिए ऑटो-रिग किया गया जानवर कलाकार के रिग से अधिक आसानी से पढ़ा जा सकता है।

चारों रिगर के विफल होने के तरीके काफ़ी अलग हैं ​

Tripo 1.045 के साथ सबसे सीधा है, और यह बड़े अंतर से सबसे कम जोड़ इस्तेमाल करता है—कलाकार के 46.8 की तुलना में 25.8। लेकिन जहाँ दूसरे चूकते हैं, वहाँ यह चेन का आकार सही करता है। इसके बारह में से चार रिग कलाकार के ठीक 3/3/4/4 विभाजन को दोहराते हैं—हर अगली टाँग में तीन और हर पिछली टाँग में चार जोड़—जो कोई दूसरा रिगर एक बार भी नहीं कर पाया। इसलिए यह जोड़ों की गलत संख्या नहीं रख रहा। यह सही संख्या को लगभग सीधी रेखा में रख रहा है। यह दोष पहली नज़र में दिखने से अधिक सीमित है, और संकेत देता है कि मौजूदा जोड़ों की स्थिति बदलना दोबारा रिग करने से छोटा काम है। इसके दो रिग चलाने-योग्यता में पूरी तरह विफल होते हैं: लोमड़ी दो लिंब के साथ लौटती है और नर हिरण भी।

हिरण का स्केलेटन, कलाकार का रिग और उसके बगल में Tripo का अनुमान, दोनों 3/3/4/4 टाँग चेन का उपयोग करते हुए
Tripo संरचना सही और प्लेसमेंट गलत करता है। उसका हिरण आधे जोड़ों के साथ कलाकार के ठीक 3/3/4/4 चेन विभाजन का उपयोग करता है, फिर भी कलाकार के 1.18 से 1.40 के मुकाबले इसका माप 1.00 से 1.05 है।

RigNet (SIGGRAPH 2020) का वास्तविक फोल्ड 1.146 के साथ सबसे अच्छा है और यह अकेला था जिसने सभी बारह के लिए चलाने योग्य रिग बनाया। समस्या उसकी चेन हैं। कलाकार सभी बारह जानवरों पर 3/3/4/4 इस्तेमाल करता है, जिसमें आगे और पीछे एकरूप हैं। RigNet उस आकार को ठीक-ठीक केवल एक बार दोहराता है। उसके तीन रिग में किसी टाँग पर दो या उससे कम जोड़ हैं, जो बिल्कुल भी आर्टिकुलेट नहीं कर सकती, और चार में किसी टाँग पर सात या अधिक जोड़ हैं। उसका घोड़ा 2/2/8/8 है: अगली टाँगों में दो जोड़, पिछली टाँगों में आठ। RigNet की प्रकाशित आलोचना यह है कि यह "अनियमित स्केलेटन आउटपुट करता है", और व्यवहार में अनियमितता ऐसी ही दिखती है। बैंडविड्थ स्वीप भी इसे ठीक नहीं करेगा, क्योंकि वह पैरामीटर यह नियंत्रित करता है कि जोड़ कितने होंगे, यह नहीं कि वे लिंब के बीच कैसे बाँटे जाएँगे।

घोड़े का स्केलेटन, 3/3/4/4 चेन वाला कलाकार का रिग और उसके बगल में 2/2/8/8 चेन वाला RigNet का अनुमान
RigNet का घोड़ा 2/2/8/8 है: हर अगली टाँग में दो जोड़ और हर पिछली टाँग में आठ। दो-जोड़ वाली टाँग बिल्कुल भी आर्टिकुलेट नहीं कर सकती। कलाकार सभी बारह जानवरों पर 3/3/4/4 इस्तेमाल करता है।

Anything World चुपचाप नहीं, बल्कि साफ़ तौर पर विफल होता है। हमारे भेजे आठ जानवरों में से दो बिल्कुल भी रिग नहीं हुए: हस्की FinetuningError: Incorrect segmentation exception के साथ लौटा और गाय केवल Unknown error के साथ। जो छह रिग हुए, वे सभी चलाने योग्य हैं। सभी छह एक जैसी 5/5/5/5 चेन इस्तेमाल करते हैं, जो किसी भी अनुमानित रिगर द्वारा बनाई गई सबसे एकरूप संरचना है।

समस्या उसकी अगली टाँगों में है, और इसके आकार को ठीक-ठीक बताना ज़रूरी है, क्योंकि कच्चा औसत सेवा को वास्तविकता से बेहतर दिखाता है। सभी छह में पिछली टाँगें बिल्कुल मिरर की गई हैं: 1.10 और 1.10, 1.11 और 1.11, 1.13 और 1.13, और इसी तरह पाँच दशमलव स्थानों तक। छह में से तीन पर अगली टाँगें बिगड़ जाती हैं, जहाँ एक टाँग शारीरिक रूप से संभव किसी भी सीमा से बहुत आगे तक मुड़ी होती है, जबकि उसकी जुड़वाँ लगभग सीधी खड़ी रहती है। अल्पाका में अगली बाईं टाँग 3.60 है, जबकि अगली दाईं 1.87। घोड़े में 2.47 के मुकाबले 1.43। हिरण में 1.43 के मुकाबले 2.13, और ध्यान दें कि वहाँ चरम मान वाला हिस्सा दायाँ है, इसलिए यह लगातार बाईं ओर का झुकाव नहीं है।

अल्पाका का कंकाल, आर्टिस्ट रिग के बगल में Anything World का अनुमान, जिसकी मोड़ सीमा 3.60 तक जाती है
अल्पाका सबसे स्पष्ट मामला है: Anything World एक समान 5/5/5/5 चेन देता है और उसके चारों पैरों में मोड़ सीमा 1.10 से 3.60 तक है। पिछले पैरों की जोड़ी पूरी तरह मेल खाती है। अगले पैरों की जोड़ी नहीं।

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

SkinTokens (2025, Tripo के पीछे की VAST-AI टीम से) बड़े अंतर से सबसे सुव्यवस्थित है। बारह में से ग्यारह में बाईं और दाईं चेन की लंबाइयाँ प्रतिबिंबित हैं और किसी में भी दो या उससे कम जॉइंट वाला पैर नहीं है। यह एक सुसंगत कंकाल है जो अनियमित होने के बजाय 1.078 पर जरूरत से अधिक सीधा खड़ा है।

SkinTokens के बारे में लिखने लायक दो बातें ​

यह लो-पॉली इनपुट पर क्रैश हो जाता है। इसका कहीं कोई दस्तावेज़ीकरण नहीं है। हमारा 926-वर्टेक्स वाला लोमड़ी मॉडल बिना किसी Python ट्रेसबैक के, रिक्वेस्ट के बीच में ही इसके Blender-साइड सर्वर को ठप कर देता है। उसी लोमड़ी को 88,706 वर्टेक्स तक सबडिवाइड करने पर 70 सेकंड में रिग बन जाता है। उनका अपना उदाहरण मॉडल इसलिए काम करता है क्योंकि वह पहले से ही घना था। कॉल से पहले लगभग 40k वर्टेक्स तक सबडिवीज़न चरण जोड़ने से पूरी विफलता बदलकर बारह में से बारह सफल रिग हो गई। अगर आप इसे गेम एसेट दे रहे हैं, जो परिभाषा के अनुसार लो-पॉली होते हैं, तो यही पूर्वशर्त काम करने और न करने के बीच का पूरा अंतर है।

अधिक उपयोगी खोज यह है कि इसमें एक ऐसा मोड है जिसे हमने पहले कभी नहीं चलाया था। --use_skeleton देने पर यह नया कंकाल बनाने के बजाय आपके दिए हुए कंकाल के आधार पर काम करता है। फिर यह आपकी दी हुई संरचना को बनाए रखता है। हर आउटपुट जॉइंट किसी इनपुट जॉइंट पर स्थित होता है, औसत ऑफ़सेट बाउंडिंग बॉक्स विकर्ण का 0.31% और सबसे खराब स्थिति में 0.50% है। एक्सपोर्ट पर यह सभी के नाम बदलकर bone_0 और आगे रखता है तथा जिन पर कोई वेट नहीं है उन्हें हटा देता है, इसलिए बाहर से यह मोड बेकार दिखता था।

नामों में किया गया यह बदलाव वापस सुधारा जा सकता है। आउटपुट जॉइंट्स को स्थिति के आधार पर आपके दिए हुए कंकाल से मिलाएँ और हर नाम वापस मिल जाता है। हमने जिन चारों जानवरों पर इसे आज़माया, उनके 100% जॉइंट्स पर यह काम किया। और चूँकि अब कंकाल आपका है, इसलिए स्टांस भी आपका है। जब SkinTokens कंकाल चुनता है तो हमारे घोड़े का माप 1.01 से 1.02 होता है, और जब उसे आर्टिस्ट का कंकाल दिया जाता है तो 1.11 से 1.36। आर्टिस्ट के अपने कंकाल का माप 1.18 से 1.37 है।

इसके काम करने से पहले दो पूर्वशर्तें हैं। यह मल्टी-रूट कंकाल को सीधे अस्वीकार कर देता है, और इन आर्टिस्ट रिग्स में पाँच रूट हैं—बॉडी और चार IK चेन। हमारा पहला समाधान अलग पड़े रूट्स को हटाना था। वह गलत था। उन आठ बोन्स को हटाने पर पैक के हर जानवर में 90 से 128 वर्टेक्स पूरी तरह बिना किसी प्रभाव के रह जाते हैं, क्योंकि आर्टिस्ट ने पैरों को FF और FFB से स्किन किया है। वे निष्क्रिय हेल्पर नहीं हैं। हर अलग रूट को उसके सबसे निकट बॉडी जॉइंट का चाइल्ड बनाने से सभी वेट सुरक्षित रहते हैं और फिर भी एक ही रूट मिलता है।

अनाम बोन नाम उतनी बड़ी रुकावट नहीं हैं जितने वे दिखते हैं ​

अनुमानित कंकाल joint_0 या bone_0 जैसे नामों के साथ लौटता है, और सामान्य निष्कर्ष यह होता है कि कोई भी तैयार क्लिप उससे बाइंड नहीं हो सकती। चौपायों के लिए यह समस्या दोनों ओर से हल की जा चुकी है।

जैसा ऊपर बताया गया है, अगर आपने कंकाल दिया था तो नाम वापस पाए जा सकते हैं। या उन्हें ज्यामिति से निकाला जा सकता है। ज्यामितीय विश्लेषण पहले से जानता है कि कौन-सी चार चेन पैर हैं, हर चेन किस चतुर्थांश में है, और कौन-सा क्रम रीढ़ है तथा कौन-सा गर्दन। इस आधार पर दोबारा नाम देना कोई अनुमान नहीं है। हमने इसे सभी बारह RigNet रिग्स पर चलाया, ऐसी नामकरण परंपरा में नाम लिखे जिसे हमारा रनटाइम पहले से पढ़ता है, और फिर उनका दोबारा विश्लेषण किया। बारह में से बारह के परिणाम नाम-आधारित और ज्यामिति-आधारित दोनों रास्तों से एक जैसे निकले। समान अंग संख्या, समान चतुर्थांश, समान चेन लंबाइयाँ, समान रीढ़, समान गर्दन और समान मोड़ अनुपात।

दूसरा आँकड़ा: क्या कंकाल सममित भी है? ​

Anything World के अगले पैरों ने हमें ऐसा माप लेने के लिए प्रेरित किया जो हमें शुरुआत से ही लेना चाहिए था, और यह मोड़ की तुलना में रिगर्स को कहीं अधिक स्पष्टता से अलग करता है।

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

रिगरऔसत प्रतिबिंब त्रुटि
आर्टिस्ट0.01%
RigNet0.08%
SkinTokens0.37%
Anything World1.08%
Tripo1.13%
रिगर के अनुसार बाएँ/दाएँ प्रतिबिंब त्रुटि का डॉट प्लॉट, आर्टिस्ट के 0.01% से Tripo के 1.13% तक
किसी बोन का नाम पढ़े बिना मापा गया है, इसलिए यह उस कंकाल पर भी समान रूप से लागू होता है जिसके जॉइंट्स को bone_0 कहा गया है। इनपुट मेश सममित हैं, इसलिए हर संख्या यह दिखाती है कि रिगर किसी साइड की स्थिति को लेकर खुद से कितना असहमत है।
साथ-साथ घूमते पाँच घोड़ों के कंकाल, चार अनुमानित रिग्स के बगल में आर्टिस्ट रिग

आर्टिस्ट रिग्स राउंडिंग की सीमा तक प्रतिबिंबित हैं, जो अपेक्षित परिणाम है और इस बात की उपयोगी जाँच भी कि माप सही काम करता है। RigNet लगभग उतना ही अच्छा है, और यह संयोग नहीं है: यह क्लस्टरिंग से पहले अपने संभावित जॉइंट्स को x=0 के पार प्रतिबिंबित करके स्पष्ट रूप से सममित बनाता है। यह डिज़ाइन निर्णय आँकड़े में दिखाई देता है।

Tripo आखिरी स्थान पर है, हालाँकि बहुत थोड़े अंतर से, और उसके औसत से अधिक उसका फैलाव ध्यान खींचता है। उसके बारह में से आठ रिग्स 0.8% से नीचे आते हैं, लेकिन फिर लोमड़ी 15.02% और बारहसिंगा 14.45% पर पहुँचते हैं। यही वे दो मॉडल भी हैं जो चलाए जाने योग्य होने की कसौटी पर विफल होते हैं, और यह संयोग नहीं है: जिस रिगर की ज्यामिति प्रतिबिंबित नहीं है, उसके पास एक साइड को दूसरी से विश्वसनीय रूप से अलग करने का कोई स्थिर तरीका नहीं होता। यही पहले की नामकरण समस्याओं के पीछे भी था, जहाँ उसके अपने बाएँ और दाएँ लेबल अलग-अलग रिग्स में असहमत थे।

ये प्रतिशत छोटे हैं। स्थिर खड़े मॉडल में प्रतिशत का अंश दिखाई नहीं देता। जैसे ही वॉक साइकल बाएँ और दाएँ पैरों से आधी अवधि के अंतर पर एक ही काम करने को कहता है, यह तुरंत दिखने लगता है।

घोस्ट किए गए शरीर पर कंकाल दिखाते हुए चलता आर्टिस्ट का हिरण

हम इसके बारे में क्या कर रहे हैं ​

समाधान रीटार्गेट में नहीं, रिग में होना चाहिए। दो रास्ते खुले हैं और दोनों किसी भी मॉडल को ट्रेन करने से सस्ते हैं।

कंकाल दें और मॉडल को उसे स्किन करने दें। SkinTokens पहले से इसका समर्थन करता है और दी गई संरचना को बनाए रखता है। ह्यूमनॉइड्स के लिए हमारा प्रोडक्शन रिगर पहले से सही नामों वाला Mixamo कंकाल बनाता है, जिसे सीधे इसमें दिया जा सकता है। या मौजूदा रिग के जॉइंट्स को फिर से स्थित करें, जिसका Tripo के मामले में अर्थ है उस चेन के बीच वाले लेग जॉइंट्स को खिसकाना जिसकी जॉइंट संख्या पहले से सही है।

हम एक सीधे पैरों वाले रिगर को दूसरे से नहीं बदलेंगे। इसमें कोई लाभ नहीं है। महत्वपूर्ण आँकड़े पर इनके बीच का फैलाव 1.04 से 1.15 है, जबकि आर्टिस्ट का 1.30 है, और रेफ़रेंस से अंतर इनमें से किन्हीं भी दो के आपसी अंतर से बड़ा है।

अपडेट: बाद में एक तीसरा रास्ता मिला, और वह तस्वीर को इतना बदल देता है कि उस पर अलग लेख बनना चाहिए। कंकालों के बीच रीटार्गेट करने के बजाय अब हम विकृत सतह से एनीमेशन को हर रिग के अपने स्पेस में सॉल्व करते हैं, और इससे मिलने वाली गुणवत्ता रैंकिंग ऊपर वाली रैंकिंग को उलट देती है। वह कहानी भाग 2: कंकाल नहीं, सतह को सॉल्व करें में है।

सावधानियाँ, क्योंकि यहाँ वे मायने रखती हैं ​

सैंपल आकार असमान हैं और इससे औसतों के अर्थ की सीमा तय होती है। RigNet, SkinTokens और Tripo तीनों पूरे बारह मॉडल पर चले। Anything World आठ पर चला, जिनमें से छह ने रिग बनाया, और जो दो विफल हुए उन्होंने ऐसे स्पष्ट नाम वाले एरर दिए, न कि कोई खराब रिग जिसे हम माप सकते। Tripo के शुरुआती पाँच रिग्स पहले किए गए रीटार्गेटिंग काम से बचे हुए थे, इसलिए बाकी सात को इस बेंचमार्क के लिए उन्हीं इनपुट्स पर उसी एंडपॉइंट के जरिए रिग किया गया। उन्हें जोड़ने से उसका औसत मोड़ 0.004 बदला और औसत प्रतिबिंब त्रुटि 1.54% से घटकर 1.13% हो गई। यह लगभग उतना ही है जितना पाँच-मॉडल का सैंपल उसे एक दिशा में बेहतर और दूसरी दिशा में खराब दिखा रहा था।

खास तौर पर Anything World के मामले में, हमने दो रिग्स से शुरुआत की और लगभग उन्हीं के आधार पर एक दावा प्रकाशित कर दिया था। दोनों में अगले पैरों की एक जैसी विसंगति थी, जो बहुत निर्णायक लग रही थी। फिर बड़े परीक्षण का पहला मॉडल साफ लौटा और अचानक लगा कि गलती हमारे अपने सबमिशन में थी। छह मॉडल होने पर ही वास्तविक पैटर्न दिखाई दिया: आधा सैंपल प्रभावित है, पिछले पैर हमेशा सही हैं और चरम स्थिति हमेशा एक ही साइड पर नहीं होती। दो मॉडल किसी भी दिशा में आत्मविश्वास से भरा, गलत लेख तैयार करवा देते।

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

अंत में, मोड़ अनुपात एक न्यूट्रल खड़े बाइंड पोज़ को मानकर चलता है। इन बारह जानवरों के लिए यह सही माप है, लेकिन बीच कदम की मुद्रा में दिए गए रिग के लिए यह गलत माप होगा।

ये जानवर Quaternius से CC0 के तहत हैं, इसलिए कोई भी इस परीक्षण को दोहरा सकता है। अगर आप चौपायों को रिग करते हैं और आपने कुछ अलग मापा है, तो हम अपने Discord पर आपसे सुनना चाहेंगे।