القائمة الرئيسية

الصفحات

Unity Game Engine: اساسيات استخدام Animation و Animator

Unity Game Engine: اساسيات استخدام Animation و Animator

Unity Game Engine: اساسيات استخدام Animation و Animator

الرسوم المتحركة في Unity 3D
الرسوم المتحركة Animation هي أحد عنصري اللعبة ،
 مما يجعلها تنبض بالحياة (الآخر هو الصوت ).
 يُطلق على نظام الرسوم المتحركة في Unity اسم Mechanim ، 
وتكمن قوته في إحياء النماذج البشرية. في الإصدارات السابقة ، 
تم استخدام مكون آخر يسمى "Animation " ،
 ولكن تم استهلاكه الآن في الإصدارات الأخيرة من Unity.

Unity Game Engine: اساسيات استخدام Animation و Animator


سنرى هنا في هذا المقال التعليمي أساسيات كيفية استخدام
 Animator لإنشاء الرسوم المتحركة Animation .
 سنقوم بعمل وحدة ألعاب صغيرة من باب يفتح علينا بالضغط ثم يُغلق إذا
 ضغطنا على الفضاء مرة أخرى. فلنبدأ رحلتنا ونأمل في النهاية ، كلنا نمر من هذا الباب.


1. خلق بيئتنا

في هذه الوحدة سنقوم بإعداد بيئتنا. هذا يعني أننا سننشئ:

- القاعدة / الأرض
- هيكل من 4 جدران
- الباب
لإنشاء القاعدة ، انقر بزر الماوس الأيمن على لوحة
 Hierarchy> 3D Objects> Cube .
 انقر نقرًا مزدوجًا فوق كائن Cube في التسلسل الهرمي. تركز نافذة المشهد على المكعب.
الآن في لوحة المراقب Inspector ، سترى مكون التحويل.
 تأكد من موقف و تناوب المكعب هو (0،0،0) و على نطاق و هو (1،1،1).
 قم بتغيير قيم المقياس إلى (5 ، 0.5 ، 5). سيكون هذا هو حلقتنا.
 أعد تسمية الكائن "Floor" (بدون علامات اقتباس) عن طريق تحديد المكعب
 في Hierarchy ، والضغط على مفتاح F2 ، وكتابة الاسم والضغط على Enter.

Unity Game Engine: اساسيات استخدام Animation و Animator





وبالمثل ، قم بإنشاء 3 مكعبات أخرى ورتبهم بطريقة تجعلهم
 يصنعون 3 جدران للأرضية. هذه مهمة للقارئ.


الآن للباب. يمكن أن تكون الأبواب الأساسية من نوعين ، منزلقة أو مفصلية.
 سنذهب للباب المنزلق. الآن على غرار الخطوة الأخيرة ،
 قم بإنشاء جدار آخر لإنشاء غرفة بدون سقف. 
اسم الجدار الرابع باسم "الباب". سيكون هذا بابنا.

2. إعداد وجهة نظرنا

هذه الوحدة مخصصة لأولئك الذين ليس لديهم لوحة Animator مفتوحة.
 إذا قمت بذلك ، فانتقل إلى القسم التالي.
- لفتح لوحة Animator ، انقر فوق خيار Window في شريط القائمة و
من القائمة المنسدلة حدد Animator.
أيضًا من نفس قائمة Window ، حدد خيار Animation لفتح لوحة Animation.
سنستخدم كلاهما لإنشاء رسوم متحركة للأبواب المنزلقة.



3. إنشاء الرسوم المتحركة Animation للباب

لإنشاء الرسوم المتحركة Animation ، نقوم أولاً بإنشاء حركات 
الرسوم المتحركة Animation ، ثم نطلب تلك الحركات في شكل آلة حالة (ابحث عنها!)
 حتى نتمكن من الانتقال من حالة إلى أخرى. لا تخاف من الرسم المتحرك أدناه.
 بعد هذا البرنامج التعليمي ، ستفعل ذلك بسهولة .

Unity Game Engine: اساسيات استخدام Animation و Animator

الآن لإنشاء الرسوم المتحركة

- حدد لوحة Animation وانقر على إنشاء.
- قم بتسمية الرسوم المتحركة "DoorOpen" وحفظها في مجلد الأصول.
 وبالمثل ، قم بعمل رسم متحرك آخر يسمى "DoorClosed" واحفظه.

Unity Game Engine: اساسيات استخدام Animation و Animator
 
Unity Game Engine: اساسيات استخدام Animation و Animator




- حدد ملفات الرسوم المتحركة Animation التي تم إنشاؤها واحدًا تلو الآخر
 وقم بإلغاء تحديد خيار "Loop Time".


Unity Game Engine: اساسيات استخدام Animation و Animator


- انتبه الآن إلى هذه النقطة لأنها الخطوة التي تخلق السحر.
 حدد الرسوم المتحركة Animation  " DoorOpen" في لوحة الرسوم المتحركة. 
سترى خط زمني. هذا يسمى Dopesheet .
 سيكون بمثابة الجدول الزمني للأشياء التي ستحدث أثناء الرسوم المتحركة.
- انقر فوق الزر Add Property وحدد Transform> Position.
 هنا يمكننا أن نرى أن ماستين قد تشكلتا على الخط الزمني
. هذه تصور النقاط الرئيسية التي نعرف فيها خصائص الكائن. 
بالنظر إلى مجموعة من نقاط المفاتيح ، تقوم الوحدة تلقائيًا بإقحام وإنشاء الحركة
 التي ستحدث بين هاتين النقطتين الأساسيتين. 
ضع هذه الميزة في الاعتبار وأنت تمضي قدمًا.

Unity Game Engine: اساسيات استخدام Animation و Animator



في الجدول الزمني أعلاه ، توجد أرقام مكتوبة تصور الوقت. 
انقر فوق الرقم الموجود أعلى نقطة المفتاح (الماس) في النهاية. 
يجب أن يظهر خط أبيض فوق نقطة المفتاح.
 هذا يدل على أن تعديل ذلك الجزء من الوقت سيحدث ، 
والذي يقع تحت الخط الأبيض. انقر الآن على الزر الأحمر لبدء تسجيل الحركة.

Unity Game Engine: اساسيات استخدام Animation و Animator

باستخدام أداة التحويل ، انقل الكائن "Door" في Scene View 
(عرض المشهد) بحيث يصل إلى حالة الفتح وفقًا لك. 
اضغط على زر التسجيل مرة أخرى لإيقاف التسجيل. 
يمكنك التحقق من الرسوم المتحركة Animation بالضغط على
 زر التشغيل الموجود بجانب زر التسجيل.
وبالمثل ، قم بإنشاء الرسوم المتحركة "DoorClosed". هذه مهمة للمستخدم.

Unity Game Engine: اساسيات استخدام Animation و Animator



4. استخدام آلة Animator State Machine

الآن بعد أن أصبح لديك أبوابك المتحركة ، لدينا مشكلة في جعلها تتحرك وفقًا لإرادتنا. 
لهذا ، يجب أن يكون لدينا فهم للرسوم المتحركة Animator وما يفعله بالفعل.
كما هو مذكور أعلاه ، يعتني Animator بنقل حالة الرسوم المتحركة إلى أخرى. 
على سبيل المثال ، تخيل نفسك تلعب لعبة First Person Shooter مثل PUBG أو CS: GO. 
هنا ، إذا كنت تضغط على W فقط ، فإن شخصية اللاعب تمشي أو تهرول ، ولكن بمجرد
 الضغط على Shift جنبًا إلى جنب مع مفتاح W ، ينطلق اللاعب بسلاسة في سباق سريع. 
هذا التغيير من "Walk State" إلى "Sprint State" هو ما يعتني به Animator.
بالعودة إلى بابنا ، إذا فتحنا الرسوم المتحركة Animator ، 
فسنرى مربعات ملونة مختلفة بها أشياء مكتوبة عليها مثل "Entry" ،
 "Any State" ، "Exit" ، إلخ. هذه هي حالات الرسوم المتحركة المختلفة.
من بين هؤلاء ستجد سهمًا برتقاليًا يبدأ من حالة الدخول إلى حالة DoorOpen.
 هذا السهم (أو أي سهم) يصور انتقالًا من حالة حركة إلى أخرى. لنرى ما تعنيه الدول المختلفة :



- الإدخال Entry :
 يشير الإدخال إلى حالة الرسوم المتحركة Animation عندما يظهر المشهد لأول مرة.

- المخرج Exit 
تُستخدم هذه الحالة لإنهاء الرسوم المتحركة Animation والبدء مرة أخرى في حالة الدخول.
 لتبسيط الأمر ، افترض أن انتقالك ينتهي بالحالة "foo".
 حاول رسم انتقال من "blablabla" إلى "Entry". أنت فقط لا تستطيع.
الآن إذا كنت حقًا بحاجة إلى القيام بذلك ، فعندئذٍ تستخدم "خروج".

- Any State 
Any State هي خاصة موجودة دائمًا.
 إنه موجود للموقف الذي تريد الانتقال فيه إلى حالة معينة بغض النظر عن الحالة التي أنت فيها حاليًا. 
هذه طريقة مختصرة لإضافة نفس الانتقال الخارجي إلى جميع الحالات في جهازك.
 لاحظ أن المعنى الخاص لـ Any State يعني أنه لا يمكن أن يكون نقطة نهاية الانتقال
 (أي لا يمكن استخدام القفز إلى "أي حالة" كطريقة لاختيار حالة عشوائية للدخول إليها بعد ذلك).
سترى أيضًا سهمًا ينتقل من حالة الدخول إلى حالة DoorOpen
. ليس هذا ما نريد. هنا يفتح الباب بمجرد أن يبدأ المشهد. 
ما نرغب فيه هو أن ينتظر الباب حتى نأمره بالتحرك.
 لذا فنحن بحاجة إلى State "خاملة" ، Any State ليس لها حركة مرتبطة بها.

Unity Game Engine: اساسيات استخدام Animation و Animator




للقيام بذلك ، انقر بزر الماوس الأيمن على مساحة لوحة Animator ومن
 القائمة المنسدلة ، حدد Create State> Empty .
الآن أعد تسمية حالة "New State" هذه إلى "Idle" .
نحتاج الآن إلى Idle لتكون الحالة الافتراضية (تم نقل الحالة إلى ما بعد الإدخال).
 للقيام بذلك ، انقر بزر الماوس الأيمن على Idle وحدد Set as Layer Default State

Unity Game Engine: اساسيات استخدام Animation و Animator


الآن من أجل التحولات. تشير التحولات إلى انتقال السيطرة من حالة إلى أخرى.
 يمثل السهم باللون البرتقالي الذي تراه انتقالًا.
لإنشاء انتقال ، انقر بزر الماوس الأيمن على الحالة الأولية> من القائمة المنسدلة ،
 حدد إجراء انتقال> انقر الحالة التالية.
لذا حاول إنشاء مخطط حالة العمل بنفسك وتحقق مما إذا كان صحيحًا أم لا مع الصورة أدناه.

Unity Game Engine: اساسيات استخدام Animation و Animator




لم ينتهي بعد. هنا إذا ضغطت على "تشغيل" ، يفتح الباب ويغلق تلقائيًا.
 هذا لأن تحولاتنا أقل شرطًا. تحدث انتقالات بدون شرط بمجرد انتهاء الحالة الأولية من
 تشغيل الرسوم المتحركة مرة واحدة. نحن بحاجة للسيطرة هنا. لذلك نحن نطبق الشروط على التحولات.

لتطبيق الشروط ، نطلب تعيين معلمة لتبديل الباب مفتوحًا أو مغلقًا. لفعل هذا :

- حدد علامة التبويب Parameter من الزاوية اليسرى العلوية للوحة Animator.
- انقر فوق الرمز + أدناه وحدد الخيار المنطقي Boolean من القائمة المنسدلة.
- قم بإعادة تسميته إلى "isDoorOpen" .
- نختار منطقيًا لأنه سيكون من السهل تصوير الحالات المفتوحة والمغلقة للباب باستخدامه.

Unity Game Engine: اساسيات استخدام Animation و Animator


الآن لتطبيق الشروط على الانتقالات :

- حدد انتقال من خلال النقر على السهم.
- في لوحة المراقب Inspector ، انقر فوق + في خيار الشروط.
- حدد قيمة الشرط وفقًا لذلك.
- قيمة الانتقال 1 و 2 و 3 لـ "isDoorOpen" صحيحة وخاطئة وصحيحة على التوالي.




Unity Game Engine: اساسيات استخدام Animation و Animator


ومن هنا انتهينا من تهيئة ظروفنا. سنقوم بتشغيل هذه الانتقالات عبر الكود.

5. كتابة الكود

أنشئ كائنًا فارغًا يسمى "Door Manager" وأضف نص
 #C  جديدًا إليه يسمى "DoorManagerScript".
لإضافة البرنامج النصي ، حدد إضافة مكون > نص جديد> اسم البرنامج النصي
 "DoorManagerScript"> اضغط على إنشاء وإضافة
في البرنامج النصي ، اكتب الكود التالي واحفظه :


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DoorManagerScript : MonoBehaviour 
{
    public Animator anim;

    private bool trigger;

    void Start()
    {
        anim.SetBool ("isDoorOpen", false);
        trigger = false;
    }

    void Update()
    {
        trigger = anim.GetBool ("isDoorOpen");
        
        if(Input.GetKeyDown (KeyCode.Space))
        {
            if(!trigger)
            {
                anim.SetBool ("isDoorOpen", true);
            }
            else 
            {s
                anim.SetBool ("isDoorOpen", false);
            }
        }
    }
}




6. من خلال الباب وإلى الجانب الآخر

حسنًا ، أود أن أهنئكم على إنشاء أول جسم متحرك في Unity . 
وما هو أكثر من ذلك يعمل حسب أمرك! عمل عظيم. 
كانت هذه مجرد لمحة عن قوة نظام Mechanim الذي يمكن أن يفعله يديك.
لذا اضغط على تشغيل وشاهد السحر يحدث عندما تضغط على شريط المسافة.

Unity Game Engine: اساسيات استخدام Animation و Animator

للمزيد من المعلومات عن تصميم الالعاب على محرك يونيتي
Unity Game Engine اقرا مقالاتنا التعليمية لتعليم برمجه الالعاب على 
يونيتي Unity Game Engine بسهولة .


جدول المحتويات