वॉक साइकिल एनिमेशन के लिए 'मोशन' को एनिमेट करने का सामान्य तरीका


13

मैंने इसे ब्लेंडर कलाकारों के मंचों पर साकार करने से पहले पोस्ट किया है, मुझे शायद अधिक गेम डेवलपमेंट-विशिष्ट दर्शकों से बेहतर प्रतिक्रिया मिलेगी, इसलिए क्रॉस-पोस्टिंग के लिए माफी! यह सही कारणों के लिए है :)

मैं एक प्रोग्रामर हूं जो एक गेम प्रोजेक्ट के लिए चलने वाले चरित्र को चेतन करने की कोशिश कर रहा हूं, ओग्रे का उपयोग करके। मैंने ब्लेंडर में एक बहुत ही सरल चलने वाला चक्र बनाया है और इसे ओग्रे को निर्यात किया है, और यह ठीक चलता है। ठीक है, मेरा मतलब है कि यह काम करता है, लेकिन वहाँ भयानक पैर फिसलने है। इसका कारण यह है कि मैं ब्लेंडर में वॉक-इन-प्लेस (मूल पर) को एनिमेटेड करता हूं, और निश्चित रूप से मुझे नहीं पता कि "चलने की गति" किससे मेल खाती है, इसलिए जब मैं कैरेक्टर को इन-गेम मोशन डोन मूव करता हूं ' टी जरूरी एनीमेशन में पैरों की गति के साथ मेल खाता है।

तो मेरा सवाल है: इस तरह की चीज के लिए सामान्य दृष्टिकोण क्या है? काम पर हम माया का उपयोग करते हैं, और एनिमेटर्स या तो एक विशेष 'चाल ट्रान्स' नोड को चेतन करते हैं जो चरित्र की "स्थिति" का प्रतिनिधित्व करता है (या निर्यातक ने रूट नोड के आंदोलन से उनके लिए इसे उत्पन्न किया है), तो खेल इसे पढ़ सकते हैं यह जानने के लिए कि एनीमेशन चरित्र को कितनी तेजी से आगे बढ़ाता है। तो माया फ़ाइल में, चरित्र एक चक्र के लिए आगे बढ़ेगा और यह अतिरिक्त नोड उनके पैरों द्वारा उनके साथ पालन करेगा। मैंने ओपन-सोर्स भूमि में ऐसा कुछ नहीं देखा है, और निश्चित रूप से ओग्रे एक्सपोर्टर स्क्रिप्ट में इसके लिए कोई प्रावधान नहीं है। आप सामान्य तौर पर इसके लिए क्या करते हैं?


1
यहाँ अवधारणा के कुछ शानदार स्पष्टीकरण के साथ एक चर्चा है: blog.wolfire.com/2011/08/…
बेन

जवाबों:


10

इसे करने के दो तरीके हैं: रूट मोशन या "कोड में"।

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

मिक्सैमो ने एकता का उपयोग करते हुए रूट मोशन कंट्रोल के साथ एक अच्छा उदाहरण दिया। इसका एक वीडियो यहां है: http://vimeo.com/12052874

अब रूट मोशन में कमियां हैं। यह सीढ़ियों पर काम करने के लिए "चलना" एनीमेशन प्राप्त करने की कोशिश करने जैसी चीजों के साथ मुश्किल हो सकता है (आदर्श रूप से आपके पास एक अलग सीढ़ी / सीढ़ी पर चढ़ने का एनीमेशन होगा और एनीमेशन में भी उसके लिए सभी आंदोलन करना होगा)। मुझे यह भी निश्चित रूप से पता नहीं है कि आईके वास्तव में कैसे खेलता है, अगर बिल्कुल भी।

अब इसे "कोड इन" करना चीजों के प्रोग्रामिंग पक्ष से बहुत आसान है। मैं जो सुझाव देता हूं वह यह सुनिश्चित करना है कि आपकी सभी इकाइयाँ सुसंगत हैं। उदाहरण के लिए, माया में 1 यूनिट और आपका गेम 1 मीटर है। फिर आप अपने कलाकारों को एक चरित्र चलने (आगे के आंदोलन के साथ पूर्ण) को चेतन करने के लिए प्राप्त करते हैं। एनीमेशन की गति का पता लगाने के लिए इसका उपयोग करें, और आगे के वेग के बिना एनीमेशन को निर्यात करें। एनीमेशन को वापस खेलने के लिए कितनी तेजी से यह पता लगाने के लिए इसका उपयोग करें। तो अगर 1x की गति पर चलना एनीमेशन 5 m / s है, और आप खिलाड़ी को 7 m / s पर चलाना चाहते हैं, तो आप बस 7/5 = 1.4x की गति से खेलते हैं। यदि आपके मॉडल को स्केल के व्युत्क्रम से एनीमेशन प्लेबैक दर से ऊपर या नीचे बढ़ाया जाता है। एक आधे ऊंचाई वाले दोस्त को 1x स्केल के आदमी के समान दर को स्थानांतरित करने के लिए दो बार तेजी से चलना होगा।


मैंने मिक्सामो से रूट मोशन कंप्यूटर नहीं देखा था, न ही मैंने इसे ऐसा कहते सुना है, इसलिए लिंक और स्पष्टीकरण के लिए धन्यवाद! इसलिए मूल रूप से जैसा कि मैंने सोचा था, या तो इसे स्पष्ट रूप से चेतन करें या इसे ऑटो-जनरेट करें, और या तो बिल्ड-टाइम पर या रनटाइम पर। मुझे लगता है कि मुझे इसे निर्यातक स्क्रिप्ट में खुद कोड करना होगा। एक बात मैं अब मेगा उलझन में हूँ गति के बारे में है जो एक चक्र के दौरान बदलता है - पृथ्वी पर आप गेमप्ले से कैसे ड्राइव करेंगे? "5m / s पर ले जाएँ" अब कुछ और मतलब है ... और दिशा परिवर्तन AI के लिए एक बुरा सपना होगा! शायद एगरेज गति का उपयोग करना सबसे अच्छा है?
बेन हाइमर

पात्रों से बाहर भाग गया; मैं कुछ और राय पाने के लिए इसे स्वीकार करने से पहले थोड़ा इंतजार करूंगा। आपके उत्तर के लिए धन्यवाद!
बेन हाइमर

रूट मोशन के लिए आप सीधे खिलाड़ी की गति को नियंत्रित नहीं करते हैं। आपके पास केवल नियंत्रण है, वास्तव में, एनीमेशन दर के प्लेबैक का और फिर आपने एनीमेशन को आगे z मान के सीधे नियंत्रण में रहने दिया। मैंने जो 5 मी / एस का उदाहरण दिया, वह पैर फिसलने को सुलझाने के पारंपरिक तरीके के लिए था, जो कि आप कितनी तेजी से आगे बढ़ रहे हैं और एक स्थिर गति मान रहे हैं, इसके साथ ही प्लेबैक दर का मिलान करने का प्रयास करें।
टेट्राद

गेमप्ले प्रोग्रामर के रूप में, जो पूरी तरह से बुरे सपने की तरह लगता है :) कुछ भी एनिमेटेड के आंदोलन की गति के रूप में महत्वपूर्ण के रूप में कुछ के नियंत्रण में animators डाल? जी नहीं, धन्यवाद! मैं बहुत से जानकारी निकालना पसंद करता हूं इसलिए मैं इसे उल्टा कर सकता हूं और एनीमेशन गति को अन्य गति के बजाय आंदोलन की गति के आधार पर सेट कर सकता हूं। इसीलिए नॉनलाइनर मोशन मुझे नरक से बाहर निकालता है, हालांकि, और शायद यह एक अच्छा कारण है कि इसे दूसरे तरीके से किया जाए।
बेन हाइमर

Gah, एक नई लाइन शुरू करने की कोशिश पर टिप्पणी दर्ज करने के लिए स्टैक एक्सचेंज को शाप देना ... मैं कहने जा रहा था, भले ही आप एनीमेशन को गति देने दें, लेकिन यह अभी भी एआई वर्णों के लिए एक समस्या होगी। क्या होगा अगर वे एक बिंदु पर जाने की कोशिश कर रहे हैं, लेकिन उनका आंदोलन एनीमेशन पक्ष की ओर से कहता है (कहते हैं, यह एक शराबी गतिहीन एनीमेशन है)? वे कैसे जान सकते हैं कि किस दिशा का सामना करना है?
बेन हाइमर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.