‫أهلا ومرحبا.
‫في هذه المحاضرة ، سنصنع سلاحًا وسنتعلم كيف سنصمم أسلحة لهذه
‫اللعبة بحيث تكون قابلة للتبديل ، حتى نتمتع بخصائص مختلفة على أنواع مختلفة من
‫الأسلحة.
‫وهذه بشكل عام هي الطريقة التي تعمل بها البنى في الرماة أول شخص أو ثالث ، دعونا نتعمق ونرى
‫كيف يتم ذلك.
‫تمام.
‫لذلك لم نتحقق من خطة مشروعنا منذ فترة قصيرة.
‫كلما وصلنا إلى الخطة ، تتم الحركة.
‫تم الانتهاء من الرسوم المتحركة والتصوير ، وهذا هو الشيء التالي بالنسبة لنا للتركيز عليه.
‫الآن ، الأمر محير بعض الشيء هنا لأن شبكتنا يبدو أنها تحتوي بالفعل على مسدس ، لكننا في الواقع لا نريد
‫استخدام هذا السلاح.
‫نريد استخدامه بطريقة مختلفة.
‫سبب كونك في نوع لعبة مطلق النار ، فغالبًا ما تريد أن تكون قادرًا على التبديل بين الأسلحة أو على الأقل أن تكون
‫قادرًا على امتلاك شخصيات مختلفة وأسلحة مختلفة.
‫وأسهل طريقة للقيام بذلك هي تصميم البندقية كشيء منفصل عن الشخصية بحيث يمكنك
‫تبديلها بحيث تكون مسؤولة عن كيفية إطلاقها.
‫إذا كانت قاذفة صواريخ أو بندقية أو بندقية ، فإنهم سيفعلون الأشياء بطرق مختلفة.
‫الآن ، قد تقول ، حسنًا ، حسنًا ، لنقم بإنشاء مكون البندقية ويمكننا لصق مكون
‫البندقية هذا أسفل شبكتنا التي ستعمل ، إلا أنه بعد ذلك نفقد الوحدة النمطية التي تسمح لنا بإضافة مكونات
‫متعددة إلى البندقية.
‫لذا ما نريد فعله حقًا هو السير في طريق وجود ممثل للبندقية طفولي بالنسبة لشخصية مطلق
‫النار.
‫الآن ، هذا شيء لم نواجهه من قبل ، لكنه يعمل على هذا النحو.
‫يمكن أن يكون لديك شخصية مطلق النار وبندقية لأنها طفل ويمكن أن تحتوي شخصية مطلق النار على مكونات متعددة هي
‫هوية الطفل لبعضها البعض.
‫إذاً لديك الكبسولة ، لدينا الشبكة كطفل للكبسولة في الوقت الحالي ، ومكونات
‫البندقية يمكن أن تكون هوية الطفل لذلك.
‫لذا فإن الشبكة تحصل على معرف الطفل لشبكة الشخصية.
‫وإذا كان يحتوي على أي مكونات أخرى ، مثل تأثير الجسيمات على فوهة البندقية ، فقد
‫يتم إضافتها إلى الشبكة.
‫لذا يمكنك أن ترى أن هذه التسلسلات الهرمية مستقلة نوعًا ما ، وأنك حصلت على مكونات
‫المشهد ، تلك التي لها تحولات على اليمين ، ويمكن أن تكون في تسلسل هرمي معين.
‫ثم يتبع التسلسل الهرمي للممثلين في الواقع التسلسل الهرمي لمكونات المشهد.
‫الممثلون ليس لديهم تسلسل هرمي خاص بهم.
‫هذا هو الجزء الذي يستغرق القليل من الوقت لتحريك رأسك وكان
‫لحظة ها عندما نقرت عليه هو أنه في الحقيقة لا يوجد تسلسل هرمي للممثلين ، هناك فقط تسلسل هرمي لمكونات
‫المشهد.
‫هناك ممثلون يمتلكون مكونات المشهد ، وينتهي بهم الأمر بالحصول على تسلسل هرمي لأن مكونات
‫المشهد الخاصة بهم مرتبطة ببعضها البعض ، لكن ليس لديهم في الواقع علاقة فيما بينهم.
‫مع ذلك ، لتعيين السياق ، فإن أول شيء نريد أن نذهب إليه ونفعله هو في الواقع أن نخلق لأنفسنا
‫ممثلًا للأسلحة النارية ++ C.
‫وفي هذه الحالة لن يكون بيدق أو شخصية أو أي شيء من هذا القبيل.
‫سيكون مجرد ممثل مباشر لأننا لسنا بحاجة إلى أي سلوك.
‫لست بحاجة لامتلاكه.
‫لا نحتاج إلى فعل أي شيء.
‫إنه مجرد ممثل بسيط وبسيط.
‫لذلك دعونا نمضي قدمًا ونفعل ذلك.
‫في الحقيقة ، تحدٍ صغير لك.
‫انطلق وقم بإنشاء ممثل C ++ ، وهو شيء يجب أن تكون قادرًا على القيام به تحديًا صغيرًا
‫، جربه.
‫تمام.
‫وبالعودة مرة أخرى ، سأفعل ذلك فئة C ++ جديدة ولسنا بحاجة إلى دعنا نرى أيها الممثل.
‫هذا هو الذي نريد اختياره وسنمضي قدمًا ونطلق على هذا السلاح الواحد ، ببساطة لننشئ
‫تلك الفئة.
‫وبمجرد الانتهاء من ذلك ، سيظهر في محرر الكود الخاص بك ولن نحتاج إلى فعل أي شيء
‫به حتى الآن لأن أول شيء أريد القيام به هو إنشاء فئة فرعية للمخطط.
‫لذا ، انقر بزر الماوس الأيمن على فصلك الدراسي في متصفح المحتوى وبدلاً من تسميته My
‫Gun ، لا أعرف سبب تعيينه تلقائيًا بشكل افتراضي.
‫سأضعه في جذر المحتوى.
‫أربعة.
‫الآن يمكننا القيام ببعض إعادة التنظيم بمجرد حصولنا على المزيد من الفصول.
‫كما قلت من قبل ، سننشئ فئة Blueprint.
‫كما ترى ، إنها فارغة تمامًا.
‫لقد حصل على جذر المشهد الافتراضي هذا.
‫سنرغب في إصلاح ذلك.
‫ما نريد القيام به هو بالفعل إضافة مكون في C ++ لأن هذه دورة C ++.
‫دعنا نتدرب على إضافة المكونات في C ++.
‫هذا يعني أيضًا أنه سيكون لدينا وصول إلى هذه المكونات من داخل كود C ++ الخاص بنا لمعالجة التعليمات البرمجية الخاصة
‫بنا وكتابتها هناك.
‫الآن الإعداد الذي نريده هو أن يكون لدينا مكون جذر مشهد ، والذي سيكون
‫مجرد مكون مشهد ثم شبكة ثانوية لذلك.
‫لماذا نريد ذلك؟
‫لأننا نريد أن نكون قادرين على تغيير موضع الشبكة بالنسبة إلى جذر البندقية حتى نتمكن
‫من وضع المقبض في مواقع مختلفة لشبكات مختلفة.
‫لذلك إذا كانت لدينا أسلحة مختلفة ، يمكننا التأكد من أن لديهم جميعًا
‫هذا المقبض في نفس المكان بحيث عندما نعلقه بيد الشخصية ، سيظهر بالمقبض في يد الشخصية.
‫إذن كيف سنفعل ذلك؟
‫سننتقل إلى كود Visual Studio الخاص بنا ، وسأنشئ قسمًا خاصًا هنا حيث سنقوم بتخزين
‫الخصائص الجديدة للمكونات المختلفة التي سنخرج بها.
‫لذلك سأقوم بإنشاء خاصية جديدة مرئية في أي مكان نريد أن تكون مكوناتنا مرئية في أي مكان
‫لأنها مؤشرات.
‫لا نريد أن نكون قادرين على تحرير المؤشرات ، لكننا نريد أن نكون قادرين على رؤية خصائص تلك المؤشرات
‫وأن نكون قادرين على ذلك.
‫إنها تلك ، ومن ثم تصبح من اختصاص الفصل الذي نشير إليه.
‫ثم يقرر ما يتم عرضه ، وما هو قابل للتعديل.
‫لذلك كل ما نريد قوله هنا هو أن المؤشر ليس قابلاً للتعديل.
‫لهذا السبب سنكون مرئيين على أي حال.
‫على أي حال ، هناك القليل من المراجعة هناك.
‫الآن نريد أن يكون هذا هو أنت لأنه مكون ، ثم عنصر المشهد الذي نريده.
‫إذا كان بإمكاني كتابته بشكل صحيح ، فقد رأيت مكونات وهو مؤشر لها وسيكون
‫هذا مكون الجذر لدينا.
‫مثل ذلك وبعد ذلك سنرغب في الحصول على ممتلكاتك.
‫مرئي مرة أخرى في أي مكان لشبكتنا.
‫ستكون فئة الشبكة مكونًا جديدًا للشبكة الثابتة لأن هذه ليست شبكة هيكلية ، إنها صلبة ، ولا
‫تحتوي على أي هيكل عظمي ، أو أي عظام.
‫لذا ، أريد أن يكون هذا مؤشرًا وهذا سيطلق على الشبكة مثل ذلك.
‫في الواقع ، أعتقد أنني بحاجة إلى توخي الحذر قليلاً هنا لأنني أعتقد أن مكون الجذر موجود
‫بالفعل في فئة الأصل للممثل.
‫لذلك سأسمي هذا الطريق بدلاً من ذلك.
‫ومن ثم لدينا بالفعل مُنشئ في C ++.
‫سنحتاج فقط إلى تضمين ملفات الرأس المناسبة هنا.
‫الآن ، الحيلة الصغيرة عندما تكون في Visual Studio code هي معرفة مكان وجود ملف الرأس.
‫يمكنك استخدام Control P وستبحث عن ملفات.
‫في هذه الحالة ، نريد معرفة الشبكة الثابتة.
‫لذا ، فإن مكونات الشبكة الثابتة ويمكننا أن نرى أن مكونات الشبكة الثابتة تشير إلى h إذا تقدمت وفتحتها وحومت
‫فوق علامة التبويب ، يمكنك أن ترى أنها تقع تحت هذا المسار الطويل.
‫لكن الشيء المثير للاهتمام هو أنه ضمن الفصول الدراسية ، والتي يمكننا بعد ذلك البحث عنها من هناك.
‫ستكون مكونات ، مكون شبكة ثابتة.
‫لذلك يمكنني إغلاق علامة التبويب هذه ، وفوق تضميننا في الواقع أدناه بما
‫في ذلك بندقيتنا ، سنقوم بعمل تجزئة تضمين للمكونات ثم مكون الشبكة الثابتة.
‫الآن في الواقع ، لقد تذكرت للتو أن الشبكات التي لدينا لسبب ما ليست في الواقع شبكات ثابتة.
‫أعتقد أنها قد تكون شبكات هيكلية.
‫يمكنك معرفة ذلك من خلال الدخول في حزم الأصول وإطلاق النار على أسلحة اللعبة وإلقاء نظرة على هذه الإجراءات.
‫وبالتأكيد ، إذا قمت بالمرور فوقها ، يمكنك أن ترى أنها شبكات هيكلية.
‫لا تسألني لماذا.
‫لسبب ما هذا ما هم عليه.
‫لذلك سنريد تغيير النوع إلى الشبكة الهيكلية في ملف الرأس.
‫لذا بدلاً من الشبكة الثابتة ، ستستخدم شبكة هيكلية بدلاً من ذلك.
‫ونفس الشيء بالنسبة للتضمين سيكون الهيكل العظمي.
‫مكونات الشبكة التي نريد أن نتذكرها.
‫لا يوجد أنت في ملفات الرأس.
‫وأعتقد أنهم يرون مكونات مُضمنة بالفعل هنا بشكل افتراضي.
‫لذا حان الوقت لتحدي لإضافة مكون شبكي خاص بك.
‫سنقوم بإنشاء مكون مشهد الجذر ، وتعيينه على الجذر وتعيينه على الجذر للفئة وإنشاء
‫مكون شبكة وإعداد المرفق بين الاثنين بحيث يكون مكون الشبكة تابعًا
‫لخط الجذر هذا مكون.
‫وقفة الفيديو وانطلق.
‫حسنًا ، أرحب بعودتك.
‫لذلك سوف نذهب ونبدأ.
‫بادئ ذي بدء ، الجذر الخاص بنا ، سيكون كائنًا فرعيًا افتراضيًا من النوع.
‫لقد رأيت مكونات ومن ثم سنعطيه اسمًا سيكون مع ماكرو النص ، وسنطلق عليه اسم
‫الجذر وننتهي بفاصلة منقوطة.
‫ثم سنقوم بتعيينه كجذر.
‫لذا فإن تعيين مكونات الجذر سيعمل على تعيينه كمكون جذر للممثل.
‫لذلك قم بتعيين الجذر كمكون جذر.
‫أشياء جيدة.
‫ثم سنرغب في إنشاء شبكتنا.
‫لذا ، فإن mesh يساوي إنشاء كائن فرعي افتراضي وهو مكون الشبكة الهيكلية الذي نريده كفئة ثم ماكرو
‫النص لمجرد تسميته شبكة وإضافة فاصلة منقوطة في النهاية هناك.
‫ثم نريد إعداد المرفق.
‫لذلك ستكون شبكة سهم معد.
‫قم بإعداد المرفق وسنريد إرفاقه بالجذر مثل الأشياء الرائعة حتى نتمكن من المضي
‫قدمًا وحفظ ذلك ونأمل أن نجمع ونبني وسننتقل إلى Unreal ونلقي نظرة على فصل الأطفال
‫لدينا.
‫وبالتأكيد ، لدينا هنا الجذر ، ولدينا الشبكة الفرعية ، ولدينا أيضًا جذر المشهد الافتراضي
‫الذي لا يزال معلقًا ، وأعتقد أنه دعونا نعيد تشغيل المحرر ونرى ما إذا كان هذا قد اختفى
‫للتو.
‫في بعض الأحيان عند إضافة المكونات ، يمكن أن تبقى الأشياء هكذا ويتم تخزينها مؤقتًا.
‫وبالتأكيد ، إذا فتحنا مخططات بندقية BP مرة أخرى ، يمكنك أن ترى أننا حصلنا للتو على هذين
‫المكونين.
‫لقد أضفنا الجذر والشبكة ، وربما نريد المضي قدمًا وتغيير الشبكة لإحدى الشبكات الهيكلية
‫من حزم الأصول من لعبة مطلق النار.
‫لدينا بندقية ، لدينا قاذفة.
‫سأختار هذا ليكون البندقية.
‫لذا في الواقع ، فإن وصفها بمسدس BP هو مخادع بعض الشيء.
‫من المحتمل أن يكون هذا هو بندقية BP.
‫لذلك دعونا نمضي قدمًا ونعيد تسمية ذلك ، انتقل إلى متصفح المحتوى وأعد تسميته إلى BP Rifle أو BP Gun ، بندقية
‫تسطير أسفل السطر.
‫نسميها الآن بندقية BP مباشرة.
‫ها أنت ذا.
‫وقد منحنا ذلك سلاحًا.
‫الآن ، من الواضح ، الآن هذا يعني أنه يمكننا الحصول على كل أنواع الخصائص ضد هذا الممثل
‫، مثل قوة السلاح ونطاقه وما إلى ذلك ، من خلال إنشاء خصائص جديدة في C ++.
‫وتكمن قوة امتلاك هذه الهندسة في أن البنادق يمكن أن تكون مختلفة قليلاً.
‫يمكن أن يكون لدينا آليات إطلاق نار مختلفة للبنادق مقابل القناصين مقابل قذائف آر بي جي ، أشياء من هذا القبيل.
‫هذا رائع.
‫ويمكننا أيضًا الحصول على إحصائيات مختلفة حتى نتمكن من الحصول على بندقية قوية وبندقية ضعيفة اعتمادًا
‫على الفئات الفرعية المختلفة للمخطط.
‫أشياء رائعة.
‫الآن في المحاضرة التالية ، سوف نلقي نظرة على كيف سنقوم بالفعل بإنتاج هذا
‫السلاح كطفل لشخصيتنا الحالية.
‫سأراك هناك.