إنشاء رسوم متحركة ثنائية الأبعاد في Unity

لإنشاء رسوم متحركة ثنائية الأبعاد في Unity، يمكن للمطورين استخدام نافذة الرسوم المتحركة المضمنة ومكون الرسوم المتحركة Unity. فيما يلي دليل خطوة بخطوة للبدء.

إعداد المشروع

  • افتح Unity و أنشئ مشروعًا جديدًا ثنائي الأبعاد أو افتح مشروعًا موجودًا.
  • في حالة بدء مشروع جديد، قم بتعيين قالب المشروع ليكون ثنائي الأبعاد.

استيراد أصول سبرايت

  • يمكن إنشاء النقوش المتحركة داخل Unity باستخدام محرر الصور المتحركة أو استيرادها من ملفات صور خارجية مثل PNG أو JPEG.
  • لإنشاء كائنات متحركة داخل Unity، انتقل إلى قائمة Assets، وحدد إنشاء، واختر إما Sprite أو Sprite Renderer. ومن الممكن بعد ذلك رسم أو استيراد العمل الفني للكائنات.

تكوين الرسوم المتحركة العفريت

  • بمجرد أن تصبح الكائنات جاهزة، حدد أصل الكائنات في نافذة المشروع.
  • في نافذة المفتش، تأكد من ضبط نوع المادة على 'Sprite (2D and UI)'. إذا لم يكن الأمر كذلك، قم بتغييره إلى 'Sprite (2D and UI)'.
  • انقر فوق أصل الكائن في نافذة المشروع لفتحه في محرر الكائنات.
  • استخدم Sprite Editor لتحديد frames الفردية للرسوم المتحركة. يمكن تقسيم الكائن إلى صور فرعية متعددة إذا لزم الأمر. يسمح المحرر أيضًا بتعديل النقطة المحورية لكل إطار للتحكم في موضع الكائن.
  • احفظ التغييرات التي تم إجراؤها في محرر Sprite.

إنشاء صور متحركة باستخدام نافذة الرسوم المتحركة

  • لفتح نافذة الرسوم المتحركة، انتقل إلى 'Window -> Animation'.
  • في نافذة الرسوم المتحركة، انقر فوق الزر "إنشاء" لإنشاء مقطع رسوم متحركة جديد.
  • حدد مقطع الرسوم المتحركة في نافذة المشروع، وستظهر خصائصه في نافذة المفتش.
  • في نافذة المفتش، من الممكن ضبط طول مقطع الرسوم المتحركة ومعدل العينة والخصائص الأخرى.
  • لإنشاء إطارات رئيسية، قم بتحريك رأس التشغيل في نافذة الرسوم المتحركة إلى time محدد وقم بتعديل خصائص الكائن (على سبيل المثال، الموضع والمقياس والتدوير وما إلى ذلك) في نافذة المشهد أو التسلسل الهرمي.
  • أضف الإطارات الرئيسية في أوقات مختلفة لإنشاء رسوم متحركة سلسة. سيقوم Unity تلقائيًا باستيفاء القيم بين الإطارات الرئيسية.

إعداد الرسوم المتحركة

  • حدد كائن الكائن في نافذة المشهد أو التسلسل الهرمي.
  • في نافذة المفتش، انقر فوق الزر Add Component وابحث عن "Animator" لإضافة مكون Animator إلى الكائن.
  • انقر فوق الزر "إنشاء" في مكون Animator لإنشاء أصل جديد لوحدة تحكم Animator.
  • قم بتعيين وحدة تحكم Animator التي تم إنشاؤها حديثًا إلى حقل وحدة تحكم مكون Animator.

تكوين وحدة تحكم الرسوم المتحركة

  • انقر نقرًا مزدوجًا فوق الأصل Animator Controller الذي تم إنشاؤه حديثًا لفتحه في نافذة Animator.
  • في نافذة Animator، يوجد رسم بياني لوحدة تحكم Animator، والذي يمثل تدفق الرسوم المتحركة.
  • انقر بزر الماوس الأيمن في نافذة Animator وحدد 'Create State -> From New Clip' أو 'From Sprite Renderer' لإنشاء حالات الرسوم المتحركة.
  • قم بسحب وإسقاط مقاطع الرسوم المتحركة التي تم إنشاؤها مسبقًا في نافذة الرسوم المتحركة على حالات الرسوم المتحركة المعنية.
  • قم بإنشاء انتقالات بين حالات الرسوم المتحركة من خلال النقر على الحالة وسحب السهم إلى حالة أخرى. من الممكن ضبط شروط الانتقال، مثل الوقت أو قيم المعلمات أو الأحداث.
  • من الممكن إضافة معلمات للتحكم في التحولات، مثل bools أو ints أو المشغلات. على سبيل المثال، يمكن أن يكون هناك معلمة منطقية تسمى "IsRunning" تؤدي إلى الانتقال من حالة الرسوم المتحركة الخاملة إلى حالة الرسوم المتحركة قيد التشغيل.

تشغيل الرسوم المتحركة

  • حدد كائن الكائن في نافذة المشهد أو التسلسل الهرمي.
  • في مكون Animator في نافذة Inspector، اسحب أصل Animator Controller الذي تم إنشاؤه إلى حقل Controller.
  • اضغط على الزر Play في نافذة الرسوم المتحركة لاختبار الرسوم المتحركة ومعاينتها.

التحكم في الرسوم المتحركة برمجيا

  • يتطلب التحكم في الرسوم المتحركة برمجيًا الوصول إلى مكون Animator من script.
  • في البرنامج النصي، قم بإنشاء متغير من النوع Animator واستخدم 'GetComponent<Animator>()' للحصول على مرجع لمكون Animator المرفق بكائن الكائن.
  • من الممكن بعد ذلك استخدام وظائف وخصائص 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 باستخدام الأدوات المضمنة. Unity يدعم أيضًا تقنيات أكثر تقدمًا مثل استخدام أوراق الرموز المتحركة والحركيات العكسية (IK) والبرمجة النصية للرسوم المتحركة المخصصة behaviors. استكشف هذه الخيارات بناءً على المتطلبات المحددة ومدى تعقيد الرسوم المتحركة المعنية.

المقالات المقترحة
كيفية إنشاء لعبة ثنائية الأبعاد مثل Super Mario في Unity
اكتشاف البوابة إلى الإبداع اللامحدود مع الوحدة
صنع لعبة تقمص أدوار متساوية القياس في Unity
إنشاء لعبة منهاج بسيطة في الوحدة
كيفية إنشاء التضاريس في الوحدة
إنشاء لعبة لودو في الوحدة
اصنع أول لعبة ثلاثية الأبعاد في Unity