Skip to content

बाल लहराने चाहिए, टेंटेकल नहीं बनने चाहिए ​

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

बाईं ओर पहले की गति और दाईं ओर बेहतर गति के साथ लड़की के परतदार बालों की साथ-साथ तुलना।

एक किरदार अपना सिर घुमाती है। उसके बालों को एक क्षण बाद उसका अनुसरण करना चाहिए, थोड़ा झूलना चाहिए और फिर स्थिर हो जाना चाहिए। हमारे पहले संस्करण ने कुछ और ही किया: सिरे नीचे की ओर मुड़ गए, मानो हेयरस्टाइल टेंटेकल बनने की कोशिश कर रही हो।

हड्डियों की लंबाई बरकरार रही। सिमुलेशन स्थिर रहा। जिन आँकड़ों पर हम नज़र रख रहे थे, वे जाँच में पास हो रहे थे। लेकिन गति फिर भी गलत दिख रही थी।

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

पहले, एक असली पोनीटेल को दोबारा बनाएँ ​

Seed-san की पोनीटेल का मेश अलग है। इस परीक्षण के लिए हमने उस मेश के मूल स्किन वेट मिटाए, उसे सिर से जोड़ा और अपने ज्यामितीय फिटर से छह जोड़ों वाली नई हेयर चेन बनाने को कहा। बाकी किरदार की मूल स्किनिंग बरकरार रही। बैंग्स की सात छोटी चेन ने भी कलाकार द्वारा बनाए गए अपने वेट बनाए रखे।

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

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

Open this demo in a full window ↗

हमने इन दृश्यों से Seed-san का अलग बैकपैक और रोबोटिक बाजू हटा दिया, ताकि पोनीटेल साफ़ दिखाई दे। दृश्यता के इस बदलाव से शरीर, बालों की ज्योमेट्री, स्किन वेट और एनिमेशन नहीं बदले हैं; यह बैकपैक से टकराव का समाधान नहीं है।

Universal एनिमेशन लाइब्रेरी आज़माएँ ​

एनिमेशन चयनकर्ता वही वर्ल्ड-स्पेस रीटार्गेटर इस्तेमाल करता है जो Cinevva के रिगर और रनटाइम में है। हम हर अवतार के VRM ह्यूमनॉइड मेटाडेटा को रीटार्गेटर द्वारा अपेक्षित जोड़ों के नामों से मैप करते हैं, पहले की केवल-बालों वाली स्किन के बजाय बॉडी स्किन चुनते हैं और बालों का प्रदर्शन शुरू होने से पहले शरीर का बिना एनिमेशन वाला पोज़ कैप्चर करते हैं। इससे दूसरी क्लिप चुने जाने पर मुड़े हुए सिर या झुके हुए शरीर को किरदार का विश्राम पोज़ मानने से बचा जाता है।

चुनी गई क्लिप साझा Universal लाइब्रेरी से फ़ेच की जाती है, एक बार रीटार्गेट की जाती है और चुने हुए किरदार पर चलाई जाती है। किरदार को दृश्य में रखने के लिए क्षैतिज गति हटा दी जाती है। इन डेमो में चुना गया हर Universal एनिमेशन लूप होता है, जिन एक्शन को मूल रूप से वन-शॉट चिह्नित किया गया था वे भी। फिर से शुरू करें चुने हुए एक्शन को दोबारा चलाता है। बालों की गति बॉडी एनिमेशन के बाद चलती है।

हमने हर अवतार पर सभी 260 क्लिप रीटार्गेट कीं: कुल 520 आउटपुट, जिनमें शरीर का कोई आवश्यक जोड़ गायब नहीं था, कोई अमान्य संख्यात्मक ट्रैक नहीं था और बालों के जोड़ों को लक्षित करने वाला कोई बॉडी-एनिमेशन ट्रैक नहीं था। हमने Idle, Walk, Jump, Back Flip, Dance, Crouch Forward और Sitting Idle के नमूने भी लिए, शरीर की गति और सिंक्रोनाइज़ेशन जाँचे और रेंडर किए गए पोज़ का निरीक्षण किया। ये जाँचें इन दोनों रिग पर उपयोग योग्य रीटार्गेटिंग स्थापित करती हैं, हर फ़्रेम में दृश्यात्मक पूर्णता नहीं। रीटार्गेटिंग जाँच के नतीजे।

कपड़ों को भी कलाकार द्वारा बनाए गए अपने कंट्रोल चाहिए। यह VRM नमूना आस्तीन और अंगों के डिफ़ॉर्मेशन के लिए aim और twist constraints इस्तेमाल करता है; केवल ह्यूमनॉइड जोड़ों को एनिमेट करने पर आस्तीन अपने मूल पोज़ में रह जाती हैं। अब डेमो इन कंट्रोल को आधिकारिक VRM node-constraint मॉड्यूल से लोड करता है और बॉडी एनिमेशन के बाद, लेकिन हेयर सिमुलेशन से पहले, उन्हें अपडेट करता है। इससे दिया गया क्लोदिंग रिग सुरक्षित रहता है; यह क्लॉथ सिमुलेशन नहीं जोड़ता।

पूरी लाइब्रेरी निरीक्षण के लिए उपलब्ध है, लेकिन नीचे दिए गए क्लिपिंग और स्ट्रेच के माप अब भी नियंत्रित सिर-घुमाने वाले क्रम का उपयोग करते हैं। वे हर डांस, गिरने या पलटी में बालों के टकराव-मुक्त होने को प्रमाणित नहीं करते।

गलती विश्राम आकार में थी ​

जोड़ों की चेन को वापस लौटने के लिए एक दिशा चाहिए। हमारा पहले वाला सॉल्वर उस दिशा की गणना उसके ऊपर मौजूद पहले से मुड़े हुए जोड़ के सापेक्ष करता था। इसलिए ऊपर का छोटा-सा विचलन अगले सेगमेंट की विश्राम दिशा बदल देता था, जो उसके बाद वाले सेगमेंट को फिर बदल देता था।

इसी संचय से घुमाव पैदा हुआ। हर हड्डी की सही लंबाई बनाए रखना इसे रोक नहीं सकता था।

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

हमने कलाकार द्वारा बनाए गए मौजूदा रिग को थोड़ा अधिक कठोर भी बनाया और डैम्पिंग बढ़ाई। पहले-बाद की तुलना में केवल कोऑर्डिनेट-फ़्रेम बदलाव ही नहीं, यह ट्यूनिंग भी शामिल है।

एक गतिशील लक्ष्य जो मूल चाप को बनाए रखता है ​

सेगमेंट i के लिए, oi उसकी वर्तमान जोड़ स्थिति और ai उसका मूल चाइल्ड ऑफ़सेट हो। वह जिस स्थिति में लौटने की कोशिश करता है, वह है

ri=oi+RHRi0(sai).

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

हर चरण इस लक्ष्य की ओर आकर्षण को गुरुत्वाकर्षण और एक्सपोनेंशियल डैम्पिंग के साथ जोड़ता है:

ui=e−ch[vi+hfi],fi=k(ri−xi)+g,yi=xi+hui.

यहाँ xi सिमुलेट किया गया एंडपॉइंट है, vi उसका वेग, k पुनर्स्थापन गुणांक, c डैम्पिंग दर और g सॉल्वर द्वारा उपयोग किया गया गुरुत्व त्वरण है। डेमो h=1/120 सेकंड पर शरीर और बालों की गति का एक साथ नमूना लेता है। यह अंतर्निहित इकाई द्रव्यमान वाला कस्टम स्प्रिंग अपडेट है, पूरा elastic-rod या XPBD सॉल्वर नहीं।

फिर हम एंडपॉइंट को जोड़ से उसकी निश्चित दूरी Li=s‖ai‖ पर वापस रखते हैं:

x^i=oi+Liyi−oi‖yi−oi‖.

यह प्रोजेक्शन हड्डी की लंबाई बनाए रखता है। यह अपने-आप हर त्रिभुज के किनारे को सुरक्षित नहीं रखता या लट को कपड़ों के बाहर नहीं रखता। यदि कैंडिडेट दिशा डीजनरेट हो जाए, तो इम्प्लीमेंटेशन विश्राम दिशा इस्तेमाल करता है।

अब पूरा हेयरस्टाइल आज़माएँ ​

दूसरे अवतार, एक pixiv नमूने, में बालों की बारह चेन और 12,868 हेयर वर्टेक्स हैं। यहाँ हम कलाकार के जोड़ और वेट सुरक्षित रखते हैं और सेकेंडरी-मोशन व्यवहार बदलते हैं। यह उदाहरण मौजूदा हेयरस्टाइल का एनिमेशन दिखाता है, उसके जुड़े हुए हेयर मेश का स्वचालित पुनर्निर्माण नहीं।

Open this demo in a full window ↗

सिरों को बगल और पीछे से देखें। बेहतर संस्करण गति को बनाए रखते हुए अपेक्षित सिल्हूट को अधिक सुरक्षित रखता है। पहले वाला संस्करण सिरों को अधिक स्पष्ट घुमाव में इकट्ठा कर देता है।

असली मॉडलों ने एक कम स्पष्ट बग भी उजागर किया: कुछ छोटे बैंग्स ऐसे नोड पर समाप्त होते हैं जो स्वयं स्किन की गई हड्डी नहीं है। हम उन चेन को छोड़ रहे थे। अब इम्पोर्टर उन एंडपॉइंट को स्वीकार करता है और VRM 1 स्प्रिंग मेटाडेटा से स्पष्ट रूप से नामित हेड-हेयर चेन पढ़ता है। यह sphere और capsule collision proxy तथा हर जोड़ की collision radius भी पढ़ता है।

VRM का spring-bone विनिर्देश इंटरचेंज संरचना प्रदान करता है। हमारी गति ट्यून किए गए डिफ़ॉल्ट वाला कस्टम सॉल्वर है, हर VRM स्प्रिंग सेटिंग का पूर्ण इम्प्लीमेंटेशन नहीं। डेमो कलाकार द्वारा तैयार शेडिंग, टेक्सचर और चेहरे/कपड़ों की आउटलाइन के लिए pixiv के MToon material loader का उपयोग करते हैं। हम विस्तारित हेयर आउटलाइन शेल अक्षम कर देते हैं, क्योंकि वे इन पतली परतदार सतहों को काटते हैं। दोनों मोशन सेटिंग एक जैसी लाइटिंग और मटेरियल इस्तेमाल करती हैं। pixiv का three-vrm spring-bone इम्प्लीमेंटेशन उस इकोसिस्टम के लिए एक स्थापित संदर्भ है।

सामने की लटें शर्ट के आर-पार क्यों गईं ​

केवल जोड़ों की स्थिति जाँचने से एक दिखाई देने वाली विफलता छूट गई: दो जोड़ों के बीच की लट कंधे के आर-पार जा सकती थी, भले ही उसके दोनों सिरे collision shape के बाहर हों। हमें VRM radius संभालने में एक इंडेक्सिंग गलती भी मिली: अगले जोड़ की radius पढ़ने से अंतिम सेगमेंट की radius शून्य हो जाती थी।

अब सामने की दोनों लटें हर पूरे सेगमेंट पर collision checks इस्तेमाल करती हैं। साझा fitting pass मौजूदा collision shapes के आसपास दिखाई देने वाली शरीर और कपड़ों की ज्योमेट्री मापता है, जिसकी expansion limits शरीर के आकार पर आधारित हैं। लट की पहुँच, स्थिति और skin-weight ownership यह निर्धारित करते हैं कि किन चेन को segment checks की आवश्यकता है। अब दोनों अवतार मॉडल के नाम या लट के नाम पर आधारित नियमों के बिना इस एल्गोरिदम का उपयोग करते हैं। पूरे हेयरस्टाइल में collision checks बढ़ाने से stretching बढ़ी, इसलिए सिर के attachment constraints और छोटे bangs अपना मूल व्यवहार बनाए रखते हैं।

हमने उन proxy से स्वतंत्र रूप से, असली skinned shirt के विरुद्ध नतीजे की जाँच की। सिर घुमाने के एक चक्र में पहले वाली गति के साथ शर्ट ने सामने की लटों के 1,503 वर्टेक्स में से अधिकतम 555 छिपा दिए। स्वचालित fit ने 30 और 120 फ़्रेम प्रति सेकंड, दोनों पर 1 mm की measurement threshold से आगे शून्य hits दर्ज किए। पहले की अधिकतम मापी गई गहराई 75.2 mm थी। यह सामने के दृश्य में occlusion का माप है, पूर्ण surface collision का दावा या हर एनिमेशन की गारंटी नहीं। सामने की लटों के माप डाउनलोड करें।

लटों को शर्ट के बाहर रखने का एक समझौता है: परतदार हेयरस्टाइल का 99वाँ-प्रतिशतक stretch collision fitting से पहले के 17.1% से बढ़कर 18.0% हो गया। यह पहले वाले सॉल्वर के 26.0% से अब भी कम है; नीचे की तालिका मौजूदा नतीजा दिखाती है।

Contact response में अलग सुधार की आवश्यकता थी: किसी लट को कपड़ों से बाहर धकेलने को वेग में बदला जा रहा था, जिससे अगले चरण में दिखाई देने वाला उछाल आता था। अब हम वह impulse जोड़े बिना overlap सुलझाते हैं, contact पर अंदर आती गति हटाते हैं और sliding motion बनाए रखते हैं। resting-strand regression एंडपॉइंट और पूरे सेगमेंट के contact—दोनों की जाँच करता है: सुधारी गई लट दूर उछलने के बजाय contact position पर रहती है।

उछाल के impulse के बिना, पूरी लट पर contact ​

एक hair link और capsule axis—दोनों line segments हैं। उनके बिंदुओं को p(u) और q(v) के रूप में लिखें, जहाँ u,v∈[0,1]। उनकी clearance है

d=minu,v∈[0,1]‖p(u)−q(v)‖,C=d−(rb+rh).

rb body proxy radius और rh hair collision radius है, दोनों world units में। ऋणात्मक C का अर्थ overlap है। केवल child endpoint की जाँच u=1 तय करती है और लंबी लट के बीच के हिस्से को छोड़ सकती है; segment contact पूरे interval में खोजता है। sphere वह विशेष स्थिति है जिसमें capsule axis की लंबाई शून्य होती है।

position correction को उछाल में बदलने से बचाने के लिए हम एंडपॉइंट को contact से बाहर धकेलने से पहले वेग को फिर से बनाते हैं:

vi∗=x^i−xih.

शून्य से अलग contact correction के बाद, n को उसकी normalized direction मानें। हम केवल उस correction की ओर जाने वाला component हटाते हैं:

vi+=vi∗−min(0,vi∗⋅n)n.

Tangential motion बनी रहती है, इसलिए लट सरक सकती है। position correction को स्वयं velocity में नहीं जोड़ा जाता। इसके बाद सॉल्वर contact projection दोहराता है और link की radial direction के साथ velocity हटाता है; परस्पर क्रिया करने वाले constraints फिर भी कुछ residual overlap छोड़ सकते हैं।

Back Flip ने दोबारा बनाई गई पोनीटेल में coverage की एक अलग कमी उजागर की: उसकी अलग hair skin में torso bones नहीं थीं। अब collider discovery body hierarchy में खोज करती है और जहाँ trunk coverage गायब हो, वहाँ shared fitter एक torso capsule जोड़ता है। 30 और 120 फ़्रेम प्रति सेकंड, दोनों पर छह सेकंड की Back Flip जाँच में उस capsule के भीतर ponytail-link penetration का कोई sampled मामला नहीं मिला। यह proxy-collision check है, हर clothing triangle के विरुद्ध गारंटी नहीं; मूल head-turn deformation checks अब भी पास होते हैं।

तेज़ गति को poses के बीच भी जाँच चाहिए। अब डेमो body, clothing constraints और hair को साथ में प्रति सेकंड 120 steps पर आगे बढ़ाता है और उन steps के बीच चल रहे sphere और capsule proxies के विरुद्ध strands की जाँच करता है। Contact पूरी लट को रोकने के बजाय sideways sliding बनाए रखता है, क्योंकि अन्यथा बाल चिपक जाते थे। दोनों अवतारों पर Walk और Back Flip ने हमारी चार-सेकंड की जाँचों में 30, 60 और 120 फ़्रेम प्रति सेकंड पर एक जैसी sampled hair positions और velocities उत्पन्न कीं। यह sampled primitive motion को संभालता है; यह हर clothing triangle के विरुद्ध continuous collision detection नहीं है और आगे के constraints अब भी unresolved contacts छोड़ सकते हैं। फ़्रेम-रेट और contact checks डाउनलोड करें। उस एकरूपता की एक कीमत है। 60 फ़्रेम प्रति सेकंड वाले पहले के दो-दृश्य बेंचमार्क में, दर्ज किया गया 95वें पर्सेंटाइल का अपडेट समय Seed-san के लिए लगभग 1 ms और लेयर्ड मॉडल के लिए 14–23 ms था, जिसमें रेंडरिंग शामिल नहीं है। ये लागतें दो पात्रों के लिए हैं, जबकि लाइव डेमो अब एक पात्र रेंडर करता है। लेयर्ड स्थिति को अब भी ऑप्टिमाइज़ करने की आवश्यकता है; ये डेस्कटॉप माप फ़ोन पर प्रदर्शन को प्रमाणित नहीं करते।

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

केवल स्केलेटन नहीं, मेश को मापें ​

किसी हड्डी की लंबाई बरकरार रह सकती है, जबकि उसके आसपास के त्रिभुज खिंच सकते हैं। इसलिए हमने बारह सेकंड की रन अवधि में बालों के प्रत्येक त्रिभुज के किनारे को मापा: पहले चार सेकंड सिर की गति और फिर आठ सेकंड स्थिर होने के लिए। सिमुलेशन प्रति सेकंड 120 चरणों पर चलता है; मेश के माप प्रति सेकंड 30 बार नमूने के रूप में लिए जाते हैं।

प्रत्येक किनारे के लिए, हम रन के दौरान उसका सबसे अधिक खिंचाव दर्ज करते हैं। तालिका प्रत्येक किनारे के इन अधिकतम मानों का 99वाँ पर्सेंटाइल दिखाती है: 99% किनारों का खिंचाव इस मात्रा पर या इससे कम रहा।

मूल लंबाई ℓe0 वाले मेश किनारे e=(a,b) के लिए, हम स्किन किए गए वर्टेक्स की स्थितियाँ za(t) और zb(t) मापते हैं:

ρe(t)=‖za(t)−zb(t)‖ℓe0,me=maxt∈Tρe(t).

T में नमूने के रूप में लिए गए फ़्रेम शामिल हैं। रिपोर्ट किया गया प्रतिशत 100(Q0.99({me})−1) है, जहाँ Q0.99 किनारों के बीच 99वाँ पर्सेंटाइल है। पर्सेंटाइल निकालने से पहले प्रत्येक किनारे का अधिकतम मान लेने से वे संक्षिप्त खिंचाव घटनाएँ बनी रहती हैं जिन्हें समय के साथ निकाला गया औसत छिपा सकता है। सबसे खराब किनारे का आँकड़ा इसके बजाय maxeme का उपयोग करता है, ताकि बहुत अधिक विकृत हुआ कोई छोटा क्षेत्र रिपोर्ट में दिखाई देता रहे।

वास्तविक मॉडल परीक्षणपिछली गतिबेहतर गति
Seed-san: फिर से बनाई गई पोनीटेल और मूल बैंग्स8.0%5.0%
Seed-san: मूल हेयर रिग7.6%5.1%
pixiv: मूल लेयर्ड-हेयर रिग26.0%18.0%

सबसे खराब अकेला किनारा अब भी मायने रखता है। लेयर्ड मॉडल पर इसमें 102.7% से 70.8% खिंचाव तक सुधार हुआ—यह अब भी मौजूद एक दोष है जिसे पर्सेंटाइल को नहीं छिपाना चाहिए। दोनों स्थितियों में Seed-san के सबसे खराब किनारे में 35.2% से 27.8% तक सुधार हुआ। ये उन विकास उदाहरणों पर किए गए माप हैं जिनका उपयोग हमने ट्यूनिंग के लिए किया था, न कि अनदेखे हेयरस्टाइल पर सफलता की दर।

चेन की जड़ें स्थिर रहीं। अंतिम दो सेकंड तक, नमूने के रूप में लिए गए फ़्रेमों के बीच मापी गई सिरों की गति प्रत्येक बेहतर स्थिति में 0.001 mm से कम थी। तेरह केंद्रित परीक्षण रिगिंग, स्थिर जड़ों, आकार संरक्षण, टक्करों, छोटे एंडपॉइंट, इम्पोर्ट और एनिमेशन स्वामित्व को कवर करते हैं। हमने व्यूअर में रिग को लागू और पूर्ववत करने तथा चक्रीय और एकबारगी एनिमेशन एक्सपोर्ट करने की भी जाँच की।

माप डाउनलोड करें। लाइव उदाहरण उसी सॉल्वर कोड का उपयोग करते हैं जिसका उपयोग प्रोटोटाइप के व्यूअर और एक्सपोर्ट पाथ में होता है। ये इंटरैक्टिव रेंडर हैं, पहले से रिकॉर्ड किए गए वीडियो नहीं।

इससे क्या संभव होता है—और यह अभी किन समस्याओं को हल नहीं करता ​

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

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

यह फ़ीचर अभी प्रयोगात्मक है। लेकिन वास्तविक पात्रों पर जाँच करने से सुधार ठोस रूप में सामने आया: बाल लगातार उस आकार को दोबारा लिखे बिना हिल सकते हैं जिसमें उन्हें वापस लौटना है।


मॉडल श्रेय। Seed-san © VirtualCast, Inc., आधिकारिक VRM नमूना संग्रह से। VRM1_Constraint_Twist_Sample © 2022 pixiv Inc., three-vrm के उदाहरण मॉडल से। दोनों फ़ाइलों में पुनर्वितरण और संशोधन की अनुमति देने वाला VRM Public License 1.0 मेटाडेटा शामिल है। दोबारा बनाई गई पोनीटेल और कस्टम मोशन हमारे बदलाव हैं। स्रोत URL और फ़ाइल हैश उपयोग किए गए सटीक नमूनों की पहचान बताते हैं।

एनिमेशन श्रेय। Universal क्लिप Quaternius द्वारा बनाए गए हैं, जो Universal Animation Library और Universal Animation Library 2 से लिए गए हैं और CC0 के अंतर्गत उपलब्ध कराए गए हैं।

आगे: जनरेट किए गए पात्र पर पुनः उपयोग योग्य बाल ​

हमारा अगला प्रयोग बिना रिग वाले लाइब्रेरी मेश से शुरू होता है: एक मेंढक पर 46 हेयरस्टाइल फ़िट करें और उनसे निकाली गई स्ट्रैंड गाइड का निरीक्षण करें। यह लाइव प्रयोग स्कैल्प से जुड़ाव को उस फ़िज़िक्स से अलग करता है जिसे अभी विकसित किया जाना है।