आइसोमेट्रिक गेम्स में कैरेक्टर / ऑब्जेक्ट इंटरेक्शन एनिमेशन कैसे काम करते हैं?


10

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

खेल के भीतर वर्ण (स्टाफ / एनपीसी) को कुछ पूर्व निर्धारित कार्यों जैसे डेस्क पर कीबोर्ड पर टाइप करना या व्हाइटबोर्ड पर लिखना आदि द्वारा इन वस्तुओं के साथ बातचीत करनी चाहिए।

मुझे विशेष रूप से, इस परिदृश्य में क्या दिलचस्पी है:

चरित्र कार्यालय (1) से अपनी मेज (2) की ओर बढ़ता है और नीचे बैठकर टाइप (3) करने लगता है।

जो मैं समझता हूं कि मेरे पास चरित्र आंदोलन (1) के लिए एक स्प्राइट शीट और डेस्क (2) के लिए एक स्थिर स्प्राइट होगा, लेकिन मैं यह नहीं समझता कि तीसरा चरण कैसे संभाला जाएगा?

क्या एक संयुक्त स्प्राइट है जिसमें डेस्क और चरित्र दोनों शामिल हैं? मुझे लगता है कि नहीं, अन्यथा मुझे हर डेस्क और चरित्र संयोजन के लिए एक स्प्राइट शीट की आवश्यकता होगी।

यह सामान्य रूप से कैसे संभाला जाता है?

संपादित करें:

यहाँ खेल थीम अस्पताल से एक विशिष्ट उदाहरण एनीमेशन है। आप यहां वीडियो देख सकते हैं ।

जहाँ तक मैं देख सकता हूँ कि एनीमेशन कई चरणों में विभाजित है।

चरण 1 - चरित्र डेस्क और कुर्सी के बीच चलता है।

यहाँ छवि विवरण दर्ज करें

इससे पता चलता है कि कुर्सी और डेस्क वास्तव में अलग-अलग स्प्राइट हैं।

चरण 2 - चरित्र एनीमेशन नीचे बैठता है

यहाँ छवि विवरण दर्ज करें

ध्यान दें कि कैसे बहुत अंतिम फ्रेम में कुर्सी डेस्क के करीब है।

चरण 3 - डेस्क एनिमेशन

यहाँ छवि विवरण दर्ज करें

चरण 4 - एनीमेशन खड़े हो जाओ

बैठने के समान है लेकिन उल्टा खेला जाता है।

चरण 5 - दूर हटो

दूर जाने के लिए सामान्य चाल एनीमेशन का उपयोग करें।

मेरे पास यह प्रश्न है कि इन एनिमेशनों को सबसे अलग कैसे किया जाता है और एक ग्राफिक कलाकार आमतौर पर इन एनिमेशनों को कैसे प्रदान करेगा?

क्या डेस्क पर बैठा चरित्र और टाइपिंग वास्तव में तीन अलग-अलग स्प्राइट्स (डेस्क, चरित्र और कुर्सी) हैं? क्या कोई जानता है कि किसी भी उदाहरण समान एनिमेशन के स्प्राइट्स?

संपादित करें 2:

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

जवाबों:


8

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

कुछ बछड़े बनाते हैं।

प्रिटेंड करें कि आपके पास एम्प्लॉयर टाइपिंग एनीमेशन पर 6 स्प्रिट्स हैं, आपके पास 5 अलग-अलग कुर्सियाँ हैं, और 10 अलग-अलग नियोक्ता टाइप हैं।

यदि आप नियोक्ता को कुर्सी के ऊपर से खींचते हैं, तो यह 10 * 6 + 5 स्प्राइट्स, 65 स्प्राइट्स ले जाएगा।
यदि आप संयोजन करते हैं, और प्रत्येक संयोजन बनाते हैं, तो यह 10 * 6 * 5 स्प्राइट्स, यानी 300 स्प्राइट्स ले जाएगा। एक साधारण एनीमेशन के लिए इस स्प्राइटशीट को बनाने के लिए आपके लिए ऐसा दर्द होगा!

संपादित करें:

ठीक है, यदि आप नहीं जानते कि कैसे, तो अपनी कुर्सी को पृष्ठभूमि के रूप में परिभाषित करना बेहतर होगा, और कर्मचारी सक्रिय स्प्राइट के रूप में। आपके लिए आसान।

Background.draw();
Foreach(employer i in staff)
    I.draw();

यह आपके कर्मचारियों को आपके चैस (पृष्ठभूमि) से अलग रखना चाहिए, साथ ही, स्टाफ एनीमेशन के फ्रेम को भी अप्रत्यक्ष रूप से अपडेट करें।

EDIT2:

मैंने आपका संपादन और आपके नमूने देखे। मैं भी यही दृष्टिकोण रखूंगा। सभी अलग-अलग स्प्राइट। कुर्सी वैसे भी चरित्र के सामने जाती!

कुर्सी को करीब से स्थानांतरित करने के लिए, इसकी स्थिति को कुछ पिक्सेल ऊपर और बाईं ओर अपडेट करें, या इसे स्प्राइट पर ही करें।

क्या आप Z के बारे में समझते हैं? कि बहुत सारी चीजों को खेलना चाहिए ...

आप देख सकते हैं कि कुर्सी के कुछ हिस्से चरित्र के पीछे रहते हैं, अन्य सामने दिखाई देते हैं। तो यह कैसे संभव है अगर यह सिर्फ एक प्रेत है? Z संरेखित करें!

प्रभाव को प्राप्त करने के दो तरीके। एक मास्क रखें (यह आसान नहीं) या अपने स्प्राइट को दो में विभाजित करें।

मैं अभी दूसरी विधि का उल्लेख करूंगा, क्योंकि मेरे पास अभी ज्यादा समय नहीं है। आपको अपनी कुर्सी स्प्राइट में, उन हिस्सों में काटनी चाहिए जो सामने होंगे, और पीछे क्या होगा। फिर उन्हें उसी स्थिति में रखें। आसान! यहाँ Z संरेखित करने वाले नाटक क्या हैं, पीछे के हिस्सों को पीछे खींचा जाना चाहिए, बीच में चरित्र और सामने की कुर्सी के हिस्सों को।

मुझे नहीं पता कि आप कौन से लिब / एपी / एसडीके / टूलसेट का उपयोग कर रहे हैं। लेकिन इस तरह से सबसे अधिक है: az संरेखित करें कारक का उपयोग करें जो निर्धारित करता है कि पीछे क्या है या सामने क्या है या क्या आकर्षित किया गया है पहले पीछे जाएं, क्या आकर्षित किया है। इसलिए आपको इसे ध्यान में रखना चाहिए।


हाँ धन्यवाद। मैंने भी ऐसा सोचा था, लेकिन मुझे यह समझ में नहीं आया कि एनिमेशन कैसे प्राप्त किया जाएगा। क्या आप एक उदाहरण के बारे में जानते हैं जिसे मैं देख सकता था? यह सबसे अच्छा होगा!
पैट्रिक क्लुग

आप कोड या एक खेल का मतलब है? यदि आप एक गेम चाहते हैं, तो एंड्रॉइड और आईओएस के लिए काईकोस द्वारा गेम देव स्टोरी देखने की कोशिश करें। कोड उदाहरण मैं नहीं जानता ...
Gustavo Maciel

उत्तर संशोधित किया गया। देखें कि क्या यह आपकी आवश्यकताओं पर फिट बैठता है: (:
Gustavo Maciel

मैंने एक विशिष्ट उदाहरण के साथ अपने प्रश्न को अपडेट किया है। मुझे वास्तव में दिलचस्पी है कि स्प्राइट्स कैसे दिखेंगे या ग्राफिक कलाकारों को प्रदान करने के लिए क्या उपयोग किया जाता है। गेमडेव स्टोरी के एनिमेशन मेरे दिमाग में जो कुछ भी हैं उसके लिए थोड़ा सा सरल हैं।
पैट्रिक क्लुग

एडिट 2 पढ़ें, मैंने उत्तर में सुधार किया है, आशा है कि यह आपकी आवश्यकताओं को कवर करेगा।
गुस्तावो मैकिएल

2

एक वैकल्पिक विचार यह होगा कि आपके स्प्राइट्स के साथ डीप / जेड बफ़र छवि कैसे 3 डी एपीआई (ओपनजीएल) सुनिश्चित करें कि बहुभुज ओवरलैप न हों। एक बुनियादी स्प्राइट गेम के लिए यह केवल 0/1 बिट्स (काले और सफेद बिटमैप) का एक गुच्छा हो सकता है (हालाँकि यदि आप चाहें तो गहराई के अधिक स्तरों का उपयोग कर सकते हैं)।

यदि आपके पास एक संयुक्त 'डेस्कचेयर' स्प्राइट है और चाहते हैं कि कुर्सी किसी अन्य स्प्राइट्स (यानी लोगों) के सामने दिखाई दे तो आप उस वर्ग के जेड-बफर संस्करण को 'ब्लैक' बनाएंगे, जबकि डेस्क 'व्हाइट' होगी। ।

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

हर पिक्सेल 1 को एक बार में चेक करने के बजाय, चेक को करने का एक सरल तरीका होगा गहराई बफर मान से स्प्राइट पिक्सेल को गुणा करना क्योंकि नजदीकी गहराई 0 होगी और इसे रद्द करना। फिर निश्चित रूप से आपको कॉर्केल करना होगा (जब तक कि आपके पास अल्फा रंग चैनल न हो)।

यह निश्चित रूप से ओवरहेड जोड़ता है (हालांकि आप इसे किसी भी चीज़ के लिए छोड़ सकते हैं जिसे डेस्कचेयर की तरह कई गहराई स्तरों की आवश्यकता नहीं है)। आपको अपने एनिमेशन को सिंक करने की भी आवश्यकता है (यानी व्यक्ति को डेस्क कुर्सी के साथ मिलान करना होगा)। यह आपको अलग-अलग स्प्राइट्स के पूरे गुच्छा के समान लचीलापन नहीं देता है।


मास्क के साथ गहराई परत मैंने अपने संपादन पर उल्लेख किया है: (:
Gustavo Maciel
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.