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

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

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

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

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

سنقوم تماماً بنفس الخطوات التي فعلناها مع العدو(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) )

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


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

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

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

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

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

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

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

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

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

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

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

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

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

bottom of page