एंड्रॉइड डेवलपमेंट करते समय एनिमेशन बनाने का सबसे अच्छा तरीका क्या है?


10

मैं अपना पहला एंड्रॉइड गेम बनाने की कोशिश कर रहा हूं और वर्तमान में यह पता लगाने की कोशिश कर रहा हूं (किसी व्यक्ति के साथ जो ड्रॉइंग और दूसरा प्रोग्रामर करेगा) एनीमेशन बनाने का सबसे अच्छा तरीका क्या है। (एनिमेशन जैसे कि चरित्र का बढ़ना, आदि)

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

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

क्या एक अनुभवी एंड्रॉइड गेम डेवलपर मुझे इसे संतुलित करने में मदद कर सकता है ताकि हम खेल के अन्य भागों में आगे बढ़ सकें क्योंकि मुझे नहीं पता कि एनिमेशन बनाने का सबसे अच्छा तरीका क्या है।

जवाबों:


12

यदि आप 2D एनीमेशन पर विचार कर रहे हैं, तो एक स्प्राइट को प्रस्तुत करना और फिर दूसरे को डिवाइस के लिए कोई समस्या नहीं होगी (जब तक कि आपका स्प्राइट बहुत बड़ा न हो)।

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

छवि स्रोत: [यहाँ] (http://gaminggroundzero.com/?page_id=31)

चित्र + लेखक स्रोत: यहाँ

हरे रंग को छवि के पारदर्शी रंग के रूप में सेट किया जाता है ताकि आपके पास रंग का कोई अवांछित क्षेत्र न हो। आपको उन्हें खेलने के लिए स्प्राइटशीट में एनीमेशन अनुक्रम में प्रत्येक एनीमेशन के निर्देशांक को जानना होगा।

एंड्रॉइड के लिए, हम क्रिस प्रूइट (पूर्व में Google) द्वारा एक ओपन सोर्स गेम इंजन पर एक नज़र डाल सकते हैं जिसे रेप्लिका द्वीप कहा जाता है । स्रोत कोड उपलब्ध है, और हम उनके SpriteAnimation.java और SpriteComponent.java को देख सकते हैं ।

SpriteAnimationको बस एक फ्रेम काउंट और एक यूनिक आईडी के साथ बनाया गया है और खेल में प्रत्येक अभिनेता के पास कई एनिमेशन हो सकते हैं। SpriteAnimationके एक नंबर दिया जा सकता है AnimationFrameमिलीसेकेंड में एक अवधि के साथ है, प्रत्येक। इसका मतलब यह है कि अगर चरित्र चलता है या हमला करता है आदि (देखें तो AnimationComponent.playAnimation(int id)) के आधार पर अलग-अलग एनिमेशन को अंदर और बाहर स्वैप किया जा सकता है ।

गेम लूप का प्रत्येक पुनरावृत्ति, AnimationFrame's getFrame(float time)कहलाता है, और यह जाँचता है कि पिछले मुख्य लूप पुनरावृत्ति के बाद कितना समय बीत चुका है और यह तय करता है कि किस फ्रेम को आगे खेलना है, फिर फ़्रेम को रेंडरिंग सिस्टम में भेजने के लिए लौटाता है। यदि एनीमेशन बहुत धीरे चल रहा है तो यह एनीमेशन फ्रेम को छोड़ देता है।

मुझे आशा है कि इस उदाहरण से काम करता है, और आप इसे एंड्रॉयड बाज़ार पर वास्तविक खेल में इस्तेमाल किया जा रहा देख सकते हैं यहां


अच्छी तरह से समझाया और विस्तृत जवाब के लिए बहुत बहुत धन्यवाद! मैं देखूंगा कि मैं अपने खेल के लिए इसे कैसे अनुकूल बना सकता हूं। यह बहुत मददगार है!
एडम स्मिथ

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

@bummzack उस तरह का जवाब है जिसकी मैं उम्मीद कर रहा था, धन्यवाद!
एडम स्मिथ

@AdamSmith यह भी ध्यान में रखा जाना चाहिए (भ्रम से बचने के लिए) कि प्रतिकृति द्वीप वास्तव में स्प्राइट शीट का उपयोग नहीं करता है, यह एकल फ़ाइलों का उपयोग करता है। स्प्राइटशीट उपयोगी क्यों हैं इसकी चर्चा यहां और (अधिक विस्तार के साथ) की जा सकती है
मार्टिन फुट

@ मार्तीन फुट, आपने बहुत अच्छी व्याख्या दी है। लेकिन मुझे अभी भी भ्रम है, मेरे पास 10-15 प्रकार के एनीमेशन हैं और मेरे पास 320x480 के आकार के साथ उनमें से प्रत्येक का फ्रेम है जिसे आप पूर्ण स्क्रीन एनीमेशन कह सकते हैं। तो आप मुझे क्या सुझाव देते हैं जो मुझे स्प्राइटशीट या एकल एनीमेशन स्रोत फ़ाइल के लिए मिलना चाहिए? मैं बहुत उलझन में हूं कि मुझे क्या उपयोग करना है। कृपया मुझे सबसे अच्छा तरीका सुझाएं .. बहुत बहुत धन्यवाद ....
बिच्छू
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.