एकता में 2डी एनिमेशन बनाना
Unity में 2D एनिमेशन बनाने के लिए, डेवलपर्स अंतर्निहित एनीमेशन विंडो और Unity एनिमेटर घटक का उपयोग कर सकते हैं। आरंभ करने के लिए यहां चरण-दर-चरण मार्गदर्शिका दी गई है।
परियोजना की स्थापना
- Unity खोलें और एक नया 2D प्रोजेक्ट बनाएं या किसी मौजूदा को खोलें।
- यदि कोई नया प्रोजेक्ट शुरू कर रहे हैं, तो प्रोजेक्ट का टेम्पलेट 2D के रूप में सेट करें।
स्प्राइट संपत्ति आयात करना
- स्प्राइट को स्प्राइट संपादक का उपयोग करके Unity के भीतर बनाया जा सकता है या पीएनजी या जेपीईजी जैसी बाहरी छवि फ़ाइलों से आयात किया जा सकता है।
- Unity के भीतर स्प्राइट बनाने के लिए, एसेट्स मेनू पर जाएं, क्रिएट चुनें और स्प्राइट या स्प्राइट रेंडरर में से किसी एक को चुनें। फिर स्प्राइट कलाकृति को बनाना या आयात करना संभव है।
स्प्राइट एनिमेशन को कॉन्फ़िगर करना
- एक बार स्प्राइट तैयार हो जाने पर, प्रोजेक्ट विंडो में स्प्राइट एसेट का चयन करें।
- इंस्पेक्टर विंडो में, सुनिश्चित करें कि बनावट प्रकार 'Sprite (2D and UI)' पर सेट है। यदि नहीं, तो इसे 'Sprite (2D and UI)' में बदलें।
- स्प्राइट एडिटर में इसे खोलने के लिए प्रोजेक्ट विंडो में स्प्राइट एसेट पर क्लिक करें।
- एनीमेशन के अलग-अलग frames को परिभाषित करने के लिए स्प्राइट संपादक का उपयोग करें। यदि आवश्यक हो तो स्प्राइट को कई उप-छवियों में विभाजित किया जा सकता है। संपादक स्प्राइट की स्थिति को नियंत्रित करने के लिए प्रत्येक फ्रेम के लिए धुरी बिंदु को संशोधित करने की भी अनुमति देता है।
- स्प्राइट संपादक में किए गए परिवर्तनों को सहेजें।
एनिमेशन विंडो का उपयोग करके एनिमेशन बनाना
- एनिमेशन विंडो खोलने के लिए, 'Window -> Animation' पर जाएँ।
- एनीमेशन विंडो में, एक नई एनीमेशन क्लिप बनाने के लिए क्रिएट बटन पर क्लिक करें।
- प्रोजेक्ट विंडो में एनीमेशन क्लिप का चयन करें, और इसके गुण इंस्पेक्टर विंडो में दिखाई देंगे।
- इंस्पेक्टर विंडो में एनीमेशन क्लिप की लंबाई, नमूना दर और अन्य गुण सेट करना संभव है।
- कीफ़्रेम बनाने के लिए, एनीमेशन विंडो में प्ले हेड को एक विशिष्ट time पर ले जाएँ और दृश्य या पदानुक्रम विंडो में स्प्राइट के गुणों (जैसे, स्थिति, स्केल, रोटेशन, आदि) को संशोधित करें।
- सहज एनिमेशन बनाने के लिए अलग-अलग समय पर कीफ़्रेम जोड़ें। Unity मुख्य फ़्रेमों के बीच मानों को स्वचालित रूप से प्रक्षेपित करेगा।
एनिमेटर की स्थापना
- दृश्य या पदानुक्रम विंडो में स्प्राइट ऑब्जेक्ट का चयन करें।
- इंस्पेक्टर विंडो में, Add Component बटन पर क्लिक करें और ऑब्जेक्ट में एनिमेटर घटक जोड़ने के लिए "Animator" खोजें।
- एक नया एनिमेटर कंट्रोलर एसेट बनाने के लिए एनिमेटर घटक में क्रिएट बटन पर क्लिक करें।
- नव निर्मित एनिमेटर नियंत्रक को एनिमेटर घटक के नियंत्रक फ़ील्ड में असाइन करें।
एनिमेटर नियंत्रक को कॉन्फ़िगर करना
- नव निर्मित एनिमेटर कंट्रोलर एसेट को एनिमेटर विंडो में खोलने के लिए उस पर डबल-क्लिक करें।
- एनिमेटर विंडो में, एक एनिमेटर कंट्रोलर ग्राफ़ है, जो एनिमेशन के प्रवाह का प्रतिनिधित्व करता है।
- एनिमेटर विंडो में राइट-क्लिक करें और एनिमेशन स्थिति बनाने के लिए 'Create State -> From New Clip' या 'From Sprite Renderer' चुनें।
- एनीमेशन विंडो में पहले से बनाए गए एनीमेशन क्लिप को संबंधित एनीमेशन स्थिति पर खींचें और छोड़ें।
- एक राज्य पर क्लिक करके और तीर को दूसरे राज्य में खींचकर एनीमेशन राज्यों के बीच संक्रमण बनाएं। परिवर्तन के लिए शर्तों को समायोजित करना संभव है, जैसे समय, पैरामीटर मान या घटनाएँ।
- ट्रांज़िशन को नियंत्रित करने के लिए बूल, इन्ट या ट्रिगर जैसे पैरामीटर जोड़ना संभव है। उदाहरण के लिए, "IsRunning" नाम का एक बूल पैरामीटर हो सकता है जो निष्क्रिय एनीमेशन स्थिति से चालू एनीमेशन स्थिति में संक्रमण को ट्रिगर करता है।
एनिमेशन चला रहे हैं
- दृश्य या पदानुक्रम विंडो में स्प्राइट ऑब्जेक्ट का चयन करें।
- इंस्पेक्टर विंडो में एनिमेटर घटक में, बनाए गए एनिमेटर कंट्रोलर एसेट को कंट्रोलर फ़ील्ड पर खींचें।
- एनिमेशन का परीक्षण और पूर्वावलोकन करने के लिए एनीमेशन विंडो में Play बटन दबाएँ।
एनिमेशन को प्रोग्रामेटिक रूप से नियंत्रित करना
- एनिमेशन को प्रोग्रामेटिक रूप से नियंत्रित करने के लिए script से एनिमेटर घटक तक पहुंच की आवश्यकता होती है।
- स्क्रिप्ट में, एनिमेटर प्रकार का एक वेरिएबल बनाएं और स्प्राइट ऑब्जेक्ट से जुड़े एनिमेटर घटक का संदर्भ प्राप्त करने के लिए 'GetComponent<Animator>()' का उपयोग करें।
- फिर ट्रांज़िशन को ट्रिगर करने, पैरामीटर मान सेट करने या एनिमेशन के प्लेबैक को नियंत्रित करने के लिए एनिमेटर के कार्यों और गुणों का उपयोग करना संभव है। उदाहरण के लिए, animator.SetBool('IsRunning', true) को कॉल करने से रनिंग एनीमेशन ट्रिगर हो जाएगा।
using UnityEngine;
public class AnimationController : MonoBehaviour
{
private Animator animator;
private void Start()
{
// Get a reference to the Animator component
animator = GetComponent<Animator>();
}
private void Update()
{
// Check for input or condition to trigger animations
if (Input.GetKeyDown(KeyCode.Space))
{
// Trigger a jump animation
animator.SetTrigger("Jump");
}
float moveInput = Input.GetAxis("Horizontal");
animator.SetFloat("Speed", Mathf.Abs(moveInput));
// Check if the character is grounded
bool isGrounded = IsGrounded();
// Set the "IsGrounded" parameter in the Animator
animator.SetBool("IsGrounded", isGrounded);
if (isGrounded && Input.GetKeyDown(KeyCode.C))
{
// Trigger a crouch animation
animator.SetBool("IsCrouching", true);
}
if (isGrounded && Input.GetKeyUp(KeyCode.C))
{
// Stop the crouch animation
animator.SetBool("IsCrouching", false);
}
}
private bool IsGrounded()
{
// Implement your own logic to check if the character is grounded
// For example, you can use raycasting or collision detection
// and return true if the character is touching the ground
// and false otherwise.
return false;
}
}
निष्कर्ष
यह अंतर्निहित टूल का उपयोग करके Unity में 2D एनिमेशन बनाने का एक बुनियादी अवलोकन है। Unity अधिक उन्नत तकनीकों का भी समर्थन करता है जैसे स्प्राइट शीट, व्युत्क्रम किनेमेटिक्स (IK), और स्क्रिप्टिंग कस्टम एनीमेशन व्यवहार का उपयोग करना। विशिष्ट आवश्यकताओं और विचाराधीन एनिमेशन की जटिलता के आधार पर इन विकल्पों का अन्वेषण करें।