top of page
وضع إعدادات هجوم الاعب

دعونا الآن نضع البرمجيات الازمة لنجعل الشخصية تهاجم بالسيف

1- علينا أولاً أن نقوم بإنشاء flipbook لجعل الشخصية تهجم وسنجد نمط حركة الهجوم في ملف character من رقم 8 الى 13 ونقوم بتسميته char_blueAttack وبعدها ننقله الى ملف flipbook.

image.png

2- نقوم بفتح ملف allanimation لنضع الأنيميشن الخاص بالهجوم

image.png

3- علينا أن نقوم بتحديد لحظة الهجوم بالسيف التي سنلحق بها الضرر في صفحة إطارات الأنيميشن عن طريق الإنتقال إلى اللحظة المثالية للضر وهي في إطار رقم 3
ونضغط بالفارة اليسار ثم add notify (new notify) ونسميه attack
notify
: لحظة الضرر

image.png

4- نقوم الآن بالإنتقال إلى البلوبرنت الخاص بالشخصية ونقوم بإنشاء حدث مخصص
custom event ونسميه attacking.

image.png

5-نقوم بإضافة النقطة line trace for object: تقوم بتحديد خط من بداية حركة الشخصية إلى نهايتها, وسيبدأ مباشرةً بعد الهجوم.

image.png

سنقوم تماماً بنفس الخطوات التي فعلناها مع العدو(orc) 
6- سنقوم بإضافة نقطة get actor location ونشبكها مع start
7- سنقوم بإضافة نقطة get actor forward vector ونشبكها مع end
8- إضافة النقطة multiply التي سنستعملها لنقوم بضرب القيمة التي نريد للخط أن ينتهي عندها ونقوم بشبكها مع get actor forward vector: يقوم بأخذ قيمة حركة العدو من الأمام وقيمتها الإفتراضية هي(1) نقوم بضرب قيمة get actor forward vector بالعدد الذي نريد للخط أن ينتهي عنده مثال (50)
نحن لا نريد سوى أن نجعل الشخصية تتحرك يميناً أو يساراً أي يعني في محور X فقط
9 لذلك فعلينا أن نضغط بالفارة اليسار على المحاور ثم نضغط split struct pin لكي نستطيع تقسيم حركة الشخصية على جميع المحاور
10- نقوم بإضافة النقطة add التي بها سنقوم بجمع القيمة الأمامية الحركية للعدو get actor forward vector مع قيمة تواجد العدو get actor location.
10- object types: ما هي نوع الأشياء التي تريد للخط أن يتعقبها(سنجعل الشخصية تتعقب الشخصيات الأخرى)
(
make array(pawn)
actors to ignore: ما هي نوع الأشياء التي تريد للخط أن يتجاهلها(سنجعل الشخصية تتجاهل نفسها عن طريق إستدعاء النقطة (make array(get player character) )

image.png

Out Hit: تعطي تفاصيل كل ما ستهاجمه الشخصية
11- نخرج نقطة من Out Hit وهي break hit result 
break hit result: تقوم بتقسيم انواع الإصابة

image.png
image.png

12- نريد أن نجعل الشخصية تهاجم الشخصيات الأخرى لذلك نخرج من hit actor نقطة تدعى apply damage ونجعل قيمتهاتقوم بإلحاق الضرر بأي شخصية أخرى(actor) ثم نقوم بتوصيلها مع line trace for object  

image.png

13- الآن علينا الإنتقال لملف البلوبرنت الخاص بالأنيميشن لكي نضع الأنيميشن الخاص بالهجوم(animation_bp) وسنجد عند قائمة (functions) إطار حركة الهجوم الذي أنشأناه سابقاً ونقوم بالضغط عليه.

image.png

14- نقوم بإستدعاء المتغير الخاص بالشخصية bp_char ونقوم بإستدعاء الحدث المخصص(attacking
ما سيحصل هو أنه في حال حدوث إطار الأنيميشن الذي أنشأناه
recieve notify: attack فقم  بتشغيل برمجيات الحدث المخصص(attacking).

image.png

15- نقوم بالإنتقال إلى صفحة AnimGraph  ثم all animation

image.png

16-لأننا سننتقل من أي حالة إلى حالة attacking فهناك شئ يمكننا إضافته يدعى (jump node) يجعلنا نقفز من أي حالة بضغطة زر, فعندما نضغط بالفارة اليسار فسيظهر لنا في آخر القائمة Jump ونقوم بتسميته attackingevent 
17- نخرج من نقطة القفز الحالة (animation state) التي نريدها أن تعمل(attack) في حال تحقق jump node ونسميها attack.

image.png

18-في داخل الحالة attack نضع Play attack

image.png

19- نشبك حالة attack مع حالتي idle و jump لكي نستطيع أن نجعل الشخصية ترجع إلى نمط حركة الثبات بعد الهجوم

image.png

20- علينا بالكتابة في مربع البحث time remaining وسظهر تلقائياً time remaining(attack)
time remaining: هو الوقت المتبقي حتى ينتهي الأنيميشن, فيه نستطيع تحديد الوقت المتبقي حتى ننتقل من حالة attack إلى حالة idle/run  

 21- نضع less لكي نحصل على الوقت المتبقى للإندفاع في آخر 0.1 ثانية

image.png

انتهينا من بلوبرنت الأنيميشن الآن سننتقل لبلوبرنت الشخصية الأساسي ولكن قبل أن ننتقل علينا أن نضع الإعدادات الازمة لمجعل الشخصية تهاجم (attack) عند ضغطنا على زر F ولفعل ذلك:

22- علينا أولاً بإنشاء مدخلاً(input) ونسميه attack

image.png

23- نجعل قيمة المدخل axis1D float
24-نتجه إلى داخل الملف الذي يحمل جميع المدخلات وهو allmovement
25- نضغط add action mapping ونضع المدخل attack

image.png

26-علينا بالتوجه إلى بلوبرنت الشخصية bp_char وإستدعاء مدخل attack

image.png

27-نقوم بإنشاء نقطة do once لكي لا نقوم بالهجوم الى ما لانهاية
28- علينا الآن أن نقوم بإستدعاء أنيميشن القفز الذي أنشأناه في بلوبرنت الأنيميشن(jump node)
ويمكننا فعل ذلك عن طريق استدعاء الأنيميشن الخاص بالشخصية(animation component)

image.png

29- ثم نستدعي نقطة anim instance الخاصة بصفحة بلوبرنت الأنيميشن لكي نستطيع إستدعاء نقاط القفز(jump node) الخاص بالهجوم

30- ثم نستدعي نقطة anim instance الخاصة بصفحة بلوبرنت الأنيميشن لكي نستطيع إستدعاء نقاط القفز(jump node) الخاص بالهجوم
ونقوم بتسمية jump node بالأسم الذي وضعناه سابقاً 
attackingevent
وننشأ نقطة delay حتى نجعل بين كل ضربة وضربة 0.5 ثانية.

image.png
bottom of page