मैं मैन्युअल रूप से स्प्राइट शीट का एक हिस्सा कैसे खींचूं?


9

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

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

मैं मैन्युअल रूप से स्प्राइट शीट का एक हिस्सा कैसे खींचूं?


3
यह एनीमेशन डेटा को बिना किसी हैक के, डुप्लिकेट किए बिना एकता में संभव है। प्रभावी रूप से, आप spritesheetA का उपयोग करके एनीमेशन A खेलते हैं, तो लेटअप में आप प्रत्येक SpriteRenderer के स्प्राइट को spritesheetB से इसके एनालॉग पर स्वैप करते हैं। इस तकनीक पर एक एकता वीडियो था; मैं इसे एक उत्तर के रूप में पोस्ट करूंगा यदि मैं इसे बाद में पा सकता हूं, और विवरणों पर विस्तार से बता सकता हूं। यह आपको खरोंच से अपना खुद का लिखने के बिना एकता की मूल एनीमेशन प्रणाली की पूरी शक्ति का उपयोग करने देगा।
DMGregory

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

यदि आप UI पर काम करते हैं तो मास्क का उपयोग करें
गुणसूत्र

जवाबों:


1

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

कदम:-

1) आप छवि से 2 डी स्प्राइट्स को व्यवस्थित रूप से असाइन कर सकते हैं, और जैसा कि यह एक ग्रिड है ऐसा करना बहुत मुश्किल नहीं होगा। निम्नलिखित उत्तर में उपयोगकर्ता ने अपना स्प्राइट स्लाइसर बनाया है और निर्देशिका में सहेजा है (वैकल्पिक रूप से इसे केवल एक चर में सहेजें)। आपको पूरे कोड की आवश्यकता नहीं है, बस GetSprites () फ़ंक्शन की जांच करें और आपको विचार मिल जाएगा :)

http://answers.unity3d.com/questions/576799/coding-my-own-auto-slicer-getting-islands-of-pixel.html

2) एक बार जब आप ऐसा करने में सक्षम हो जाते हैं, तो स्प्राइट्स का एक एरे बनाए रखें, जो आपको चरण 1 से मिला है।

3) अब आपको इन स्प्राइट्स की एक ऐनिमेटेड फाइल बनाने की जरूरत है, जिसे mecanim में प्लग किया जा सकता है। इसके लिए आपको एकता के सेट वक्र फ़ंक्शन (नीचे दिए गए लिंक की जांच करें) की आवश्यकता है। एक बार जब आपके पास इसकी क्लिप अप हो जाती है तो क्या आप इसे भविष्य में उपयोग के लिए बचा सकते हैं या इसे केवल वर्तमान गेम उदाहरण के लिए एक चर में रख सकते हैं।

http://docs.unity3d.com/ScriptReference/AnimationClip.SetCurve.html

आशा है कि यह आपकी शंका का समाधान करेगा :)

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