top of page
طريقة إضافة العدو والأنيميشن
1- علينا أولاً بإضافة الأعداء ويمكننا الحصول على الأعداء من هذا الرابط
https://zerie.itch.io/tiny-rpg-character-asset-pack
ونقوم بعدها بإستيراد ملف Orc الذي حملناه الى داخل content في الأنريل إنجن


2- اضغط على sprite actions ثم apply paper 2d texture settings
3- علينا الآن أن نقوم بإنشاء ملف لكل نمط حركة ونسمي الملفات على اسم الشخصية ونمط الحركة


4- نقوم بعمل extract sprites لجميع انماط الحركة في جميع الملفات بنمط auto



5- نقوم بإنشاء انيميشن flipbook لجميع أنماط الحركة



6- علينا الآن بإنشاء ملفاً يدعى بمصدر الأنيميشن نستطيع أن نحفظ فيه جميع الأنيميشن اللتي نريدها للعدو (animationsource) ونسميه allanimationorc

7- نقوم الآن بإنشاء animation sequence في داخل animation source ونقوم بوضع جميع flipbooks التي أنشأناها سابقاً ( idle, walk, attack1)

8- نقوم الآن بإنشاء animation bp ونسميه animationbp_orc
paper zd animation bp : التحكم في الأنيميشن وبرمجته( البلوبرنت الخاص بالانيميشن)

9- قبل أن نبدأ بتفعيل الأنيميشن للعدو ووضع البرميجات الازمة علينا بإنشاء الشخصية ونسميها bp_orc ونضع نمط الحركة الإفتراضي idle
source flipbook: idle



10- الآن سنقوم بنفس الخطوات لوضع الأنيميشن والتحكم بشخصية char_blue
الشرح في الدرس الثامن



11- علينا الآن بالتوجه إللى بلوبرنت الشخصية bp_orc ثم إلى event graph
وسنقوم بإنشاء برمجية تدعى بالحدث المخصص (custom event)
الحدث المخصص: هو حديث نقوم بإستدعائه بأي وقت ولكل حدث غرض معين
سنقوم بجعل الحدث المخصص الذي أنشأناه ان يقوم بالتحكم بحركة الشخصية في محور X
لذلك فسنسميه handlingmovement

12- اضافة النقطة( add movement input): اضافة الحركات التي ستعمل عند تحقق المدخل في داخل النقطة علينا أن نغير قيمة X من 0 إلى 1 لكي تتحرك الشخصية في محور X
ونضع القيمة 1 في محور X حتى تتحرك الشخصية يميناً ويساراً

قيمة المقياس (scale value): يقوم بالتحكم بإتجاه العدو
لذلك فما علينا فعله الآن هو بإنشاء متغير variable من قيمة scale لكي نحفظ قيمته ونستطيع إستدعائه بأي وقت نريد.
13- نقوم بالضغط بالفارة اليسار على متغير scale value ونقوم بترقيته إلى قيمة جديدة محفوظة ونسميه movedirection
ونضع علامة صح عند instance editable و expose on spawn حتى يتسنى لنا تغيير قيمة الإتجاه في أي وقت نريد

14- سنقوم بربط الحدث (event tick) مع الحدث المخصص الجديد الذي أنشأناه (handlingmovement)
event tick حدث يقوم بالعمل فوراً عند التشغيل مباشرةً

ما قمنا بفعله حتى الآن هو أننا إستطعنا إنشاء حدث مخصص يدعى handlingmovement يقوم بالتحكم في حركة الشخصية في محور X
إن قمنا بزيادة قيمة scale value بالموجب فستتحرك الشخصية بشكل أسرع يميناً وإن قمنا بوضع قيمة العداد بالسالب فستقوم الشخصية بالحركة يساراً عند بدء اللعب ولكن..
المشكلة أن شخصية العدو التي أنشأناها دائماً مواجهة لليمين ونحن نريدها عند الذهاب يساراً أن تلتف وجهتها لليسار وعند الذهاب يميناً تلتف وجهتها لليمين
فما علينا فعله الآن هو القيام بإنشاء حدث جديد يقوم بتغيير وجهة العدو عند الذهاب يسارا ويميناً
15- نقوم الآن بإنشاء حدث نسميه handling rotation
16- ونقوم بإستدعاء القيمة التي أنشأناها movedirection حتى نحصل على قيمة إتجاه حركة العدو في محور X
17- نقوم بإنشاء نقطة greater ونقطة branch ونقطة set actor rotation
ستقوم تلك النقاط بإختصار بعمل الآتي:
سيقوم الحدث بأخذ قيمة إتجاه العدو من خلال القيمة movedirection وفي حال كانت قيمة إتجاه العدو أكبر من 0 سيواجه العدو إتجاه اليمين وإن كانت قيمة إتجاه العدو أقل من 0 فستلتف الشخصية بزاوية 180 في محور Z.
محور Z هل المسؤول عن الوجهة


نقوم بالضفط على الثلاث نقاط ونغير نمط العب إلى simulate حتى يتسنى لنا رؤية التغييرات والتعديل بنفس الوقت
ونقوم بتغيير قيمة movedirection إلى السالب ونبدأ اللعب حتى يتسنى لنا رؤية التغييرات



bottom of page