‫أهلا ومرحبا.
‫في هذه المحاضرة ، سننظر في ربط حركة شخصيتنا حتى نتمكن من المضي
‫قدمًا في الصراع والنظر حول عالمنا.
‫كلاسيكيات التحرك في منظور الشخص الأول أو مطلق النار من منظور شخص ثالث.
‫دعنا نتعمق ونرى كيف يتم ذلك.
‫لذا ، بالاستمرار في محاولة تنشيط حركة شخصيتنا ، سنرغب أولاً في ربط بعض المدخلات
‫، لكننا سنعرف أيضًا أننا نريد أن نعرف ما الذي يجب ربط هذه المدخلات به.
‫لحسن الحظ ، عندما يتعلق الأمر بالشخصيات ، هناك الكثير من الأشياء المبسطة التي تحدث لنا.
‫بعد كل شيء ، Unreal حقًا محرك تم تحسينه لصنع أشياء مثل ألعاب إطلاق النار وألعاب الشخصيات.
‫ودعنا نلقي نظرة على بعض وظائف الحركة التي تم توفيرها لنا بالفعل من قبل فئة ممثل الشخصية ، ليس فقط مكون حركة
‫الشخصية ، ولكن أيضًا فئة الممثلين توفر هذه الوظائف وغالبًا ما تمرر الكثير
‫من هذا إلى حركة الشخصية المكون ، ولكن ليس بالضرورة كذلك.
‫دعونا نرى وظائف الحركة التي سنتعامل معها.
‫بادئ ذي بدء ، سيكون هناك إضافة إدخال الحركة.
‫تأخذ إضافة إدخال الحركة بشكل أساسي متجهًا ويخبرك بالاتجاه الذي ستتحرك فيه.
‫لذلك إذا كان متجهًا للأمام ، فأنت تمضي قدمًا.
‫إذا كان متجهًا للخلف ، فأنت تتحرك للخلف.
‫إذا كان ناقلًا صحيحًا ، فأنت تتحرك يمينًا وهكذا.
‫وسيحدد حجم المتجه مدى السرعة التي تتحرك بها في هذا الاتجاه.
‫الشيء التالي هو أننا حصلنا على مدخلات الملعب الإضافية للتحكم.
‫لذلك يتعلق الأمر بالبحث لأعلى ولأسفل ، وهو أمر مفيد للغاية بشكل واضح.
‫عندما تحصل على الماوس ، فأنت تريد أن تنظر لأعلى ولأسفل عن طريق تحريك الماوس لأعلى ولأسفل.
‫ثم هناك وحدة تحكم إضافية ، إدخالك يسار ويمينًا.
‫وأخيرًا هناك وظيفة القفز والتي ربما تضغط على مفتاح المسافة وتقفز.
‫لذلك مع وضع هذه الأشياء في الاعتبار ، ما نريد المضي قدمًا والقيام به هو إنشاء بعض الارتباطات في
‫فئة ممثل الشخصية لدينا والتي تربط بعض المدخلات.
‫إذن بعض المدخلات من لوحة المفاتيح والماوس ووحدة التحكم الخاصة بك لهذه الوظائف.
‫لذلك سنفعل القليل ثم سنقوم بتحدي للقيام بالباقي.
‫لذلك دعنا ننتقل إلى كود Visual Studio وأنا في شخصية مطلق النار.
‫H ولاحظنا أن لدينا هنا بالفعل وظيفة مكون إدخال مشغل الإعداد.
‫هذا هو المكان الذي نحتاج فيه إلى ربط مدخلاتنا.
‫سوف تضرب F12 للانتقال إلى C ++.
‫سأقوم بالضغط على Alt oh للانتقال إلى C ++ والعثور على المكان الذي حصلنا فيه على هذا الإعداد.
‫أول شيء هو أنه يعطينا عنصر الإدخال هذا الذي نريد الارتباط به.
‫إذا كنت تتذكر ، فهذه هي الطريقة التي نقوم بها.
‫لدينا عنصر إدخال لاعب ، نستخدم عامل تشغيل السهم ثم نقوم بعمل وظيفة ربط هنا.
‫لذلك فهو إما وصول مقيد أو سيكون إجراء ربط اعتمادًا على ما إذا كان إجراءً منفصلاً
‫مثل القفز أو ما إذا كان إجراءً له قيمة مثل النظر لأعلى ولأسفل أو التحرك.
‫الآن ، حتى عندما نقوم بالحركة باستخدام مفتاح ، ما زلنا نميل إلى ربطه باستخدام محور.
‫لذلك سأقوم ببعض الأخطاء المطبعية في الجزء الأول من هذا الفيديو.
‫سأقوم بتصحيحه لاحقًا ، لكن استمر واستخدم محور الربط بدلاً من ربط الإجراء هنا.
‫لذلك حقًا لاتخاذ خطوة إلى الوراء ، نحتاج إلى المضي قدمًا وإعداد هذه الإجراءات والمحاور في إعدادات
‫مشروعنا.
‫لذا دعنا نعود إلى Unreal.
‫انتقل إلى الإعدادات ، وإعدادات المشروع ، ثم سأقوم بإرساء هذا الأمر حتى نتمكن
‫من رؤيته بوضوح شديد وسنذهب إلى قسم الإدخال.
‫لذا أدخل المحرك وقم بإعداد بعض تعيينات المحاور وبعض تعيينات الإجراءات.
‫لذا فإن الأشياء التي سأتعامل معها فورًا هي تعيينات المحاور لأننا ، أولاً
‫وقبل كل شيء ، نتقدم للأمام.
‫وسنقوم أيضًا بإلقاء نظرة على ذلك.
‫الآن ، تذكر ، ليس لدينا تقدم للأمام ونتحرك للخلف لأنه يمكننا فعل ذلك
‫بمقياس سلبي.
‫لذلك ، على سبيل المثال ، أريد أن أقوم بإعداد W Quay الخاص بي ليكون بمثابة تقدمي إلى الأمام.
‫هذا هو المقياس الأول.
‫ولكن إذا أردت أن يكون مفتاح se الخاص بي هو تحركي للخلف ، فلا يزال بإمكاني استخدام المضي قدمًا ، ولكن أعطه مقياسًا ناقصًا
‫واحدًا.
‫مجرد تذكير سريع لك.
‫نفس الشيء مع البحث.
‫سأستخدم الماوس لهذا الغرض.
‫سنغطي مدخلات وحدة التحكم في المحاضرة القادمة.
‫سنستخدم الماوس y.
‫الآن ، تذكر ، y هو الذي يرتفع لأعلى ولأسفل بدلاً من اليسار واليمين لأنه أطول نوعًا
‫ما ، أليس كذلك؟
‫الحرف Y أطول قليلاً من الحرف X.
‫هكذا أتذكرها على أي حال.
‫إذن ، فأرة الماوس Y لأعلى ولأسفل ومن ثم سيتعين علينا تعديل المقياس ، ومعرفة ما إذا كان يسير في الاتجاه
‫الصحيح.
‫لكن هذا سيعطينا في الأساس قيمًا سالبة إذا كنا ننزلق وقيمًا موجبة إذا صعدنا.
‫لذلك قد نحتاج إلى التعديل من خلال البحث لأعلى لنرى ما إذا كان هذا سيذهب في الاتجاه الصحيح.
‫لكنك حصلت على فكرة أنه يمكننا إما قلب المقياس أو عدمه ، اعتمادًا على نوع المدخلات القادمة
‫هنا.
‫لذا بمجرد حصولنا على اسم المحور ، يمكننا العودة إلى C ++.
‫سنقوم بربطه باستخدام ماكرو النص ونص اسم المحور.
‫ثم نحتاج إلى تحديد من سنقوم باستدعاء الوظيفة وما الوظيفة التي سنقوم باستدعائها.
‫ليس لدينا حاليًا وظيفة نريد الاتصال بها ، لذلك سأذهب وأنشئ وظيفة
‫خاصة جديدة في ملف رأس C ++ الخاص بي.
‫وستكون دالة باطلة تسمى المضي قدمًا.
‫وسيأخذ الطفو ، والذي سيكون قيمة المحور.
‫انتهي بفاصلة منقوطة.
‫ولدي القليل من الحيلة ، ملحق صغير هنا يساعدني في تنفيذ هذه الأشياء بشكل
‫أسرع قليلاً عن طريق القيام بتحويل التحكم p و.
‫إذا قمت بكتابة تنفيذ الإنشاء ، فسيتم المضي قدمًا وإنشاء هذا التنفيذ لي في ملف C
‫++.
‫حقا لطيف وسهل.
‫اسم هذا الامتداد.
‫إذا عدت ، أنسى دائمًا أسماء الامتدادات الخاصة بي ، لذلك سأذهب وألقي نظرة على ما قد
‫يكون.
‫نعم ، إنها لعبة صغيرة هنا ، مساعد C ++.
‫إذا قمت بتثبيت هذا الرمز لرمز VTS الخاص بك ، فإنه يسمح لك فقط بالقيام بهذا النوع من الأشياء ، وهو أمر
‫لطيف للغاية.
‫سهل جدا.
‫هذه هي الوظيفة التي نريد إعدادها لاستدعاءها.
‫أولا وقبل كل شيء ، نقول هذا ، هذا هو الهدف.
‫الكائن الحالي هو الهدف لهذه الوظيفة.
‫ثم نمضي قدمًا ونطرح المسألة على مسألة الوظيفة المؤهلة بالكامل ، إلى الشخصية ، والنقطتين ،
‫والنقطتين المضي قدمًا وهذا يجب أن يربطنا بهذه الوظيفة.
‫وأخيرًا ، ما نريد فعله هو تمرير قيمة المحور إلى الوظيفة التي نريد فعلًا
‫الاتصال بها ، وهي دالة أصل.
‫لذلك لا يتعين علينا فعل أي شيء.
‫يمكننا فقط القيام بحركة الإعلانات.
‫إدخال مثل ذلك.
‫لذلك نظرًا لأن هذه هي طريقة المضي قدمًا ، فنحن نريد أن يكون لدينا المتجه الأمامي للممثل.
‫لذا فإن الطريقة التي نفعل بها ذلك هي أنه يمكننا تقديم متجه للأمام مثل ذلك ثم نريده أن يتقدم إلى الأمام بالقدر
‫الذي تعطينا إياه قيمة الوصول حتى نتمكن من الضرب في قيمة المحور.
‫وهذا سيعطينا النتيجة الصحيحة.
‫إذن سنضرب المتجه الأمامي في قيمة المحور.
‫إذا كان واحدًا ، فسنمضي قدمًا ، وإذا كان ناقصًا واحدًا ، يصبح المتجه الأمامي متجهًا متجهًا للخلف
‫ونعود للخلف بهذه الوظيفة الواحدة فقط.
‫هذا هو ما أعدنا للمضي قدمًا.
‫رائعة.
‫الشيء التالي هو الارتباط ببحثنا.
‫لذلك دعونا نذهب وننسخ.
‫أحب دائمًا نسخ مراجع السلسلة هذه حتى لا أخطئ.
‫قم بالبحث وبدلاً من الارتباط للمضي قدمًا ، دعنا نعود إلى رأس الملف وننشئ شيئًا جديدًا.
‫سيتم البحث عن قيمة المحور الطافي لأعلى ومرة أخرى.
‫مثل ذلك.
‫وإذا كنت أتحكم في التحول P وقمت بإنشاء التنفيذ ، فسيمضي قدمًا ويوفر لي القليل من الوقت.
‫وهذه المرة بدلاً من إضافة مدخلات الحركة ، نريد استخدام إحدى تلك الوظائف الأخرى
‫التي كانت تحت تصرفنا.
‫وهي مدخلات العرض التقديمي لوحدة التحكم في الإعلانات لأننا نريد طرح الفكرة بشكل أساسي.
‫لذلك هذه المرة يمكننا عمل وحدة تحكم في الإعلانات.
‫مدخلات الملعب وتمرير قيمة المحور مباشرة.
‫حاليا.
‫الآن كن أكثر خبرة من بين مبرمجي C ++ ، فقد تقول ، مهلا ، هذه الوظيفة لا تفعل شيئًا في الأساس.
‫إنها فقط تستدعي بعض الوظائف الأخرى بنفس المعامل.
‫لذا فهي لا تفعل الكثير حقًا.
‫وكنت على حق.
‫لذا ما يمكننا القيام به هو أنه يمكننا إجراء بحث عن شخصية مطلق النار حتى نتمكن من استدعاء الوظيفة
‫التي تم تعريفها في هذه الفئة بشخصية مطلق النار.
‫أو يمكننا أن نقول ، حسنًا ، هناك مدخلات تحكم إضافية في الملعب يمكننا تسميتها مباشرة ، أليس كذلك؟
‫لذا ، إذا استخدمنا F12 لمعرفة المكان المحدد وذهبت وانتقلت إليه ، يمكنك أن ترى أنه
‫يتم تعريفه بالفعل في البيدق h.
‫لذلك إذا قمت بالتمرير لأعلى ، يمكنك رؤية كل الطريق هنا في مكان ما سنجد فيه فصلًا.
‫دعنا ، يمكننا حتى البحث فقط عن مساحة الفصل ، شيء من هذا القبيل.
‫وهنا لدينا بيدق هو الطبقة.
‫لذا دعنا نعود إلى شخصية مطلق النار وما يمكننا تجربته وجعل هذا أقصر قليلاً بالقول بدلاً
‫من ذلك ، دعونا نقوم بعمل نقطتين ، ونقطتين ، ونضيف مدخلات وحدة التحكم بحيث تستدعي تلقائيًا هذه الوظيفة الأبوية مباشرةً
‫بدلاً من الاضطرار إلى ذلك انتقل من خلال وظيفتنا الخاصة.
‫هذه طريقة صحيحة للقيام بذلك أيضًا ، لكنها ليست ضرورية.
‫لذلك سأقوم بالتعليق عليها حتى تتمكن من الرجوع إليها ورؤيتها إذا كنت تريد القيام بذلك بهذه الطريقة.
‫لكنني أوصي بالقيام بذلك في الطريق الأقصر قليلاً مثل ذلك.
‫أثناء محاولتي تجميعها ، لاحظت أنه بدلاً من الاتصال خلف المحور ، كما كنت أرغب
‫في القيام بذلك ، كنت أقوم بعمل ملزم.
‫لذلك ربما كنت تصرخ على شاشتك طوال الوقت.
‫دعنا نمضي قدمًا ونبني ذلك مرة أخرى.
‫بالمناسبة ، أفعل ذلك من خلال تحول التحكم B واختيار خيار الإنشاء.
‫هذا هو محرر إطلاق النار البسيط الذي يفوز بـ 64 بنية تطوير ، وهي مجرد طريقة أسرع بالنسبة لي من الذهاب
‫والضغط على زر الترجمة.
‫سأبحث ولا يمكنني الحصول على بناء الجملة الخاص بي اليوم.
‫بالطبع نحتاج إلى استخدام علامة العطف أمام هذه الوظيفة لنقول أساسًا أننا نريد الحصول
‫على المؤشر.
‫نريد استخدام علامة العطف أمام هذه الدوال للحصول على الصيغة الصحيحة هنا.
‫تمام.
‫لذلك بعد أن صححت هذين الخطأين الشائعين ، أحدهما أنني تلقيت استدعاء دالة خاطئًا والآخر أنني
‫لم أحصل على علامة العطف أمام الوظائف التي أحاول استخدامها.
‫دعنا ننتقل إلى Unreal ونرى ما إذا كان هذا يعمل بالفعل.
‫إذا تقدمت وضغطت على تشغيل واستخدمت مفتاح W ومفتاح S ، يمكنك أن ترى أنه يمكنني التحرك للأمام وللخلف.
‫شيء مذهل.
‫وباستخدام الفأرة ، يمكنني النظر لأعلى ولأسفل ، لكنني أشعر في الوقت الحالي بانعكاس حركتي.
‫لذلك سأنتقل إلى إعدادات المنتج واضغط على ناقص واحد هناك وأمضي قدمًا وأضرب التشغيل.
‫والآن إذا صعدت لأعلى ولأسفل ، أشعر أنني على صواب.
‫لاحظ أنني في الواقع أقوم بوضع البيض في موقعين مختلفين.
‫هذا لأنني يجب أن أبدأ اللعب عندما أضع الثاني.
‫لم أكن أدرك أنه كان هناك بالفعل واحد في المستوى ، وهذا هو سبب تزاوجي هنا في بعض الأحيان ، وأحيانًا
‫أضع البيض في مكان مختلف.
‫قد تجد نفس الشيء.
‫لذلك حان وقت التحدي.
‫لنجعلكم تلتزمون بحقوق الفيلم الخاصة بك وستبدو على ما يرام حتى نتمتع بالسيطرة الكاملة على حركتنا.
‫لذا كرر العملية التي قمت بها للتو في المحاضرة لهذين الاثنين وربما كنت تتابعها
‫على طول.
‫إذا لم يكن كذلك ، يمكنك الدخول ومشاهدة المراجعة.
‫وأود أيضًا أن تجرب وظيفة القفز أيضًا.
‫إذا كنت تشعر بالشجاعة ، أوقف الفيديو واذهب.
‫تمام.
‫مرحبًا بعودتك.
‫لذلك دعونا نجرب هذا.
‫بادئ ذي بدء ، نحن نكرر الخطوات المذكورة أعلاه للمضي قدمًا والبحث.
‫لذلك سنقوم بالتحرك ، أليس كذلك؟
‫وسنقوم بدلاً من البحث لأعلى ، أن ننظر بشكل صحيح.
‫ويمكننا المضي قدمًا ونسخها لإعداد محاورنا في إعدادات المشروع.
‫لذا أضف زوجًا آخر من تعيينات المحاور.
‫الأول سيكون التحرك ، إلى اليمين ، والذي سأقوم بتعيينه على المفتاح ، أربعة إلى اليسار.
‫لذلك سيكون هذا هو ناقص واحد.
‫سيكون A ناقص واحد لأنه في الواقع يترك عكس اليمين و DX سيكون أربعة في الوقت
‫الحالي.
‫من الواضح أنه يمكنك إضافة مفاتيح الأسهم هنا أيضًا.
‫أنا لا أفعل ذلك لتوفير الوقت.
‫لكن يمكنك المضي قدمًا وفعل الشيء نفسه.
‫يمكنك فقط إضافة المزيد من المفاتيح هنا ، أي عدد من المفاتيح تريد تعيينه إلى مظهر المحور الفردي.
‫الصحيح.
‫سنستخدم الماوس x.
‫وأعتقد أن على المرء أن يكون كافياً وليس ناقصاً.
‫لا أعتقد أنه يتعين علينا قلب هذا.
‫ثم ما سنفعله هو أننا سنربط هذا بشكل مختلف قليلاً.
‫لذلك سوف أذهب بديلًا ، وننشئ لأنفسنا وظيفة الحركة الصحيحة هنا.
‫الآن قد تتساءل ، لماذا نفعل هذا بشكل مختلف؟
‫لماذا التحرك صحيح؟
‫لماذا لا ندعو مباشرة لإضافة مدخلات الحركة؟
‫الفرق هنا هو أننا نقوم ببعض الحسابات.
‫نضيف في هذا الضرب بواسطة متجه ، وهو ما يضيف القليل من المعلومات
‫ويبرر وجود هذه الدالة.
‫لذا هذه المرة ، بدلاً من الحصول على فعل للأمام ، أريد أن تجعل المتجه الصحيح للممثل مثل
‫ذلك وضربه في قيمة المحور ثم نريد الاتصال بدلاً من المضي قدمًا.
‫نريد أن ندعو الخطوة الآن لإلقاء نظرة.
‫الصحيح.
‫بدلاً من إضافة مدخلات وحدة التحكم في الملعب ، نريد أن نقوم بالإدخال الخاص بك.
‫تذكر لفة الملعب وأنت من الطائرات.
‫يمكنك البحث عنه على ويكيبيديا إذا لم تكن متأكدًا من أيهما والمضي قدمًا وبناء ذلك.
‫أتمنى ألا أكون قد فهمت بناء الجملة بشكل خاطئ هذه المرة.
‫دعنا نتعمق في المحرر ونبدأ التشغيل وهناك تذهب.
‫يمكنني النظر من حولي.
‫هذا يبدو جيدًا.
‫يمكنني مهاجمه اليسار واليمين.
‫يمكنني المضي قدما والخلف.
‫الشيء المتبقي لنا هو القفز ، والذي سيكون رسم تخطيطي للعمل وليس محورًا ، لأنه إجراء
‫منفصل وأطلق عليه اسم القفز وانسخه.
‫انتقل إلى رمز Visual Studio.
‫وأغلق فقط نافذة الترجمة الخاصة بي وهنا سأقوم بذلك بدلاً من ربط محور ، لقد حصلت عليه.
‫سأقوم بإلزام إجراء ملزم لإجراء.
‫سهل هكذا.
‫سيبدأ مع النص هنا.
‫من القفز.
‫لكن الشيء الذي يختلف مع المحاور ، كما تتذكر على الأرجح.
‫هل نحتاج إلى استخدام بناء الجملة هذا ، حدث الإدخال ، وهو تعداد ، مما يعني أنه يمكن أن يأخذ في الأساس عددًا من هذه الخيارات المختلفة
‫، والنقر المزدوج ، والبيان الصحفي ، وما إلى ذلك. سنرغب في الضغط على
‫مثل هذا ، لذا.
‫هذا ما أقوم بتأكيده مضغوطًا وبعد ذلك بمجرد أن نعرف أنه يمكننا المضي قدمًا وفعل الشيء
‫نفسه ، ثم نريد أن ندعو للقفز.
‫الآن أين يتم تعريف القفزة؟
‫هل هو في -؟
‫لنلقي نظرة.
‫لا ، ولكن قد يكون في الشخصية.
‫لذلك سأقوم بمراقبة P وأبحث عن الشخصية.
‫نقطة H.
‫افتح ذلك وألقِ نظرة هنا فقط ، واعرف ما إذا كان لديهم وظيفة قفزة محددة هنا.
‫غالبًا ما يكون القفز ثم فتح الأقواس طريقة جيدة للبحث عن الوظائف داخل ملفات الرأس.
‫من المؤكد أننا حصلنا على هذه الوظيفة.
‫تستطيع أن ترى الوثائق.
‫غالبًا ما أحب استخدام الكود المصدري مباشرةً بدلاً من البحث عن أي ملفات توثيق.
‫أجد أنه في بعض الأحيان يكون الوصول إليه أسرع كثيرًا ، خاصةً عندما يكون لديك حق الوصول إلى التحكم.
‫P في كود Visual Studio.
‫لذا ما علينا القيام به هو بدلاً من الذهاب - ، القولون ، النقطتان ، نحتاج إلى عمل حرف النقطتين ، النقطتين.
‫لذلك ستكون علامة العطف ، علامة النقطتين المحرف.
‫القولون هذا لأن هذا هو الفصل الذي تم تعريفه فيه.
‫لا يمكننا البحث عن التسلسل الهرمي عندما نقوم بعمل عامل القولون والنقطتين وبعد ذلك سيكون مجرد
‫قفزة.
‫لذا الشخصية ، القولون ، قفزة القولون.
‫ولا تنس أنني بحاجة إلى فاصلة منقوطة في نهاية السطر.
‫المضي قدمًا والبناء ومعرفة ما إذا كنا قادرين على القفز الآن.
‫حسنًا ، تم البناء بشكل صحيح.
‫دعنا ننتقل إلى مستوى وضع الحماية.
‫اضرب اللعب وحاول واقفز.
‫ليس لدي أي مفتاح مقيد ، لذلك قد يعيقني ذلك.
‫أضف شريط المسافة كمفتاح أريد للقفز والمضي قدمًا واضغط تشغيل.
‫ياي.
‫أنا قادر على القفز لأعلى ولأسفل والتحرك في الهواء والتحرك.
‫جميل.
‫لذلك تعلمنا كيفية ربط محاورنا وأفعالنا حيث لم نتعلمها.
‫لقد قمنا بمراجعتها ، لكننا رأينا ما نريد ربطه بشخصية من أجل الحصول على تلك الشخصية
‫الكلاسيكية وهي تقفز وتهاجم وتتحرك وتنظر بالكاميرا الخاصة بك التي نعرفها جميعًا ونحبها من الرماة
‫لدينا.
‫وستلقي المحاضرة التالية نظرة على الفروق الدقيقة المطلوبة للتنقل باستخدام وحدة تحكم ، بالإضافة إلى لوحة مفاتيح
‫وماوس.