كيفية استخدام المؤثرات الحركية في Unreal Engine 4

في هذا البرنامج التعليمي، ستتعلم كيفية استيراد المؤثرات الحركية واستخدامها في الإصدار الرابع من أنريل إينجن (Unreal Engine 4).

نادراً ما تشاهد لعبة حديثة بدون مؤثرات حركية، وهذا لأنها هي المفتاح في نقل الحركة، فبدون المؤثرات الحركية، ستبدو الشخصية وكأنها تنزلق بدلاً من الجري.

ولحسن الحظ، يجعل أنريل (Unreal) من السهل الحصول على مؤثرات حركية للشخصية في أي وقت من الأوقات.

وستتعلم في هذا البرنامج التعليمي كيفية:

  1. استيراد شبكة بهيكل عظمي.
  2. استيراد المؤثرات الحركية.
  3. إنشاء مخطط مؤثرات حركية للانتقال إلى مؤثرات حركية مختلفة.
  4. المزج بين المؤثرات الحركية.

يرجى ملاحظة أنك ستستخدم المخططات (Blueprints) في هذا البرنامج التعليمي، فإذا كنت بحاجة إلى تجديد معلوماتك، فراجع البرنامج التعليمي للمخططات (Blueprints).

البداية

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

تنزيل مشروع البداية

انتقل إلى مجلد المشروع وافتح (SkywardMuffin.uproject).

ملاحظة: إذا تلقيت رسالة تفيد بأن المشروع قد تم إنشاؤه باستخدام إصدار سابق من محرر أنريل (Unreal editor)، فلا بأس بذلك (يتم تحديث المحرك بشكل متكرر)، ويمكنك إما اختيار خيار فتح نسخة (open a copy)، أو خيار التحويل في المكان (convert in place).

اضغط على تشغيل (Play) لبدء اللعبة، والهدف من اللعبة هو لمس أكبر عدد ممكن من السحب دون السقوط، انقر فوق زر الماوس الأيسر للانتقال إلى السحابة الأولى.

الشكل البدائي للعبة

وبدلاً من الدائرة الحمراء البسيطة، دعنا نتحكم في هذا الكعك الصغير اللطيف:

صورة اللاعب

يحتوي هذا الكعك على هيكل عظمي يسمح لك بتحريكه.

الهيكل العظمي للكعك

ما هو الهيكل العظمي (Skeleton)؟

في التطبيقات ثلاثية الأبعاد، الهيكل العظمي عبارة عن مجموعة من النقاط المترابطة تسمى المفاصل، وفي الصورة أدناه، كل كرة هي مفصل.

الهيكل العظمي

ملاحظة: يستخدم أنريل (Unreal) المفاصل والعظام بالتبادل.

ومن خلال معالجة هذه المفاصل، يمكنك إنشاء أوضاع مختلفة لشخصيتك.

وضعيات مختلفة للمفاصل

وعندما تنتقل من وضع إلى آخر، فأنت تقوم بإنشاء مؤثر حركي.

مؤثر حركي

وإذا قمت بإنشاء مزيج من الوضعيات السابقة، فيمكنك الحصول على شيء مثل هذا:

مزيج من المؤثرات الحركية

وفي أنريل (Unreal)، أي شبكة بهيكل عظمي هي شبكة هيكلية (Skeletal Mesh)، لنبدأ باستيراد الشبكة الهيكلية (Skeletal Mesh) للكعك.

استيراد شبكة هيكلية (Skeletal Mesh)

انتقل إلى مستعرض المحتوى (Content Browser)، وانتقل إلى (Characters \ Muffin)، وانقر فوق استيراد (Import) ثم انتقل إلى (SkywardMuffinStarter \ Animation Assets)، وحدد (SK_Muffin.fbx) ثم انقر فوق فتح (Open).

استيراد شبكة هيكلية

في نافذة الاستيراد، انتقل إلى قسم الشبكة (Mesh section) وقم بإلغاء تحديد خيار إنشاء أصول فيزيائية (Create Physics Asset)، ويساعد هذا الخيار في إنشاء تأثير دوول (ragdoll)، ونظراً لأن هذا البرنامج التعليمي لا يغطي ذلك، فأنت لست بحاجة إلى واحد.

استيرلد شبكة هيكلية 2

يتضمن المشروع بالفعل مادة مافن (muffin) والنسيج (texture)، ولذلك لا تحتاج إلى استيرادها، قم بإلغاء تحديد خيارات استيراد المواد (Import Materials) واستيراد الأنسجة (Import Textures).

استيراد المواد

دع الإعدادات الافتراضية كما هي، ثم انقر فوق استيراد (Import)، وسيؤدي ذلك إلى إنشاء الأصول التالية:

  • SK_Muffin: أصل شبكة الهيكل العظمي، وهي بالأساس مجرد شبكة بها رابط لأصل الهيكل العظمي (Skeleton).
  • SK_Muffin_Skeleton: أصل الهيكل العظمي، يحتوي هذا على قائمة بالمفاصل ومعلومات أخرى مثل التسلسل الهرمي.
استيراد

الآن بعد أن تم استيراد الكعك، حان وقت استخدامه.

استخدام شبكة الهيكل العظمي (Skeletal Mesh)

قبل استخدام شبكة الهيكل العظمي (Skeletal Mesh) الجديدة، يجب أن يتم تغطيتها بمادة حتى لا تكون مجرد نقطة رمادية، انقر نقراً مزدوجاً فوق (SK_Muffin) لفتحه.

انتقل إلى لوحة تفاصيل الأصول (Asset Details panel) وحدد موقع قسم المواد (Material Slots)، وقم بتعيين مادة (M_Muffin) ثم أغلق (SK_Muffin).

تفاصيل الأصول

الآن، دعونا نستخدم (SK_Muffin) كشخصية اللاعب، ارجع إلى متصفح المحتوى وانقر نقراً مزدوجاً على (BP_Muffin) لفتحه.

انتقل إلى لوحة المكونات (Components panel) وحدد مكون الشبكة (Inherited)، وانتقل إلى لوحة التفاصيل (Details panel) وحدد موقع قسم الشبكة (Mesh section)، وقم بضبط خاصية (Skeletal Mesh) على (SK_Muffin).

استخدام شبكة الهيكل العظمي

انقر فوق (Compile) ثم ارجع إلى المحرر الرئيسي، واضغط على تشغيل (Play) لتلعب لعبة الكعك!

اختبار اللعبة بعد استخدام الشبكة الهيكلية

اللعبة تبدو بالفعل أفضل بكثير! خطوتك التالية هي استيراد بعض المؤثرات الحركية التي ستضيف الحياة إلى الكعك.

استيراد مؤثرات حركية (Importing Animations)

انتقل إلى مستعرض المحتوى (Content Browser) وانقر فوق استيراد (Import)، تأكد من أنك في (SkywardMuffinStarter \ Animation Assets)، وحدد الملفات التالية:

  • SK_Muffin_Death.fbx
  • SK_Muffin_Fall.fbx
  • SK_Muffin_Idle.fbx
  • SK_Muffin_Jump.fbx
  • SK_Muffin_Walk.fbx

وبمجرد القيام بذلك، انقر فوق فتح (Open).

استيراد المؤثرات الحركية

في نافذة الاستيراد (import window)، انتقل إلى قسم الشبكة (Mesh section) وقم بإلغاء تحديد خيار استيراد شبكة (Import Mesh)، وسيؤدي هذا إلى التأكد من عدم استيراد (Skeletal Mesh) مرة أخرى.

عدم استيراد الشبكة الهيكلية

وبعد ذلك، تأكد من ضبط خاصية (Skeleton) على (SK_Muffin_Skeleton)، ويحدد هذا الهيكل العظمي (skeleton) الذي ستستخدمه المؤثرات الحركية.

إعدادات الشبكة الهيكلية

أخيراً، انقر فوق استيراد الكل (Import All)، وسيؤدي هذا إلى استيراد جميع المؤثرات الحركية بالإعدادات التي حددتها للتو.

استيراد الكل

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

إنشاء مخطط المؤثرات الحركية (Creating an Animation Blueprint)

مخطط المؤثرات الحركية (Animation Blueprint) يشبه مخطط منتظم (regular Blueprint)، ومع ذلك، فإنه يحتوي أيضاً على رسم بياني مخصص لمهام المؤثرات الحركية.

ولإنشاء واحد، انتقل إلى مستعرض المحتوى (Content Browser) وانقر فوق الزر إضافة جديد (Add New)، وحدد مخطط (Animation\Animation Blueprint).

في النافذة المنبثقة، حدد موقع خاصية (Target Skeleton) وحدد (SK_Muffin_Skeleton)، وبعد ذلك، انقر فوق الزر موافق (OK) لإنشاء مخطط الرسوم المتحركة (Animation Blueprint).

إنشاء مخططات المؤثرات الحركية

أعد تسمية الأصل إلى (ABP_Muffin)، وبعد ذلك، انقر نقراً مزدوجاً فوقه لفتحه في محرر مخطط المؤثرات الحركية (Animation Blueprint editor).

محرر مخطط المؤثرات الحركية (The Animation Blueprint Editor)

يشبه محرر مخطط المؤثرات الحركية (The Animation Blueprint Editor) محرر المخطط (Blueprint) ولكن مع أربع لوحات إضافية:

محرر مخطط المؤثرات الحركية
  1. الرسم البياني للمؤثرات الحركية (Anim Graph): هذا الرسم البياني مخصص للمؤثرات الحركية، وهذا هو المكان الذي ستلعب فيه المؤثرات الحركية الخاصة بك.
  2. معاينة إعدادات المشهد (Preview Scene Settings): تسمح لك هذه اللوحة بتعديل مشهد المعاينة في منفذ العرض (Viewport).
  3. محرر معاينة المثرات الحركية (Anim Preview Editor): ستظهر هنا أيضاً المتغيرات التي تقوم بإنشائها، استخدم هذه اللوحة لمعاينة تأثير متغيراتك على المؤثر الحركي النهائي.
  4. مستعرض الأصول (Asset Browser): تحتوي هذه اللوحة على قائمة بالمؤثرات الحركية التي يمكن للهيكل العظمي الحالي استخدامها.

ولتحديد وقت تشغيل كل مؤثر حركي، يمكنك استخدام (State Machine).

ما هي آلة الحالة (State Machine)؟

هي مجموعة من الحالات والقواعد، لأغراض هذا البرنامج التعليمي، يمكنك التفكير في الحالة كمؤثر حركي.

يمكن أن تكون آلة الحالة (State Machine) في حالة واحدة فقط في كل مرة، وللانتقال إلى حالة مختلفة، يجب استيفاء شروط معينة محددة بالقواعد.

يوجد أدناه مثال على آلة حالة بسيطة، تعرض حالات القفزة وقواعد الانتقال إلى كل حالة.

آلة الحالة

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

آلة الحالة 2

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

هذا يكفي عن آلات الحالة، دعنا نتابع وننشئ آلة حالة جديدة.

إنشاء آلة حالة (Creating a State Machine)

تأكد من أنك في الرسم البياني للمؤثرات الحركية (Anim Graph)، ثم انقر بزر الماوس الأيمن فوق منطقة فارغة، ومن القائمة، حدد إضافة آلة حالة جديدة (Add New State Machine).

إنشاء آلة حالة

سيضيف هذا الإجراء عقدة آلة حالة (State Machine) إلى الرسم البياني الخاص بك، أعد تسمية آلة الحالة إلى (Locomotion)، وبعد ذلك، قم بتوصيل (Locomotion State Machine) بالعقدة (Final Animation Pose node).

عقدة آلة الحالة

الآن، ستحدد آلة الحالة (Locomotion) المؤثرات الحركية النهائية للكعك.

بعد ذلك، انقر نقراً مزدوجاً فوق (Locomotion State Machine) لفتحه، وفي الداخل، سترى عقدة الدخول (Entry node).

عقدة الدخل

الحالة المتصلة بهذه العقدة هي الحالة الافتراضية، بالنسبة لهذا البرنامج التعليمي، ستكون الحالة الافتراضية هي المؤثرات الحركية الخاملة، وقم بإنشاء هذه الحالة بالنقر بزر الماوس الأيمن فوق منطقة فارغة على الرسم البياني، ومن القائمة، حدد إضافة حالة (Add State) وأعد تسميتها إلى (Idle).

خامل

الآن، تحتاج إلى توصيل عقدة الإدخال (Entry node) بحالة الخمول (Idle state)، واسحب مع الضغط على دبوس الإدخال إلى المنطقة الرمادية لحالة الخمول (Idle state)، حرر زر الماوس الأيسر لتوصيلهم.

توصيل عقدة الدخل بالحالة خامل

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

ربط المؤثر الحركي بالحالة (Linking an Animation to a State)

انقر نقراً مزدوجاً فوق حالة الخمول (Idle state) لفتحها.

لربط مؤثر حركي (animation)، انتقل إلى مستعرض الأصول (Asset Browser) ثم اسحب وانقر فوق المؤثر الحركي (SK_Muffin_Idle)، وحرر زر النقر الأيسر فوق منطقة فارغة في الرسم البياني لإضافتها.

ربط المؤثر الحركي بالحالة

بعد ذلك، قم بتوصيل عقدة (Play SK_Muffin_Idle) بعقدة (Final Animation Pose).

توصيل عقد

ولاستخدام مخطط المؤثرات الحركية (Animation Blueprint)، تحتاج إلى تحديث (BP_Muffin).

استخدام مخطط المؤثرات الحركية (Animation Blueprint)

انقر فوق (Compile) ثم قم بالتبديل إلى (BP_Muffin).

انتقل إلى لوحة المكونات (Components panel) ثم حدد المكون Mesh (Inherited)، وانتقل إلى لوحة التفاصيل (Details panel) ثم حدد موقع قسم المؤثرات الحركية (Animation section).

اضبط وضع المؤثرات الحركية (Animation Mode) على استخدام مخطط المؤثرات الحركية (Use Animation Blueprint)، وبعد ذلك، اضبط فئة المؤثرات الحركية (Anim Class) على (ABP_Muffin).

استخدام مخطط المؤثرات الحركية

الآن، ستستخدم (Skeletal Mesh ABP_Muffin) كمخطط للمؤثرات الحركية الخاص بها.

انقر فوق (Compile) ثم أغلق (BP_Muffin)، وانتقل إلى المحرر الرئيسي واضغط على تشغيل (Play) لاختبار مخطط المؤثرات الحركية (Animation Blueprint)، ونظراً لأن الخمول (Idle) هي الحالة الافتراضية، فستستخدم الكعكة تلقائياً المؤثرات الحركية الخاملة.

اختبار مخطط المؤثرات الحركية

في القسم التالي، ستنشئ حالات للقفز والسقوط.

إنشاء حالات القفز والهبوط (Creating the Jumping and Falling States)

ارجع إلى (ABP_Muffin) ثم عُد إلى الرسم البياني لجهاز حالة الحركة (Locomotion State Machine)، ويمكنك القيام بذلك عن طريق النقر فوق (Locomotion) الموجود أعلى الرسم البياني.

إنشاء حالات القفز والهبوط

وبدلاً من إنشاء حالة ثم ربط مؤثر حركي، يمكنك إنشاء حالة بها مؤثر حركي مرتبط بالفعل، ودعونا نفعل ذلك من أجل حالة القفز.

انتقل إلى مستعرض الأصول (Asset Browser) ثم انقر مع السحب فوق المؤثر الحركي (SK_Muffin_Jump)، وحرر زر النقر الأيسر فوق منطقة فارغة في الرسم البياني، وسيؤدي هذا إلى إنشاء حالة مع مؤثرات حركية مرتبطة بالفعل.

إنشاء حالة حركة

أعد تسمية الحالة إلى (Jump).

كرر العملية باستخدام المؤثر الحركي (SK_Muffin_Fall) وأعد تسمية الحالة إلى (Fall).

سيكون لديك الآن ثلاث حالات وهي الخمول (Idle)، والقفز (Jump)، والسقوط (Fall).

مخطط آلات الحركة

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

قم بإنشاء الانتقالات التالية:

  • الخمول (Idle) إلى القفز (Jump)
  • القفز (Jump) إلى السقوط (Fall)
  • السقوط (Fall) إلى القفز (Jump)
  • السقوط (Fall) إلى الخمول (Idle)
ربط آلات الحركة مع بعضها

الآن بعد أن حصلت على الانتقالات، تحتاج إلى تحديد متى يمكن أن يحدث الانتقال، ويمكنك القيام بذلك باستخدام قواعد الانتقال (Transition Rules).

قواعد الانتقال (Transition Rules)

يمثل هذا الرمز قاعدة انتقالية:

رمز القاعدة الانتقالية

تحتوي كل قاعدة انتقال على عقدة نتيجة (Result) بمدخل منطقي واحد.

عقدة نتيجة

إذا كان هذا الإدخال صحيحاً، يمكن أن يحدث انتقال.

بعد ذلك، ستقوم بإنشاء متغيرات تخبرك إذا كان اللاعب يقفز أو يسقط، وستستخدم بعد ذلك هذه المتغيرات في قواعد الانتقال (Transition Rules).

التحقق مما إذا كان اللاعب يقفز أم يسقط

قم بإنشاء متغيرين منطقيين وسميهما (IsJumping) و (IsFalling).

أولاً، ستقوم بتعيين قيمة (IsJumping)، ومن أجل ذلك قم بالتبديل إلى مخطط الأحداث (Event Blueprint) وحدد موقع عقدة حركة تحديث مخطط الأحداث (Event Blueprint Update Animation node)، وتعمل هذه العقدة مثل عقدة (Event Tick).

مخطط الأحداث

للتحقق مما إذا كان اللاعب يقفز، قم بإنشاء الإعداد التالي:

التحقق من قفز اللاعب

سيتحقق هذا مما إذا كانت سرعة اللاعب على المحور Z أكبر من 0، وإذا كانت كذلك، فإن اللاعب يقفز وسيتم ضبط (IsJumping) على (true).

ملاحظة: تأكد من الإرسال إلى الفئة التي ستستخدم مخطط المؤثرات الحركية (Animation Blueprint)، وهذا أمر بالغ الأهمية في القدرة على معاينة المتغيرات الخاصة بك باستخدام محرر معاينة المؤثرات الحركية (Anim Preview Editor).

للتحقق مما إذا كان اللاعب يسقط، ما عليك سوى إجراء الفحص المعاكس، ومن أجل ذلك أضف العقد المميزة (highlighted nodes):

التحقق من قفز اللاعب 2

الآن، سيتم ضبط (IsFalling) على (true) إذا كانت سرعة اللاعب على المحور Z أقل من 0.

حان الوقت لاستخدام هذه المتغيرات لتحديد قواعد النقل.

تحديد قواعد الانتقال (Transition Rules)

أولاً، ستحدد قاعدة الانتقال من الخمول (Idle) إلى القفز (Jump)، ومن أجل ذلك عُد إلى آلة حالة الحركة، وانقر نقراً مزدوجاً على (Idle to Jump Transition Rule) لفتحه.

تحديد قواعد الانتقال

قم بإنشاء عقدة (IsJumping) وقم بتوصيلها بعقدة النتيجة (Result node).

إنشاء عقدة القفز

الآن، يمكن أن تنتقل حالة الخمول (Idle) إلى حالة القفز (Jump) عندما تكون يأخذ المتغير (IsJumping) قيمة (true).

كرر العملية للقواعد من القفز (Jump) إلى السقوط (Fall) ومن السقوط (Fall) إلى القفز (Jump)، واستخدم المتغيرات التالية:

  • القفز (Jump) إلى السقوط (Fall): (IsFalling).
  • السقوط (Fall) إلى القفز (Jump): (IsJumping).
الانتقال من القفز إلى السقوط وبالعكس

الآن، يمكن لحالات القفز (Jump) والسقوط (Fall) الانتقال إلى بعضها البعض.

لا تزال هناك قاعدة انتقالية واحدة متبقية لتعريفها، اذهب وافتح قاعدة السقوط (Fall) إلى الخمول (Idle).

قواعد حالة الخمول

للانتقال إلى حالة الخمول (Idle)، لا يمكن للاعب القفز (Jump) أو السقوط (Fall)، ولإجراء هذا الفحص، يمكنك استخدام عقدة (NOR)، ولن تعود هذه العقدة صحيحة إلا إذا كان كل من المدخلان الخاصين بها خاطئين (false).

قم بإنشاء عقدة (NOR) وقم بتوصيل عقدة (IsJumping) و (IsFalling) بها، وبعد ذلك، قم بتوصيل عقدة (NOR) بعقدة النتيجة (Result).

عقدة نور

الآن، يمكن أن تنتقل حالة السقوط (Fall) إلى حالة الخمول (Idle) عندما يكون (IsJumping) و (IsFalling) خاطئين (false).

انقر فوق (Compile) ثم ارجع إلى المحرر الرئيسي، واضغط تشغيل (Play) لاختبار الانتقالات.

ختبار الانتقالات

ملاحظة: يمكنك أيضاً اختبار الانتقالات عن طريق تحرير المتغيرات (variables) في محرر معاينة للمؤثرات الحركية (Anim Preview Editor).

في الوقت الحالي، تنزلق الكعكة عندما تتحرك على الأرض، وهذا لأنك لم تستخدم المؤثرات الحركية للمشي بعد!

وبدلاً من إنشاء حالة جديدة للمشي، يمكنك مزجها مع المؤثرات الحركية للحالة الخاملة (Idle) باستخدام (Blend Space).

ما هو بليند سبيس (Blend Space)؟

هو نوع من أصول المؤثرات الحركية (animation asset)، ويعمل على المزج بين المؤثرات الحركية المختلفة بناءً على قيم الإدخال. في هذا البرنامج التعليمي، ستستخدم سرعة اللاعب (player’s speed) كمدخل.

بليند سبيت

يمكن أن يُساعد بليند سبيس (Blend Spaces) أيضاً في تبسيط آلات الحالة الخاصة بك، وإليك ما ستبدو عليه آلة حالة الحركة إذا لم تستخدم بليند سبيس (Blend Spaces) للمشي:

بليند سبيس 1

باستخدام بليند سبيس (Blend Spaces)، كل ما عليك فعله هو استبدال المؤثرات الحركية الخاملة.

بليند سبيس 3

الآن بعد أن تعرفت على سحر الآن بعد أن تعرفت على سحر بليند سبيس (Blend Spaces)، فلنقم بإنشاء واحدة.

إنشاء بليند سبيس (Blend Spaces)

انتقل إلى مستعرض المحتوى (Content Browser) وانقر فوق إضافة جديد (Add New)، وحدد (Animation\Blend Space 1D).

ملاحظة: الفرق بين بليند سبيس (Blend Space) و (Blend Space 1D) هو أن الأول يمكن أن يكون له مدخلين، وهذا الأخير يمكن أن يكون له واحد فقط.

من النافذة المنبثقة، حدد (SK_Muffin_Skeleton).

إنشاء يلبيند سبيس

أعد تسمية الأصل إلى (BS_IdleWalk) ثم انقر نقراً مزدوجاً فوقه لفتحه في محرر المؤثرات الحركية (Animation editor).

عندما تفتح بليند سبيس (Blend Space)، سترى لوحة الموضحة في الصورة أدناه، وهذا هو محرر بليند سبيس (Blend Space editor) وهذا هو المكان الذي ستضيف فيه المؤثرات الحركية الخاصة بك.

إعادة تسمية بليند سبيس

دعونا نضيف بعض المؤثرات الحركية إلى بليند سبيس (Blend Space).

إضافة المؤثرات الحركية (Animations) إلى بليند سبيس (Blend Space)

أولاً، ستقوم بتغيير اسم قيمة المحور (الإدخال)، انتقل إلى لوحة تفاصيل الأصول (Asset Details panel) وحدد موقع قسم إعدادات المحور (Axis Settings section)، قم بتغيير (Horizontal Axis\Name property) إلى السرعة (Speed).

الآن، ستقوم بإضافة المؤثرات الحركية (animations)، انتقل إلى مستعرض الأصول (Asset Browser) وانقر واسحب المؤثر الحركي (SK_Muffin_Idle) وانقله إلى الجانب الأيسر من شبكة (Blend Space) بحيث يستقر على القيمة (0.0)، وحرر زر الماوس الأيسر لإضافة المؤثر الحركي.

إضافة المؤثرات الحركية إلى بليند سبيس

ملاحظة: لعرض أسماء المؤثرات الحركية، اضغط على أيقونة التسمية (label icon) في أعلى يسار شبكة (Blend Space).

بعد ذلك، أضف المؤثر الحركي (SK_Muffin_Walk) بقيمة 100.0.

بليند سبيس 4

الآن، سيقوم (Blend Space) بمزج المثرات الحركية الخاملة (idle) والمشي (walk) اعتماداً على قيمة الإدخال.

فإذا كان الإدخال 0، فسيتم تشغيل المؤثرات الحركية الخاملة (idle) فقط، وإذا كان الإدخال 100، فسيتم تشغيل المؤثرات الحركية للمشي (walk) فقط، وأي شيء في المنتصف سيكون مزيجاً.

ملاحظة: هذه القيم عشوائية، وعلى سبيل المثال، يمكنك تغيير الحد الأقصى للقيمة إلى 500، وسيؤدي ذلك إلى تشغيل المؤثرات الحركية للمشي بسرعات أعلى فقط.

يمكنك تغيير القيم الموجودة ضمن قسم إعدادات المحور (Axis Settings) في لوحة تفاصيل الأصول (Asset Details).

حان الوقت لاستخدام (Blend Space).

استخدام بليند سبيس (Blend Spaces)

أغلق (BS_IdleWalk) ثم افتح (ABP_Muffin)، وقم بالتبديل إلى (Locomotion State Machine) ثم افتح حالة الخمول (Idle).

أولاً، احذف عقدة (Play SK_Muffin_Idle).

بعد ذلك، أضف (BS_IdleWalk Blend Space) باستخدام طريقة السحب والإفلات، وبعد ذلك، قم بتوصيل عقدة (BS_IdleWalk) بعقدة (Final Animation Pose).

استخدام بليند سبيس

الآن، سيتم تشغيل (BS_IdleWalk) تلقائياً لأنها الحالة الافتراضية، ومع ذلك، فإنه سيظهر فقط المؤثرات الحركية الخاملة، وهذا لأن إدخال السرعة الخاص به يبقى عند 0.

ولإصلاح ذلك، تحتاج إلى تزويده بسرعة اللاعب.

الحصول على سرعة اللاعب

قم بإنشاء متغير (float) جديد يسمى السرعة (Speed)، وبعد ذلك، قم بالتبديل إلى مخطط الأحداث (Event Graph).

أضف دبوس جديد إلى عقدة التسلسل (Sequence) ثم أضف العقد المميزة (highlighted) إليها:

الحصول على سرعة اللاعب

سيعمل هذا الإعداد باستمرار على ضبط متغير السرعة (Speed variable) على سرعة اللاعب.

عُد إلى الرسم البياني لحالة الخمول (Idle state’s graph)، وقم بتوصيل متغير السرعة (Speed variable) بمدخل السرعة (Speed) لعقدة (BS_IdleWalk).

مزج المؤثرات

الآن، سيتمكن (BS_IdleWalk) من المزج بين المؤثرات الحركية في وضع الخمول (idle) والمشي (walk).

انقر فوق (Compile) ثم ارجع إلى المحرر الرئيسي، واضغط على تشغيل (Play) لاختبار (Blend Space).

اختبار مزج المؤثرات

هناك مؤثرات حركية أخرى لا تزال بحاجة إلى استخدامها، وهي المؤثرات الحركية للموت.

استخدام المؤثر الحركي للموت

في هذه اللعبة، يمكنك أن تموت فقط وأنت في حالة الخمول (idle) على الأرض، ومع ذلك، فلنتخيل أنك قد تموت من أي حالة، قد تكون فكرتك الأولى هي إنشاء حالة الموت وربط كل حالة بها، وعلى الرغم من أن هذا يعد خياراً، إلا أنه يمكن أن يؤدي سريعاً إلى رسم بياني فوضوي.

رسم بياني فوضوي

ويكمن الحل باستخدام (Blend Poses) بواسطة العقدة المنطقية (bool)، ويمكن لهذه العقدة التبديل بين مؤثرين حركيين بناءً على قيمة الإدخال المنطقي.

وقبل إنشاء واحدة، تحتاج إلى متغير يحمل حالة وفاة اللاعب.

التحقق مما إذا كان اللاعب ميتاً

ارجع إلى (ABP_Muffin) وأنشئ متغير منطقي باسم (IsDead)، وبعد ذلك، قم بالتبديل إلى مخطط الأحداث (Event Graph).

أضف دبوس جديد إلى عقدة التسلسل (Sequence) ثم أضف العقد المميزة (highlighted) إليها:

التحقق مما إذا كان اللاعب ميتاً

سيؤدي هذا إلى تعيين المتغير (IsDead) اعتماداً على حالة وفاة اللاعب.

بعد ذلك، ستستخدم (Blend Poses) بواسطة العقدة المنطقية (bool).

استخدام Blend Poses بواسطة العقدة المنطقية (bool)

قم بالتبديل إلى المخطط البياني للمؤثرات الحركية (Anim Graph) وأضف المؤثر الحركي (SK_Muffin_Death)، مع تحديده، انتقل إلى لوحة التفاصيل (Details panel) وقم بإلغاء تحديد خاصية (Loop Animation).

عقدة منطقية

سيؤدي هذا إلى التأكد من تشغيل المثرات الحركية للموت (death animation) مرة واحدة فقط.

بعد ذلك، قم بإنشاء Blend Poses بواسطة العقدة المنطقية (bool).

إنشاء بليند بوس

مع تحديد Blend Poses بواسطة العقدة المنطقية (bool)، انتقل إلى لوحة التفاصيل (Details panel)، وضمن قسم الخيار (Option section)، تحقق من تنشيط خاصية (Reset Child).

تفاصيل العقدة المنطقية

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

أخيراً، أضف متغير (IsDead) وقم بتوصيل كل شيء مثل:

المتغير ميت

الآن، إذا كان (IsDead) بوضع (true)، فسيتم تشغيل المؤثر الحركي للموت، وإذا كان (IsDead) على وضع (false)، فسيتم تشغيل المؤثرات الحركية الحالية لـ (Locomotion State Machine).

انقر فوق (Compile) ثم أغلق (ABP_Muffin)، واضغط على تشغيل (Play) واختبر المؤثر الحركي الجديد للموت!

الشكل النهائي للعبة
المصدر
هنا

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.