2009-04-01 22 views
6

3 डी गेम के लिए एनिमेशन को संभालने के विभिन्न तरीके क्या हैं? क्या आप किसी भी तरह मॉडलर में एनीमेशन प्रोग्राम करते हैं, और इस प्रकार फ़ाइल में उन्हें पढ़ने और कार्यान्वित करने के बजाय फ़ाइल, या क्या आप अपने अभी भी वैक्टर को एनिमेट करने के लिए एनीमेशन फ़ंक्शन बनाते हैं?प्रोग्रामिंग 3 डी एनिमेशन?

इस के प्रोग्रामिंग पक्ष के लिए कुछ अच्छे ट्यूटोरियल कहां हैं? Google ने मुझे केवल मॉडलर की तरफ दिया।

+0

यह सहायक भी हो सकता है (मॉडलिंग के लिए एक मूल हड्डी प्रणाली): http://gpwiki.org/index.php/OpenGL:Tutorials:Basic_Bones_System – hithere

उत्तर

18

उत्पादन वातावरण में, एनिमेटर्स 3 डी मॉडल के कीफ्रेम किए गए एनिमेशन उत्पन्न करने के लिए ऑटोोडस्क के 3 डी एस मैक्स जैसे विशेष टूल का उपयोग करते हैं। प्रत्येक मॉडल के लिए प्रत्येक एनीमेशन के लिए, एनिमेटर कीफ्रेम नामक मॉडल के लिए कई पॉज़ बनाता है, जिसे तब गेम के डेटा प्रारूप में निर्यात किया जाता है।

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

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

चिकना स्किनिंग एक तकनीक है जो एनिमेशन की गुणवत्ता में सुधार करने के लिए उपयोग की जाती है। चिकनी स्किनिंग के साथ, एक कशेरुक केवल एक हड्डी से बंधे नहीं है, लेकिन इसे कई हड्डियों से जोड़ा जा सकता है (आमतौर पर एक हार्ड सीमा, जैसे कि 4, सेट है; ऊर्ध्वाधर को शायद ही कभी 3 से अधिक की आवश्यकता होती है) इसी वजन के साथ। यह एनिमेटर की नौकरी को कठिन बनाता है, क्योंकि उसे जोड़ों के पास कोने के साथ बहुत अधिक काम करना पड़ता है, लेकिन परिणाम जोड़ों के चारों ओर कम विरूपण के साथ एक बहुत चिकनी एनीमेशन है।

वैकल्पिक रूप से, कुछ गेम प्रक्रियात्मक एनीमेशन का उपयोग करते हैं, जिससे एनीमेशन डेटा रनटाइम पर बनाया जाता है। हड्डी की स्थिति और उन्मुखता कुछ एल्गोरिदम के अनुसार गणना की जाती है, जैसे कि inverse kinematics या ragdoll physics। अन्य विकल्प निश्चित रूप से उपलब्ध हैं, लेकिन उन्हें प्रोग्रामर द्वारा कोड किया जाना चाहिए।

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

3

गेम में एनीमेशन को संभालने के विभिन्न तरीके?

पात्रों के लिए, आम तौर पर:

  1. कंकाल विकार
  2. ब्लेंड आकार
  3. कभी कभी भी पूरी तरह से एनिमेटेड meshes (ला नोइरे था कि।)
  4. हाल टॉम्ब रेडर में हम एक गणना का उपयोग बालों के लिए हजारों स्प्लिंस अनुकरण करने के लिए नौकरी, और इन स्प्लिंस द्वारा चरम पर एक चरम शेडर के साथ नियंत्रित किया जाता है।

अक्सर इन कुंजी फ्रेम एनीमेशन जो रनटाइम पर अंतर्वेशित कर रहे हैं से प्रेरित हैं, और कभी कभी हम procedurally प्रभावों (हड्डियों, blendshape वजन, आदि) ड्राइव करने के लिए कोड जोड़ें।

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

ट्यूटोरियल के लिए ... अच्छा ... क्या आप एनीमेशन के लिए गणित लिखने में रुचि रखते हैं या आप अपने गेम में कुछ एनिमेटेड चरित्र प्राप्त करने और गेमप्ले पर ध्यान केंद्रित करने में अधिक रुचि रखते हैं?

बस गेमप्ले करने के लिए, यूनिटी के साथ खेलने के लिए एक बहुत अच्छा मंच है। 3 डी रूपांतरण (सुनिश्चित करें कि आप विनिमेय समझाने के लिए इस्तेमाल किया

  • मैट्रिसेस:

    आप फिर भी एनीमेशन या सामान्य रूप में खेल के लिए गणित को समझने में रुचि रखते हैं, यहाँ क्या मैं एक प्राइमर के रूप में के बारे में पढ़ें करेंगे , साहचर्य और वितरण कानूनों, और जानने के क्या प्रत्येक पंक्ति और स्तंभ का प्रतिनिधित्व करता है - वे सरल हैं की तुलना में वे लगते हैं) रोटेशन के लिए

  • Quaternions (कम सहज है, लेकिन एक धुरी और रोटेशन)

और डॉन को बारीकी से मिलकर ' टी छोड़ दो मूल बातें:

  • वेक्टर डॉट उत्पाद
  • वेक्टर क्रॉस उत्पाद

इसके अलावा 10 साल पहले मैं एक साधारण एनीमेशन पुस्तकालय है, जो बहुत सरल है, नि: शुल्क अधिक अग्रिम अवधारणाओं के सबसे से लिखा पसंद तो यह है यह देखने के लिए एक बुरी जगह नहीं है कि आप यह कैसे काम करते हैं इसका मूल विचार प्राप्त करना चाहते हैं: http://animadead.sf.net

शुभकामनाएँ!