-->
random

آخر المواضيع

random
recent
جاري التحميل ...
recent

شرح صناعة الالعاب في برنماج انرل انجن بدون لغة برمجة


شرح صناعة الالعاب في برنماج انرل انجن بدون لغة برمجة



سنتعرف على اساسيات التصميم


لإعطاء الأوامر للشخصية وتحديد القواعد باستخدام Blueprint في Unreal Engine، يمكنك اتباع الخطوات التالية:
الخطوة 1: إنشاء مشروع جديد

افتح Epic Games Launcher وانتقل إلى قسم "Unreal Engine".
اختر "Launch" لتشغيل Unreal Engine.
في نافذة "Unreal Project Browser"، اختر "Games" ثم "Third Person" أو "First Person" كقالب (template) لمشروعك.
اضغط على "Next"، ثم اختر الإعدادات المناسبة لمشروعك، وانقر على "Create Project".

الخطوة 2: إنشاء Blueprint للشخصية

في Content Browser، اذهب إلى المجلد الذي يحتوي على الـBlueprints الافتراضية للشخصية. على سبيل المثال، إذا استخدمت قالب "Third Person"، اذهب إلى Content -> ThirdPersonBP -> Blueprints.
افتح Blueprint الخاص بالشخصية (عادةً يكون اسمه ThirdPersonCharacter أو ما شابه).

الخطوة 3: إضافة الأوامر الأساسية

إضافة الحركات الأساسية:

انتقل إلى تبويب Event Graph.
استخدم العقد التالية لإضافة حركات أساسية للشخصية:Event Begin Play: هذه العقدة تُنفذ عند بداية تشغيل اللعبة.
Event Tick: هذه العقدة تُنفذ في كل إطار، يمكن استخدامها لتحديثات مستمرة.
InputAxis MoveForward وInputAxis MoveRight: هذه العقد تُستخدم للتحكم في حركة الشخصية للأمام وللخلف ولليسار ولليمين.

مثال على إعداد الحركات:


                                              InputAxis MoveForward
- Add Movement Input (with Forward Vector)
                                                    InputAxis MoveRight
- Add Movement Input (with Right Vector)

الخطوة 4: إضافة الأوامر التفاعلية

إضافة القفز:ابحث عن InputAction Jump في تبويب Event Graph.
استخدم العقدة InputAction Jump لتفعيل أوامر القفز.

مثال 

- - InputAction Jump (Pressed)

- Jump

- InputAction Jump (Released)

- Stop Jumping



إضافة الأوامر الأخرى:

يمكنك إضافة أوامر أخرى بنفس الطريقة باستخدام عقد الإدخال المناسبة مثل InputAction Fire لإطلاق النار، وهكذا.

الخطوة 5: تحديد القواعد والخصائص

إضافة المتغيرات:

في جزء المتغيرات (Variables)، يمكنك إضافة متغيرات جديدة لتخزين القواعد والخصائص مثل الصحة (Health)، الطاقة (Stamina)، إلخ.


إعداد القواعد:

يمكنك استخدام العقد الشرطية مثل Branch للتحقق من حالات معينة وتحديد قواعد اللعبة.

على سبيل المثال، للتحقق من صحة الشخصية:
                                                                                   Event AnyDamage 
-                                            Set Health (Health - Damage Amount) 
-                                                                     Branch (If Health <= 0)
 -                                          True: Trigger Death Sequence 
-                                                   False: Continueplaintext


الخطوة 6: اختبار اللعبة

احفظ التغييرات في Blueprint.
اضغط على زر "Play" في Unreal Engine لاختبار اللعبة والتأكد من أن الأوامر والقواعد تعمل كما هو متوقع.

الخطوة 7: تحسين اللعبة

يمكنك تحسين اللعبة بإضافة المزيد من الأوامر والتفاعلات.



لإضافة الأعداء إلى لعبتك 
في Unreal Engine باستخدام Blueprints، يمكنك اتباع الخطوات التالية:

الخطوة 1: إنشاء Blueprint لفئة العدو

إنشاء Blueprint جديد:

في Content Browser، انقر بزر الماوس الأيمن واختر Blueprint Class.
اختر Character كفئة للـ Blueprint الجديد. قم بتسمية Blueprint مثلاً BP_Enemy.


تعديل خصائص العدو:

افتح BP_Enemy وقم بإضافة مكونات مثل Static Mesh أو Skeletal Mesh لتمثيل الشكل الفيزيائي للعدو.
أضف مكونات أخرى حسب الحاجة مثل Collision Component أو Particle System لتأثيرات خاصة.

الخطوة 2: إعداد سلوك العدو

إضافة الحركات الأساسية للعدو:
انتقل إلى تبويب Event Graph في BP_Enemy.
استخدم العقد مثل Event Begin Play و Event Tick لتحديد سلوك العدو.

مثال:
 إذا كنت تريد أن يتحرك العدو باتجاه اللاعب: 
 

-                          Event Tick 
- Get Player Character
 - Get Actor Location (Enemy) 
- Get Actor Location (Player) 
- Vector Subtraction (Player Location - Enemy Location)
 - Normalize Vector
 - Add Movement Input (Normalized Vector)


إضافة وظائف إضافية:

يمكنك إضافة وظائف إضافية مثل الهجوم، المطاردة، أو الهروب باستخدام العقد الشرطية والوظائف الأخرى في Blueprint.

مثال: الهجوم عندما يكون اللاعب قريبًا:


-                                                         Event Tick
 -                       Get Distance to Player 
- Branch (If Distance < Attack Range) 
- True: Play Attack Animation 
-      Apply Damage to Player



الخطوة 3: إعداد السلوك الذكي للعدو (AI)

إضافة AI Controller:

قم بإنشاء Blueprint جديد من فئة AIController وسميه مثلاً BP_EnemyAI.
في BP_Enemy, انتقل إلى تبويب Class Defaults، وفي قسم Pawn, قم بتعيين AIController Class إلى BP_EnemyAI.


إعداد سلوك AI باستخدام Behavior Tree:

قم بإنشاء Behavior Tree و Blackboard.
في Behavior Tree، حدد عقد لأفعال العدو مثل المطاردة، الهجوم، الدوران، إلخ.
في Blackboard، قم بتحديد المفاتيح (Keys) التي ستستخدم لتخزين البيانات مثل موقع اللاعب.

الخطوة 4: وضع الأعداء في المستوى (Level)

إضافة الأعداء إلى المستوى:

اسحب BP_Enemy من Content Browser وضعه في المستوى (Level).
قم بتكرار هذه الخطوة لإضافة عدد الأعداء الذي تريده.


اختبار الأعداء:
اضغط على زر Play في Unreal Engine لاختبار اللعبة ومراقبة سلوك الأعداء.

الخطوة 5: تحسين سلوك العدو

تحسين سلوك الحركة والهجوم:

استخدم أدوات Unreal Engine لتحسين سلوك الحركة والهجوم مثل NavMesh لإعداد التنقل (Navigation).
قم بتجربة ضبط القيم والمعايير في Behavior Tree و AI Controller لتحسين تجربة اللعب.


إضافة ردود الفعل والتفاعلات:

أضف ردود فعل للعدو عند الإصابة أو الموت، واستخدم الأحداث مثل OnTakeAnyDamage و OnDeath لتحديد السلوكيات المناسبة.




لجعل الشخصية تموت إذا سقطت من ارتفاع معين وإضافة شريط الصحة (Health Bar) باستخدام Blueprints في Unreal Engine، يمكنك اتباع الخطوات التالية:

الجزء الأول: جعل الشخصية تموت عند السقوط من ارتفاع

إضافة متغير الصحة (Health) إلى الشخصية:

افتح Blueprint الخاص بالشخصية (مثل ThirdPersonCharacter).
في قسم Variables، أضف متغيرًا جديدًا من نوع float وسمّه Health.
حدد القيمة الافتراضية للمتغير Health إلى القيمة المناسبة (مثل 100.0).


إعداد التحقق من السقوط:
في Event Graph، ابحث عن الحدث Event OnLanded (يتم استدعاؤه عندما تلامس الشخصية الأرض بعد القفز أو السقوط).
أضف العقد التالية:Get Velocity (احصل على سرعة الشخصية عند الهبوط).
Vector Length (احسب طول متجه السرعة للحصول على السرعة الفعلية).
Branch (تحديد شرط للتحقق من إذا ما كانت السرعة أكبر من قيمة معينة).
إذا كانت السرعة أكبر من القيمة المحددة، قم بتقليل متغير Health بمقدار معين أو قم بتعيينها إلى صفر.

مثال على الإعداد:

-                                                              Event OnLanded 
-                                                              Get Velocity 
-                                                          Vector Length 
-       Branch (If Length > Fall Damage Threshold) 
-     True: Set Health (Health Damage Amount) 
-                                     Branch (If Health <= 0) 
-               True: Trigger Death Sequence

تفعيل عملية الموت:

في العقدة التي تحقق من إذا ما كانت الصحة أقل من أو تساوي الصفر، يمكنك استدعاء دالة لإحداث عملية الموت.
يمكنك استخدام Play Animation لتشغيل حركة الموت، ثم استخدام Destroy Actor لإزالة الشخصية من اللعبة.

الجزء الثاني: إضافة شريط الصحة (Health Bar)

إنشاء واجهة المستخدم (UI):

في Content Browser، انقر بزر الماوس الأيمن واختر User Interface ثم Widget Blueprint وسمّه HealthBar.


تصميم واجهة المستخدم:

افتح HealthBar Widget.
أضف عنصر Progress Bar إلى واجهة المستخدم وصممه ليكون شريط الصحة.يمكنك أيضًا إضافة نصوص أو عناصر أخرى حسب الرغبة.




ربط شريط الصحة بالصحة الفعلية للشخصية:

في HealthBar Widget، أضف رابط (Binding) لقيمة Progress Bar.
استخدم Event Tick أو دالة مخصصة لتحديث قيمة شريط الصحة بناءً على متغير Health في الشخصية.

مثال الربط

-                                                                          Event Tick
-                                               Get Player Character
-                             Cast to YourCharacterBlueprint
-                                                                 Get Health
-  Set Percent (Progress Bar) (Health / MaxHealth)


إضافة واجهة المستخدم إلى الشاشة:

افتح Blueprint الخاص بالشخصية.
في Event Begin Play، أضف العقد التالية:
Create Widget (أنشئ واجهة المستخدم).
Add to Viewport (أضف واجهة المستخدم إلى الشاشة).

مثال
-                                      Event Begin Play 
- Create Widget (Class: HealthBar) 
-                              Add to Viewport

الخطوة الأخيرة: اختبار اللعبةاحفظ جميع التغييرات.

اضغط على زر Play في Unreal Engine لاختبار اللعبة والتأكد من أن شريط الصحة يعمل بشكل صحيح وأن الشخصية تموت عند السقوط من ارتفاع كبير.

باتباع هذه الخطوات، ستتمكن من إضافة ميزة الموت عند السقوط من ارتفاع كبير وإضافة شريط الصحة لشخصيتك باستخدام Blueprints في Unreal Engine


لإضافة الأسلحة، وميزة التقاط السلاح، وشريط الحياة للشخصية والعدو، وتنفيذ ميزة القتال بين الشخصية والعدو عند الرؤية باستخدام Blueprints في Unreal Engine، يمكنك اتباع الخطوات التالية:

الجزء الأول: إضافة الأسلحة

إنشاء Blueprint للسلاح:

في Content Browser، انقر بزر الماوس الأيمن واختر Blueprint Class.
اختر Actor كفئة للـ Blueprint الجديد وسمه BP_Weapon.
افتح BP_Weapon وأضف مكونات مثل Static Mesh أو Skeletal Mesh لتمثيل شكل السلاح.


إضافة وظائف السلاح:

في Event Graph، أضف وظائف مثل إطلاق النار (Fire) وإعادة التلقيم (Reload).
يمكنك استخدام عقد مثل InputAction Fire لربط الأحداث بأزرار الإدخال.

الجزء الثاني: التقاط السلاح

إضافة Box Collision للسلاح:

في BP_Weapon، أضف مكون Box Collision.
في خصائص Box Collision، تأكد من تعيين إعدادات التصادم لتكون مناسبة للكشف عن التفاعل مع الشخصية.


إضافة وظيفة الالتقاط:

في BP_Weapon، في Event Graph، أضف العقد التالية:
Event Begin Overlap للـ Box Collision.
تحقق من نوع الممثل الذي دخل في نطاق التصادم (إذا كانت الشخصية).
إذا كانت الشخصية، قم بنقل السلاح إلى الشخصية وتعطيل التصادم.

مثال
-                                                     OnComponentBeginOverlap (Box Collision) 
-                                                                       Cast to YourCharacterBlueprint 
- Attach Actor to Component (Parent: Character's Mesh                                Socket:WeaponSocket) 
-                                                               Set Collision Enabled (No Collision)






الجزء الثالث: إضافة شريط الحياة (Health Bar) للشخصية والعدو

إنشاء Widget لشريط الحياة:

في Content Browser، انقر بزر الماوس الأيمن واختر User Interface ثم Widget Blueprint وسمه HealthBar.


تصميم واجهة المستخدم:

افتح HealthBar Widget.
أضف عنصر Progress Bar لتمثيل شريط الحياة.
يمكنك إضافة نصوص أو عناصر أخرى حسب الرغبة.


ربط شريط الحياة بالصحة الفعلية:

في HealthBar Widget، أضف رابط (Binding) لقيمة Progress Bar.
استخدم Event Tick أو دالة مخصصة لتحديث قيمة شريط الحياة بناءً على متغير Health في الشخصية أو العدو.

مثال

-                                                                       Event Tick
-                                               Get Player Character
-                             Cast to YourCharacterBlueprint
-                                                                Get Health
- Set Percent (Progress Bar) (Health / MaxHealth)

إضافة واجهة المستخدم إلى الشاشة:


افتح Blueprint الخاص بالشخصية وBlueprint الخاص بالعدو.
في Event Begin Play، أضف العقد التالية:
Create Widget (أنشئ واجهة المستخدم).
Add to Viewport (أضف واجهة المستخدم إلى الشاشة).


مثال

-                                       Event Begin Play
- Create Widget (Class: HealthBar)
-                             Add to Viewport


الجزء الرابع: القتال بين الشخصية والعدو عند الرؤية

إضافة AI Controller للعدو:


قم بإنشاء Blueprint جديد من فئة AIController وسمه BP_EnemyAI.
في BP_Enemy, انتقل إلى تبويب Class Defaults، وفي قسم Pawn, قم بتعيين AIController Class إلى BP_EnemyAI.

إعداد السلوك باستخدام Behavior Tree:

قم بإنشاء Behavior Tree و Blackboard.
في Behavior Tree، أضف عقد لأفعال العدو مثل التجول، المطاردة، والهجوم.
في Blackboard، قم بتحديد المفاتيح (Keys) التي ستستخدم لتخزين البيانات مثل موقع اللاعب.

إعداد رؤية العدو:

في BP_EnemyAI, أضف مكون Pawn Sensing.
إعداد Pawn Sensing للكشف عن اللاعبين عندما يكونون في نطاق الرؤية.
في Event Graph, أضف العقد التالية:
OnSeePawn (عندما يرى العدو اللاعب).
تحديث موقع اللاعب في الـ Blackboard لبدء المطاردة.


مثال:
-                                                                             OnSeePawn (Pawn Sensing)
-                                                                  Cast to YourCharacterBlueprint
- Set Blackboard Value (Key: PlayerLocation, Value: GetActorLocation)




ت نفيذ تنفيذ الهجوم:

 في behavior tree أضف عقدة الهجوم عند اقتراب العدو من اللاعب
 في BP_Enemy, أضف دالة للهجوم تقوم بتقليل صحة اللاعب عند الإصابة

مثال

-                                                  Event Tick
-                        Get Distance to Player
- Branch (If Distance < Attack Range)
-     True: Apply Damage to Player

الخطوة الأخيرة: اختبار اللعبة

احفظ جميع التغييرات.
اضغط على زر Play في Unreal Engine لاختبار اللعبة والتأكد من أن ميزة التقاط السلاح، شريط الحياة، والقتال بين الشخصية والعدو يعملون بشكل صحيح.
باتباع هذه الخطوات، يمكنك إضافة أسلحة، ميزة التقاط السلاح، شريط الحياة للشخصية والعدو، وتنفيذ ميزة القتال بين الشخصية والعدو عند الرؤية باستخدام Blueprints في Unreal Engine

لإضافة عدة أعداء، جعلهم يموتون عندما تطلق عليهم النار، جعل الشخصية تموت عندما ينتهي شريط الصحة، وعرض عبارة "انتهت اللعبة، أعد المحاولة" باستخدام Blueprints في Unreal Engine، اتبع الخطوات التالية:

الجزء الأول: إضافة عدة أعداء

إنشاء Blueprint للعدو:

في Content Browser، انقر بزر الماوس الأيمن واختر Blueprint Class.
اختر Character كفئة للـ Blueprint الجديد وسمه BP_Enemy.
افتح BP_Enemy وأضف مكونات مثل Static Mesh أو Skeletal Mesh لتمثيل شكل العدو.

إضافة صحة العدو:

في BP_Enemy، أضف متغير Health من نوع float وقم بتعيين قيمة افتراضية (مثل 100.0).
أضف دالة TakeDamage تقلل من قيمة الصحة عند الإصابة.

الجزء الثاني: جعل الأعداء يموتون عند إطلاق النار عليهم

إضافة مكونات التصادم:

في BP_Enemy، أضف مكون Capsule Collision حول جسم العدو.
إعداد Capsule Collision للكشف عن التصادم مع الرصاص.

إضافة دالة الاستجابة للإصابة:

في BP_Enemy، في Event Graph، أضف العقد التالية:
OnComponentHit للـ Capsule Collision.
تحقق من نوع الممثل الذي أصاب العدو (إذا كان رصاصة).
تقليل متغير Health بمقدار الضرر.
إذا كانت الصحة أقل من أو تساوي الصفر، استدعاء دالة الموت.

مثال
-                                OnComponentHit (Capsule Collision)
    -                                          Cast to BP_Bullet (رصاصة)
    -             Subtract Health (Health - Damage Amount)
    -                                               Branch (If Health <= 0)
        - True: Trigger Death Sequence (Destroy Actor)

الجزء الثالث: جعل الشخصية تموت عند نفاذ شريط الصحة

إضافة صحة الشخصية:

في BP_Character (الشخصية الرئيسية)، أضف متغير Health من نوع float وقم بتعيين قيمة افتراضية (مثل 100.0).
تقليل الصحة عند الإصابة:

في BP_Character، أضف دالة TakeDamage تقلل من قيمة الصحة عند الإصابة.
تحقق من قيمة الصحة في كل مرة تقل فيها، وإذا كانت أقل من أو تساوي الصفر، استدعاء دالة الموت.

مثال
-                                            Function TakeDamage (Damage Amount)
    -                                   Subtract Health (Health - Damage Amount)
    -                                                                     Branch (If Health <= 0)
        - True: Trigger Death Sequence (Show Game Over Screen)


الجزء الرابع: عرض عبارة "انتهت اللعبة، أعد المحاولة"

إنشاء Widget لـ Game Over:

في Content Browser، انقر بزر الماوس الأيمن واختر User Interface ثم Widget Blueprint وسمه GameOverScreen.

تصميم واجهة المستخدم:

افتح GameOverScreen Widget.
أضف نصًا يعرض عبارة "انتهت اللعبة، أعد المحاولة".
يمكنك إضافة زر لإعادة المحاولة وإعادة تشغيل المستوى.
عرض واجهة المستخدم عند موت الشخصية:

في BP_Character، في دالة الموت، أضف العقد التالية:

Create Widget (أنشئ واجهة المستخدم لـ GameOverScreen).
Add to Viewport (أضف واجهة المستخدم إلى الشاشة).
Set Input Mode UI Only (تغيير وضع الإدخال ليكون واجهة المستخدم فقط).
Show Mouse Cursor (إظهار مؤشر الفأرة).

مثال
-                                       Trigger Death Sequence
    -  Create Widget (Class: GameOverScreen)
    -                                            Add to Viewport
    -                                Set Input Mode UI Only
    -                  Show Mouse Cursor (Set: True)

الجزء الخامس: إعادة المحاولة

إضافة زر إعادة المحاولة:

في GameOverScreen Widget، أضف زرًا بعنوان "أعد المحاولة".
في OnClicked للزر، أضف دالة تعيد تشغيل المستوى الحالي.

مثال
-                                 OnClicked (Retry Button)
    - Open Level (Get Current Level Name)

اختبار اللعبة

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


لإضافة الصوت وتوجيه اللاعب في Unreal Engine باستخدام Blueprints، يمكن اتباع الخطوات التالية:

الجزء الأول: إضافة الصوت

إضافة ملفات الصوت إلى المشروع:

قم بإضافة ملفات الصوت الخاصة بك إلى مجلد Content في مشروع Unreal Engine. يمكنك سحب وإفلات الملفات الصوتية إلى المجلد.
إضافة مكون الصوت للشخصية:

افتح BP_Character (الشخصية الرئيسية).
أضف مكون Audio إلى الشخصية.

تشغيل الصوت عند الأحداث:

في Event Graph، يمكنك استخدام عقدة Play Sound at Location أو Play Sound Attached لتشغيل الصوت عند حدوث أحداث معينة مثل إطلاق النار، القفز، أو الإصابة.

مثال
- Event Fire (عند إطلاق النار)
    - Play Sound at Location (Sound: FireSound, Location: GetActorLocation)

الجزء الثاني: توجيه اللاعب

إعداد الكاميرا والتحكم:

افتح BP_Character.
أضف مكون Camera إلى الشخصية، إذا لم يكن موجودًا بالفعل.
إضافة مكونات التحكم:

في BP_Character، تأكد من وجود مكون Spring Arm المرتبط بالكاميرا لتحسين حركة الكاميرا.
إعداد مدخلات الحركة:

انتقل إلى Project Settings > Input.
أضف محاور الحركة (Axes) مثل MoveForward, MoveRight, Turn, وLookUp.
اربط مفاتيح الإدخال بالمحاور المناسبة (مثل W, A, S, D للحركة والفأرة لتوجيه الكاميرا).
إعداد Blueprints للتحكم بالحركة:

في Event Graph، أضف العقد التالية للتحكم بالحركة:

مثال
- InputAxis MoveForward (Value: Axis Value)
    - Add Movement Input (Direction: Get Actor Forward Vector, Scale Value: Axis Value)

- InputAxis MoveRight (Value: Axis Value)
    - Add Movement Input (Direction: Get Actor Right Vector, Scale Value: Axis Value)

- InputAxis Turn (Value: Axis Value)
    - Add Controller Yaw Input (Value: Axis Value)

- InputAxis LookUp (Value: Axis Value)
    - Add Controller Pitch Input (Value: Axis Value)

مثال عملي لإضافة الصوت وتوجيه اللاعب:

إعداد مدخلات التحكم
Project Settings:

اذهب إلى Edit > Project Settings.
تحت قسم Input، أضف محاور الحركة:
MoveForward: تعيين W إلى 1 و S إلى -1.
MoveRight: تعيين A إلى -1 و D إلى 1.
Turn: تعيين محور الفأرة X.
LookUp: تعيين محور الفأرة Y.
إعداد Blueprints للتحكم بالحركة

تحريك الشخصية:

في BP_Character، أضف العقد التالية في Event Graph:

- InputAxis MoveForward
    - Add Movement Input
        - Target: Self
        - World Direction: Get Actor Forward Vector
        - Scale Value: Axis Value

- InputAxis MoveRight
    - Add Movement Input
        - Target: Self
        - World Direction: Get Actor Right Vector
        - Scale Value: Axis Value

تدوير الكاميرا:

في BP_Character

- InputAxis Turn
    - Add Controller Yaw Input
        - Value: Axis Value

- InputAxis LookUp
    - Add Controller Pitch Input
        - Value: Axis Value

تشغيل الصوت عند الأحداث

إطلاق النار:

افترض أن لديك ملف صوتي باسم FireSound.
في Event Graph للشخصية، أضف العقدة التالية عند حدث إطلاق النار:

- Event Fire
    - Play Sound at Location
        - Sound: FireSound
        - Location: GetActorLocation

إضافة شريط الصحة وتجديد الصحة:
إضافة شريط الصحة:
إنشاء Widget لشريط الصحة:

في Content Browser، انقر بزر الماوس الأيمن واختر User Interface ثم Widget Blueprint وسمه HealthBar.
تصميم واجهة المستخدم:

افتح HealthBar Widget.
أضف عنصر Progress Bar لتمثيل شريط الصحة.
ربط شريط الصحة بالصحة الفعلية:

في HealthBar Widget، أضف رابط (Binding) لقيمة Progress Bar.
plaintext
Copy code
- Event Tick
    - Get Player Character
    - Cast to YourCharacterBlueprint
    - Get Health
    - Set Percent (Progress Bar) (Health / MaxHealth)
إضافة واجهة المستخدم إلى الشاشة:

افتح BP_Character.
في Event Begin Play، أضف العقد التالية:
plaintext
Copy code
- Event Begin Play
    - Create Widget (Class: HealthBar)
    - Add to Viewport
الموت وعرض رسالة "انتهت اللعبة":
دالة الموت:

في BP_Character، أضف دالة Die:
plaintext
Copy code
- Function Die
    - Create Widget (Class: GameOverScreen)
    - Add to Viewport
    - Set Input Mode UI Only
    - Show Mouse Cursor (Set: True)
تحقق من الصحة في دالة TakeDamage:

في BP_Character، عدل دالة TakeDamage:
plaintext
Copy code
- Function TakeDamage (Damage Amount)
    - Subtract Health (Health - Damage Amount)
    - Branch (If Health <= 0)
        - True: Die
باتباع هذه الخطوات، ستتمكن من إضافة الصوت وتوجيه اللاعب، بالإضافة إلى إعداد شريط الصحة وعرض رسالة "انتهت اللعبة، أعد المحاولة" عند موت الشخصية باستخدام Blueprints في Unreal Engine.


كيف اضيف شخصية تعطيني مهمة قتل اعداء اذا قمت بها اعود لدى الشخصية اتحدث معه ثم يعطيني المال ونقاط الخبرة مع قائمة المهمات 
ChatGPT
لإضافة شخصية تعطى اللاعب مهمة قتل أعداء ومن ثم يكافئه بالمال ونقاط الخبرة، وإعداد قائمة المهمات باستخدام Blueprints في Unreal Engine، يمكنك اتباع الخطوات التالية:

الجزء الأول: إعداد الشخصية التي تعطي المهمة
إنشاء Blueprint للشخصية:

في Content Browser، انقر بزر الماوس الأيمن واختر Blueprint Class.
اختر Character كفئة للـ Blueprint الجديد وسمه BP_QuestGiver.
افتح BP_QuestGiver وأضف مكونات مثل Static Mesh أو Skeletal Mesh لتمثيل شكل الشخصية.
إضافة واجهة المستخدم للحوار:

في Content Browser، انقر بزر الماوس الأيمن واختر User Interface ثم Widget Blueprint وسمه QuestDialog.
افتح QuestDialog Widget وأضف عناصر نص وزر للحوار.
يمكنك إضافة زر Accept Quest للقبول وزر Decline للرفض.
تحديد المهمة في الشخصية:

في BP_QuestGiver، أضف متغيرات مثل QuestName, QuestDescription, EnemiesToKill, وRewardMoney, وRewardExperience.
أضف دالة AssignQuest تقوم بتحديد المهمة للاعب عندما يقبلها.
الجزء الثاني: إعداد اللاعب لتلقي المهمة
إضافة متغيرات المهمة للشخصية:

في BP_Character، أضف متغيرات مثل CurrentQuest, EnemiesKilled, Money, وExperience.
التفاعل مع الشخصية:

أضف مكون Box Collision إلى BP_QuestGiver للسماح للاعب بالتفاعل معها.
في Event Graph، أضف حدث OnComponentBeginOverlap للتحقق من تفاعل اللاعب.
عند تفاعل اللاعب، أظهر QuestDialog Widget.
الجزء الثالث: تتبع تقدم المهمة
تتبع قتل الأعداء:

في BP_Character، أضف دالة EnemyKilled تزيد من عدد الأعداء المقتولين.
تحقق من عدد الأعداء المقتولين عند كل قتل، وإذا كانت المهمة مكتملة، اعلم اللاعب بذلك.
إكمال المهمة:

عند العودة إلى BP_QuestGiver بعد إكمال المهمة، أضف حدث OnComponentBeginOverlap مرة أخرى للتحقق من عودة اللاعب.
إذا كانت المهمة مكتملة، امنح اللاعب المكافآت (المال والخبرة).
الجزء الرابع: إعداد قائمة المهمات
إنشاء Widget لقائمة المهمات:

في Content Browser، انقر بزر الماوس الأيمن واختر User Interface ثم Widget Blueprint وسمه QuestList.
افتح QuestList Widget وأضف عناصر نص أو ListView لعرض قائمة المهمات.
عرض قائمة المهمات:

في BP_Character، أضف دالة ShowQuestList تقوم بإنشاء وعرض QuestList Widget.
اربط عرض القائمة بمفتاح معين (مثل M).
مثال عملي
إعداد الشخصية التي تعطي المهمة
BP_QuestGiver:

إضافة متغيرات:

QuestName: نص
QuestDescription: نص
EnemiesToKill: عدد صحيح
RewardMoney: عدد صحيح
RewardExperience: عدد صحيح
دالة AssignQuest:

plaintext
Copy code
- AssignQuest (PlayerCharacter)
    - Set PlayerCharacter.CurrentQuest (QuestName, EnemiesToKill, RewardMoney, RewardExperience)
    - Print String "Quest Assigned"
إظهار واجهة المستخدم للتفاعل:

في Event Graph:
plaintext
Copy code
- OnComponentBeginOverlap (Box Collision)
    - Cast to BP_Character (Other Actor)
    - Create Widget (QuestDialog)
    - Add to Viewport
إعداد اللاعب لتلقي المهمة
BP_Character:

إضافة متغيرات:

CurrentQuest: هيكل يحتوي على QuestName, EnemiesToKill, EnemiesKilled, RewardMoney, RewardExperience
Money: عدد صحيح
Experience: عدد صحيح
دالة EnemyKilled:

plaintext
Copy code
- EnemyKilled
    - Increment CurrentQuest.EnemiesKilled
    - Branch (If CurrentQuest.EnemiesKilled >= CurrentQuest.EnemiesToKill)
        - True: Print String "Quest Complete"
إكمال المهمة:

في Event Graph:
plaintext
Copy code
- OnComponentBeginOverlap (Box Collision)
    - Cast to BP_Character (Other Actor)
    - Branch (If Other Actor.CurrentQuest.EnemiesKilled >= Other Actor.CurrentQuest.EnemiesToKill)
        - True: 
            - Add Money (RewardMoney)
            - Add Experience (RewardExperience)
            - Print String "Quest Completed, Rewards Given"
إعداد قائمة المهمات
QuestList Widget:

إضافة ListView لعرض قائمة المهمات.
عرض قائمة المهمات:

في BP_Character:

دالة ShowQuestList:
plaintext
Copy code
- ShowQuestList
    - Create Widget (QuestList)
    - Add to Viewport
في Event Graph:

plaintext
Copy code
- Input Action (ShowQuestList - مفتاح M)
    - Call ShowQuestList
باتباع هذه الخطوات، يمكنك إعداد نظام مهمات كامل مع مكافآت وقائمة مهمات باستخدام Blueprints في Unreal Engine. إذا كنت بحاجة إلى مزيد من التفاصيل أو مساعدة إضافية، لا تتردد في طرح المزيد من الأسئلة!

كيف اضيف اشجار واجعل الشخصية تجمع مكونات معينة وتصنع اداة قطع اشجار ثم تبني البيت بواسطة الاخشاب من الشجرة
ChatGPT
لإضافة الأشجار وجعل الشخصية تجمع مكونات معينة، وتصنع أداة لقطع الأشجار، ثم تبني بيتاً بواسطة الأخشاب في Unreal Engine باستخدام Blueprints، يمكنك اتباع الخطوات التالية:

الجزء الأول: إضافة الأشجار وجمع المكونات
إضافة الأشجار إلى المشروع:

استورد نموذج شجرة (Tree Model) إلى مشروعك.
قم بإنشاء Blueprint للشجرة وسمه BP_Tree.
إعداد الشجرة للتفاعل:

في BP_Tree، أضف مكون Static Mesh للشجرة.
أضف مكون Box Collision حول الشجرة لتحديد منطقة التفاعل.
إضافة وظيفة جمع المكونات:

في BP_Tree، أضف متغيرات مثل WoodAmount لتحديد كمية الخشب.
في Event Graph، أضف حدث OnComponentBeginOverlap للتحقق من تفاعل اللاعب مع الشجرة.
أضف وظيفة لجمع المكونات عند التفاعل.
مثال:

plaintext
Copy code
- OnComponentBeginOverlap (Box Collision)
    - Cast to BP_Character (Other Actor)
    - Add Wood to Player (Other Actor.WoodAmount += WoodAmount)
    - Destroy Actor (Self)
الجزء الثاني: صنع أداة قطع الأشجار
إنشاء Blueprint للأداة:

في Content Browser، انقر بزر الماوس الأيمن واختر Blueprint Class، ثم اختر Actor وسمه BP_Axe.
أضف مكون Static Mesh لتمثيل شكل الفأس.
إضافة ميزة الصنع:

في BP_Character، أضف دالة CraftAxe للتحقق من المكونات اللازمة وصنع الفأس.
أضف متغيرات مثل WoodAmount وMetalAmount للتحقق من كمية المواد المتاحة.
مثال:

plaintext
Copy code
- CraftAxe
    - Branch (If WoodAmount >= RequiredWoodAmount && MetalAmount >= RequiredMetalAmount)
        - True: 
            - Subtract Wood and Metal (WoodAmount -= RequiredWoodAmount, MetalAmount -= RequiredMetalAmount)
            - Add Axe to Inventory (Inventory.Add(BP_Axe))
            - Print String "Axe Crafted"
الجزء الثالث: قطع الأشجار باستخدام الأداة
إعداد التفاعل بين الفأس والشجرة:

في BP_Character، أضف دالة UseAxe لاستخدام الفأس.
في BP_Tree، أضف وظيفة لتحديد الصحة (Health) للشجرة وتقليلها عند التفاعل مع الفأس.
مثال:

plaintext
Copy code
- UseAxe
    - LineTrace (من الكاميرا إلى الأمام)
    - Branch (If Hit Actor is BP_Tree)
        - True: 
            - Reduce Tree Health (Hit Actor.TreeHealth -= AxeDamage)
            - Branch (If Hit Actor.TreeHealth <= 0)
                - True: 
                    - Collect Wood (Other Actor.WoodAmount += Hit Actor.WoodAmount)
                    - Destroy Actor (Hit Actor)
الجزء الرابع: بناء البيت بواسطة الأخشاب
إضافة نظام البناء:

في Content Browser، أنشئ Blueprint جديد وسمه BP_House.
أضف مكون Static Mesh لتمثيل شكل البيت.
إضافة واجهة المستخدم للبناء:

في Content Browser، انقر بزر الماوس الأيمن واختر User Interface ثم Widget Blueprint وسمه BuildMenu.
افتح BuildMenu Widget وأضف زر "Build House" مع تحديد الكمية المطلوبة من الخشب.
تحقق من المواد وبناء البيت:

في BP_Character، أضف دالة BuildHouse للتحقق من كمية الخشب وبناء البيت.
في Event Graph، أضف منطق لتشغيل واجهة البناء عند الضغط على زر معين.
مثال:

plaintext
Copy code
- BuildHouse
    - Branch (If WoodAmount >= RequiredWoodAmount)
        - True: 
            - Subtract Wood (WoodAmount -= RequiredWoodAmount)
            - Spawn Actor (BP_House, Location: DesiredLocation)
            - Print String "House Built"
مثال عملي لإعداد المراحل المذكورة:
إعداد الشجرة لجمع الخشب
BP_Tree:
إضافة مكونات:

Static Mesh لتمثيل الشجرة.
Box Collision للتفاعل.
دالة التفاعل:

plaintext
Copy code
- OnComponentBeginOverlap (Box Collision)
    - Cast to BP_Character (Other Actor)
    - Add Wood to Player (Other Actor.WoodAmount += WoodAmount)
    - Destroy Actor (Self)
إعداد الفأس لصنع الأداة
BP_Axe:
إضافة مكون Static Mesh لتمثيل الفأس.
إعداد الشخصية لصنع الأداة واستخدامها
BP_Character:
إضافة متغيرات:

WoodAmount: عدد صحيح
MetalAmount: عدد صحيح
Inventory: قائمة من العناصر
دالة CraftAxe:

plaintext
Copy code
- CraftAxe
    - Branch (If WoodAmount >= RequiredWoodAmount && MetalAmount >= RequiredMetalAmount)
        - True: 
            - Subtract Wood and Metal (WoodAmount -= RequiredWoodAmount, MetalAmount -= RequiredMetalAmount)
            - Add Axe to Inventory (Inventory.Add(BP_Axe))
            - Print String "Axe Crafted"
دالة UseAxe:

plaintext
Copy code
- UseAxe
    - LineTrace (من الكاميرا إلى الأمام)
    - Branch (If Hit Actor is BP_Tree)
        - True: 
            - Reduce Tree Health (Hit Actor.TreeHealth -= AxeDamage)
            - Branch (If Hit Actor.TreeHealth <= 0)
                - True: 
                    - Collect Wood (Other Actor.WoodAmount += Hit Actor.WoodAmount)
                    - Destroy Actor (Hit Actor)
إعداد واجهة المستخدم للبناء
BuildMenu Widget:
إضافة زر "Build House" مع تحديد الكمية المطلوبة من الخشب.
إعداد بناء البيت
BP_Character:
دالة BuildHouse:

plaintext
Copy code
- BuildHouse
    - Branch (If WoodAmount >= RequiredWoodAmount)
        - True: 
            - Subtract Wood (WoodAmount -= RequiredWoodAmount)
            - Spawn Actor (BP_House, Location: DesiredLocation)
            - Print String "House Built"
في Event Graph، أضف منطق لتشغيل واجهة البناء عند الضغط على زر معين:

plaintext
Copy code
- Input Action (ShowBuildMenu - مفتاح B)
    - Create Widget (BuildMenu)
    - Add to Viewport

باتباع هذه الخطوات، يمكنك إنشاء نظام لجمع المكونات، وصنع الأدوات، وبناء البيوت في Unreal Engine باستخدام Blueprints.











التعليقات



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

إتصل بنا

جميع الحقوق محفوظة

Yassine Agourram

2016