‫أهلا ومرحبا.
‫في هذه المحاضرة ، سنجعل محركنا يقوم ببعض الحركة عن طريق تحديد خانة اختيار.
‫سنمكِّنه من التحرك والتحرك بسرعة ثابتة.
‫وسنقوم بذلك باستخدام بعض وظائف المكتبة هذه المرة من الداخل.
‫غير حقيقي.
‫لذلك سيضع كل ما لدينا من معلومات حول ملفات الرأس ويتضمنها للاختبار.
‫دعونا نتعمق ونرى كيف يعمل.
‫لذا فإن الطريقة التي أريد أن يعمل بها هذا المحرك هي أنني أريده أن ينتقل بسلاسة من حيث بدأ إلى
‫تعويض الهدف خلال فترة عدد معين من الثواني.
‫لذا فإن الطريقة التي سنحتاجها لتهيئة هذا هي إضافة بعض الخصائص الجديدة إلى ملف الرأس.
‫لذا لنبدأ بإضافة قسم خاص إلى رأس الملف ثم سنضيف
‫خاصية جديدة سيتم تحريرها في أي مكان ، والتي ستحدد الإزاحة ، إزاحة النقل.
‫إذن إلى أي مدى يجب أن يتحرك هذا المحرك عند تنشيطه.
‫لذا فإن الطريقة التي سنقوم بها هي استخدام متجه F وسنطلق عليه إزاحة الحركة مثل
‫لذلك لن أعطيها قيمة افتراضية.
‫سنفعل ذلك في المحرر.
‫ثم سأقوم بإنشاء خاصية جديدة أخرى والتي سيتم تعديلها مرة أخرى في أي مكان
‫، والتي ستكون مقدار الوقت المستغرق للانتقال إلى الهدف.
‫لذلك سيكون لدينا هذا النوع من التعويم ، وهو وقت الحركة وسأقوم بتعيين ذلك على قيمة افتراضية
‫، لنقل ، 4 ثوانٍ.
‫الآن ، هناك شيء آخر أود وضعه هنا ، وهو منطقي فقط في الوقت الحالي ، والذي سيسمح
‫لنا بتنشيط المحرك بحيث يتحرك لأسفل عندما نقوم بتنشيط هذه القيمة المنطقية.
‫لذلك دعونا ننشئ خاصية U أخرى مرة أخرى.
‫قم بالتحرير في أي مكان حتى نتمكن من تعديله حتى أثناء اللعب ، وسيكون مثلًا منطقيًا يجب نقله
‫، وسيتم تعيينه افتراضيًا على "خطأ".
‫لذلك عندما نتحقق من هذا في المحرر ، عندما نلعب ، سوف يذهب وينتقل إلى إزاحة الحركة
‫المستهدفة.
‫الآن في السابق عندما كان لدينا مكون متحرك ، قمنا بجميع الخطوات يدويًا.
‫لكني أريد أن أوضح لكم أن هناك بالفعل بعض الوظائف المضمنة للقيام بالعديد من العمليات الحسابية التي
‫نحتاجها.
‫إنه مدمج في Unreal وهناك وظيفة تسمى V تفسير ثابت أيضًا.
‫وما هو مثير للاهتمام حول ذلك ، دعونا نلقي نظرة على الملاحظات.
‫لذا أقحم متجهًا من متجه حالي إلى متجه مستهدف باستخدام خطوة ثابتة.
‫وهذا يعني أنه بمرور الوقت سننتقل من التيار إلى الهدف بسرعة معينة ، وسوف يفعل ذلك باستمرار
‫، والذي يبدو تمامًا كما نريد.
‫نريد الانتقال من موقعنا الحالي إلى موقع تعويض الهدف بسرعة ثابتة.
‫الآن ، يمكنك معرفة ما إذا كنت قد ألقيت نظرة على بناء الجملة لهذه الوظيفة ، يمكنك أن ترى أن لها نوع
‫إرجاع من متجه F.
‫إذن هذا هو الموقع الجديد الذي يستكمله.
‫ثم لديها اثنين من المدخلات.
‫لدينا متجه F حالي ولا تقلق بشأن الرموز الأخرى حول هذا التأثير في الوقت الحالي
‫، الشيء المهم هو أنه متجه حالي ثم الهدف الذي نريده أن يصل إليه في النهاية.
‫ثم حان وقت دلتا.
‫لذلك يستخدم هذا لجعل معدل إطار الحركة مستقلاً وفي سرعة الاستيفاء.
‫إذن ما السرعة التي يجب أن نتحرك بها من موقعنا الحالي إلى الهدف؟
‫ستلاحظ الآن أنه هنا في التوثيق ، يحتوي بالفعل على قسم يقول تضمين وهذا يخبرك بسطر التضمين
‫الذي ستحتاجه في ملف C ++ الخاص بك حتى تتمكن من استخدام هذه الوظيفة.
‫وكما رأينا في الفيديو السابق ، يسمح لنا سطر التضمين بنسخ التعريفات من هذا الملف
‫المحدد.
‫وأحد التعريفات هو تعريف هذه الوظيفة.
‫لذلك ، يسمح لنا باستخدام هذا الثابت تفسير V حتى الآن يعني V أمام هذه الوظيفة أنه يقوم بالاستيفاء
‫على المتجهات.
‫لهذا السبب يطلق عليه تفسير V بدلاً من وظائف الاستيفاء الأخرى المتوفرة أيضًا
‫في ملف المكتبة هذا.
‫لذلك دعونا نلقي نظرة على كيفية استخدامها.
‫بادئ ذي بدء ، سنقوم بنسخ سطر التضمين من الوثائق وسننتقل إلى
‫نقل CP حيث نريد تنفيذ ذلك في جسم مكون التجزئة.
‫لكنها تشمل أننا لا ندرج داخل جسم مكون القراد.
‫يتعين علينا إجراء عمليات التضمين كلها في أعلى الملف.
‫هذا هو المكان الذي سأضع فيه خاصتي وسأضع خاصتي بعد تضمين المحرك H.
‫لذلك سنقوم بوضع وإدراج للرياضيات ، والشرطة المائلة للأمام ، والمرافق غير الواقعية للرياضيات.
‫H الآن ما يمكننا فعله هو أنه يمكننا بالفعل استخدام الوظيفة داخل مكون التجزئة الخاص بنا.
‫دعنا فقط نتخلص من الكود الذي أدخلناه بالفعل.
‫إحصاء - عد.
‫لأننا كنا نستخدم ذلك لفهم كيفية استدعاء الوظائف للجهات الفاعلة الأخرى.
‫وما يتعين علينا القيام به هو إذا قمت بالتمرير لأعلى ، يمكنك أن ترى طريقة تسميتها هي F Mass Colon ، و Colon V Intercept
‫، وثابت اثنين.
‫لذلك نقوم نوعًا ما بعمل عامل القولون القولون الذي ينظر داخل فصل الرياضيات F ، والذي ينظم معًا
‫كل أدوات الرياضيات هذه.
‫لذلك سنقوم بحساب F.
‫القولون.
‫وهنا يمكنك أن ترى مجموعة من الإكمال التلقائي تظهر لوظائف رياضية مختلفة مدرجة في ملف الرأس
‫هذا الذي قمنا بتضمينه للتو في هذا الملف.
‫لذا يمكنك إلقاء نظرة من خلالها ، ورؤية أي من الأشياء المثيرة للاهتمام هنا
‫، يمكنني رؤية مجموعة من الاستيفاء ، الاستيفاء الدائري ، إلخ. لكننا أردنا أن يفسر V ثابتًا لـ ويمكننا الضغط
‫على علامة التبويب لإكمال ذلك ثم نفتح بعض الأقواس ويمكننا أن نرى الحجج التي نحتاجها
‫لتمرير التيار ووقت دلتا الهدف وسرعة التقاطع.
‫لنبدأ إذن في إنشاء بعض المتغيرات للاحتفاظ ببعض هذه المتغيرات.
‫لذا أولاً وقبل كل شيء ، نحتاج إلى متجه F والذي سيكون موقعنا الحالي ولن نضبط ذلك
‫حتى الآن.
‫ثم سيكون لدينا متجه F للموقع المستهدف ، ثم نحصل على تعويم للسرعة.
‫وسيتعين علينا حساب كل منها على حدة لمعرفة كيف يمكننا جعل هذه الحركة
‫تحدث.
‫لذلك سيكون الموقع الحالي مباشرًا نسبيًا.
‫نحتاج إلى الحصول على الموقع الحالي للممثل المالك.
‫فكيف لنا أن نفعل ذلك؟
‫لنستبدل هذه الفاصلة المنقوطة بعلامة يساوي.
‫ثم سنقوم بالحصول على زوج من الأقواس للمالك.
‫ثم سنقوم بعمل سهم.
‫لذلك سنقوم باستدعاء دالة على الممثل المالك ، وسنحصل على موقع الممثل ثم زوج من الأقواس
‫وفاصلة منقوطة لإنهائها.
‫وبذلك نحصل على الموقع الحالي للممثل المالك.
‫الآن ، ماذا عن موقعنا المستهدف؟
‫حسنًا ، نعلم أن لدينا خاصية تسمى إزاحة الحركة ، لذا سنشاركها هنا.
‫لكننا نحتاج إلى إضافة الموقع الأصلي إلى إزاحة النقل هذه.
‫لذلك ، نحتاج إلى التقاط الموقع الأصلي في Biggin play.
‫لذلك نحن بحاجة إلى متغير لتخزينه.
‫لذا دعنا ننتقل إلى المحرك H ولن يكون تعديلًا في أي مكان.
‫بمجرد أن أضعه تحت U.
‫الخصائص ، ستكون متجه F يسمى الموقع الأصلي.
‫لن نضعه على أي شيء هنا.
‫ثم سننتقل إلى محرك CP الخاص بنا لبدء اللعب ، وإزالة
‫سطر التعليق هذا ووضع الكود الخاص بنا ، والذي سيكون أن الموقع الأصلي يساوي الحصول على أقواس المالك للحصول على
‫موقع الممثل مثل ذلك.
‫والآن بعد أن تم التقاط موقعنا الأصلي وبدء اللعب ، يمكننا استخدامه في TTIC.
‫لذلك ننتقل إلى Tick وقمنا بتعيين موقعنا المستهدف مساويًا للموقع الأصلي بالإضافة إلى إزاحة الحركة.
‫إذن هذا هو موقعنا المستهدف وأخيرًا سرعتنا.
‫حسنًا ، هذه هي المسافة التي نحتاج إلى قطعها مقسومة على الوقت الذي نحتاج إلى الانتقال
‫إليه.
‫لذا إذا كان لدينا موقع مستهدف وكان لدينا موقع أصلي ، فسنحتاج إلى إيجاد المسافة
‫بين هذين ، وهو ما يمكننا فعله باستخدام متجه F ، ونقطتين ، ونقطتين.
‫ثم نمرر إلى الأقواس والموقع الأصلي والموقع المستهدف.
‫هذا يعطينا المسافة بين هذين المتجهين.
‫وبعد ذلك سنقسم ذلك على ما لدينا مرارًا وتكرارًا يسمى وقت الانتقال.
‫وهذا يعطينا السرعة التي يجب أن نتحرك بها.
‫والآن يمكننا استخدام هذه كوسيطات للحصول على ثابت التقاطع V أيضًا.
‫لذلك لدينا أولاً وقبل كل شيء ، نحتاج إلى تحديد الموقع الحالي ثم الموقع المستهدف.
‫ثم سنخبرها بوقت دلتا ، والذي هو بالفعل معلمة في مكون التجزئة.
‫لذا نحتاج فقط إلى تمرير ذلك ومن ثم حصلنا على سرعة التقاطع.
‫سنقوم فقط بالمرور بسرعة مثل وضع فاصلة منقوطة في نهاية هذا السطر وهذا هو الموقع الجديد
‫بشكل أساسي.
‫لذلك دعونا نخزن ذلك في متجه F متغير جديد يسمى الموقع الجديد يساوي هذا الرائع.
‫الآن نحن بحاجة إلى القيام بشيء مع هذا الموقع الجديد لأنه ليس من الجيد مجرد
‫حسابه ، فنحن في الواقع بحاجة إلى نقل الممثل إلى الموقع الجديد.
‫لذلك هذا ما سنفعله.
‫سوف نسميها عند الحصول على المالك.
‫لذلك نحن نمتلك.
‫الأقواس Arrow.
‫وبعد ذلك سنقوم بتحديد موقع ممثل محدد وسنمر في الموقع الجديد مثل ذلك ولدينا فاصلة منقوطة
‫في نهاية السطر.
‫لذلك دعونا نمضي قدمًا ونجمع هذا ونرى ما إذا كان يعمل.
‫لذا إذا انتقلنا إلى الزنزانة ، وحدد الجدار الذي نريد
‫تحريكه ، يمكنك الآن أن ترى أن عنصر المحرك قد حصل على تعويض الحركة ، وهو ما سأفعله في الاتجاه Z
‫، وأعتقد أنني سأفعل -600.
‫ثم وقت التحرك ، يجب أن يكون 4 ثوانٍ على ما يرام.
‫لذلك دعونا نحفظ ذلك ثم نضغط تشغيل ونرى ما إذا كان يتحرك حتى لا يتحرك.
‫وهناك خطأ في سجل الإخراج يقول أن حركة الممثل قد تم ضبطها على ثابت ، وهذا هو سبب عدم قدرتها
‫على الحركة.
‫لذلك إذا حددنا الممثل مرة أخرى ونظرنا إلى إعدادات التنقل الخاصة به ، يمكنك أن ترى في الواقع إعدادات التنقل لمكون
‫الشبكة الثابتة.
‫لذا حدد مكون الشبكة الثابتة ، ثم انظر إلى التنقل.
‫يمكنك أن ترى أنه تم ضبطه على ثابت ، مما يعني بشكل أساسي أنه غير مسموح له بالتحرك.
‫دعنا نحول ذلك إلى متحرك لأننا نريده أن يتحرك ثم دعنا نمضي قدمًا ونضرب التشغيل.
‫الآن يمكنك أن ترى في الظلام أن الجدار كان ينهار ، وهذا مثالي.
‫أعتقد أن لدينا محركًا في مكان آخر في مشهدنا على هذا العمود هنا يحاول أيضًا التحرك.
‫لذلك دعونا لا نفعل ذلك.
‫دعنا نحذف مكون المحرك الذي أضفناه هناك فقط للاختبار ويجب ألا يعطينا أي أخطاء في سجل
‫الإخراج.
‫إذا مضينا قدمًا وضربنا التشغيل الآن ، فيجب أن نجعل هذا الجدار ينزل إلى موقعه المستهدف.
‫لذلك دعونا نتحداك لجعلها تتحرك مع منطقية أنشأناها التي تمتلكها.
‫لذلك ستقوم بلف الكود بعبارة if المناسبة والتعليمات البرمجية المناسبة بحيث لا يتحرك
‫النظام الأساسي إلا عندما يكون هذا Boolean صحيحًا.
‫وبعد ذلك ستقوم بإعادة ترجمة الكود واللعب والإخراج باستخدام F8 ثم تغيير منطقية
‫ومراقبة ما إذا كان يتحرك عند التحقق من ذلك المنطقي.
‫لذا أوقف الفيديو مؤقتًا واذهب.
‫تمام.
‫مرحبًا بعودتك.
‫لذلك دعنا نذهب ونلف عناصر مكون التجزئة هذه في عبارة if ، ليست فائقة ، ولكن كل شيء آخر سنفعله.
‫إذا كان يجب أن يتحرك ، فافتح بعض الأقواس وحرك كل هذا الرمز في التذكر لوضع مسافة بادئة له في مستوى واحد لأننا داخل
‫الأقواس ونريد أن نظهر أن هذا لن يتم تنفيذه إلا داخل تعليمة
‫if.
‫اجعل الأمر سهلاً بالنسبة لنا لقراءة التحكم في كل f 11 لتجميعها ، ومن ثم يجب أن نكون قادرين على الذهاب
‫والضغط على زر التشغيل F ثمانية لإخراجها إذا تم أسر الماوس لدينا.
‫وبعد ذلك سنذهب لإلقاء نظرة على العناصر الخارجية لدينا ، سنحاول العثور على الجدار أو يمكننا
‫فقط النقر فوق المشهد ثم سنقوم باختيار نقل أحد المكونات والتحقق مما ينبغي يتحرك ويذهب
‫، ويبدأ الجدار في التحرك عندما يحدث ذلك.
‫أشياء عظيمة.
‫سأراك في المحاضرة القادمة.