إذا كنت تلعب ألعاب AAA الحديثة ، فقد تكون لاحظت وجود اتجاه لاستخدام المناظر الطبيعية المغطاة بالثلوج. على سبيل المثال ، هم في
Horizon Zero Dawn ،
Rise of the Tomb Raider و
God of War . في كل هذه الألعاب ، يحتوي الثلج على ميزة مهمة: يمكنك ترك آثار عليه!
بفضل هذا التفاعل مع البيئة ، يتم تحسين انغماس اللاعب في اللعبة. إنها تجعل البيئة أكثر واقعية ، ولنكن صادقين - إنها مثيرة للاهتمام فقط. لماذا تقضي ساعات طويلة في إنشاء ميكانيكي فضولي إذا كان بإمكانك ترك اللاعب يسقط على الأرض ويصنع ملائكة ثلجية؟
في هذا البرنامج التعليمي سوف تتعلم ما يلي:
- أنشئ آثار أقدام باستخدام التقاط المشهد لإخفاء الأشياء القريبة من الأرض
- استخدم قناعًا مع مادة التضاريس لإنشاء ثلج قابل للتشوه
- للتحسين ، اعرض آثار الأقدام في الثلج بجوار اللاعب فقط
ملاحظة: من المفهوم أنك معتاد بالفعل على أساسيات العمل مع محرك Unreal. إذا كنت جديدًا ، فراجع سلسلة دروس Unreal Engine للمبتدئين .
للوصول إلى العمل
تنزيل
مواد لهذا البرنامج التعليمي. قم بفك
ضغطها ، انتقل إلى
SnowDeformationStarter وافتح
SnowDeformation.uproject . في هذا البرنامج التعليمي سنقوم بإنشاء آثار بمساعدة شخصية وعدة مربعات.
قبل أن نبدأ ، تحتاج إلى معرفة أن الطريقة من هذا البرنامج التعليمي ستوفر فقط الآثار في منطقة معينة ، وليس حول العالم ، لأن السرعة تعتمد على دقة عرض الهدف.
على سبيل المثال ، إذا أردنا تخزين آثار لمساحة كبيرة ، فسيتعين علينا زيادة الدقة. ولكنه يزيد أيضًا من تأثير التقاط المشهد على سرعة اللعبة وحجم الذاكرة للعرض المستهدف. للتحسين ، تحتاج إلى تحديد النطاق والدقة.
بعد التعامل مع هذا ، دعنا نكتشف ما يلزم لتحقيق آثار أقدام في الثلج.
تنفيذ آثار أقدام في الثلج
أول شيء تحتاجه لإنشاء آثار هو
تقديم الهدف . سيكون هدف التجسيد قناعًا بتدرج الرمادي ، حيث يشير الأبيض إلى وجود أثر ، ويشير الأسود إلى غيابه. ثم يمكننا عرض الهدف على الأرض واستخدامه لخلط القوام وتحويل القمم.
الشيء الثاني الذي نحتاجه هو طريقة لإخفاء الأشياء التي تؤثر على الثلج فقط. يمكن تنفيذ ذلك من خلال عرض الكائنات أولاً في
العمق المخصص . يمكنك بعد ذلك استخدام
التقاط المشهد مع
مادة عملية النشر لإخفاء كل الكائنات المقدمة في العمق المخصص. ثم يمكنك عرض القناع في تجسيد الهدف.
ملاحظة: التقاط المشهد هو في الأساس كاميرا قادرة على إخراج تجسيد الهدف.
أهم جزء من التقاط المشهد هو موقعه. فيما يلي مثال على عرض مستهدف تم التقاطه من
عرض علوي . هنا ، يتم إخفاء شخصية وصناديق الشخص الثالث.
للوهلة الأولى ، يناسبنا الالتقاط مع منظر علوي. تبدو الأشكال مناسبة للشبكات ، لذلك لا ينبغي أن يكون هناك أي مشاكل ، أليس كذلك؟
ليس بالفعل. مشكلة الالتقاط من منظر علوي هي أنه لا يلتقط أي شيء تحت أوسع نقطة. هنا مثال:
تخيل أن الأسهم الصفراء تذهب إلى الأرض. في حالة المكعب والمخروط ، سيظل رأس السهم دائمًا داخل الكائن. ومع ذلك ، في حالة المجال ، تبرز النقطة منه عند الاقتراب من الأرض. ولكن وفقًا للكاميرا ، يكون الطرف دائمًا داخل الكرة. إليك ما سيبدو عليه مجال الكاميرا:
لذلك ، سيكون قناع الكرة أكبر مما ينبغي ، حتى لو كانت منطقة التلامس مع الأرض صغيرة.
بالإضافة إلى ذلك ، يتم استكمال هذه المشكلة بحقيقة أنه من الصعب علينا تحديد ما إذا كان الكائن يتعلق بالأرض.
للتعامل مع هاتين المشكلتين ، يمكنك استخدام الالتقاط
من الأسفل .
قبضة القاع
الالتقاط من الأسفل كما يلي:
كما ترون ، تلتقط الكاميرا الآن الجانب السفلي ، أي الذي يلامس الأرض. هذا يحل مشكلة "أوسع منطقة" تظهر عند الالتقاط من فوق.
لتحديد ما إذا كان الكائن يلمس الأرض ، يمكنك استخدام مواد ما بعد المعالجة لإجراء فحص العمق. يتحقق ما إذا كان عمق الكائن أكبر من عمق الأرض
وما إذا كان أقل من إزاحة محددة مسبقًا. إذا تم استيفاء الشرطين ، فيمكننا إخفاء هذا البكسل.
فيما يلي مثال داخل محرك بمساحة 20 وحدة فوق سطح الأرض. لاحظ أن القناع يظهر فقط عندما يمر الكائن عبر نقطة معينة. لاحظ أيضًا أن القناع يصبح أكثر بياضًا عندما يقترب الجسم من الأرض.
أولاً ، قم بإنشاء مادة ما بعد المعالجة لإجراء فحص متعمق.
إنشاء مواد اختبار العمق
لإجراء فحص عمق ، تحتاج إلى استخدام مخزنين للعمق ، أحدهما للأرض ، والآخر للأشياء التي تؤثر على الثلج. نظرًا لأن التقاط المشهد يرى الأرض فقط ، فإن
عمق المشهد سيستنتج عمق الأرض. للحصول على عمق للكائنات ، سنقوم فقط بتقديمها
عمق مخصص .
ملاحظة: لتوفير الوقت ، قمت بالفعل بتقديم الحرف والمربعات في العمق المخصص. إذا كنت تريد إضافة كائنات أخرى تؤثر على الثلج ، يجب عليك تمكين Render CustomDepth Pass لها.
أولاً ، تحتاج إلى حساب مسافة كل بكسل على الأرض. افتح
Materials \ PP_DepthCheck وقم بإنشاء ما يلي:
بعد ذلك ، تحتاج إلى إنشاء منطقة التقاط. للقيام بذلك ، أضف العقد المميزة:
الآن إذا كان البكسل ضمن
25 وحدة من الأرض ، فسيظهر في القناع. يعتمد إخفاء السطوع على مدى قرب البيكسل من الأرض. انقر فوق
تطبيق والعودة إلى المحرر الرئيسي.
بعد ذلك ، تحتاج إلى إنشاء لقطة مشهد.
إنشاء التقاط المشهد
أولاً ، نحتاج إلى عرض هدف يتم من خلاله التقاط لقطة للمشهد. انتقل إلى مجلد
RenderTargets وقم بإنشاء
هدف Render جديد يسمى
RT_Capture .
الآن دعنا نخلق لقطة المشهد. في هذا البرنامج التعليمي ، سنضيف التقاط المشهد إلى المخطط ، لأنه في وقت لاحق سنحتاج إلى نص برمجي له. افتح
المخططات \ BP_Capture وأضف
مكون التقاط المشهد ثنائي الأبعاد .
اسمها SceneCapture .
نحتاج أولاً إلى ضبط دور الالتقاط بحيث يبدو على الأرض. انتقل إلى لوحة التفاصيل واضبط
الدوران على (0 ، 90 ، 90) .
يأتي بعد ذلك نوع الإسقاط. بما أن القناع هو تمثيل ثنائي الأبعاد للمشهد ، فإننا بحاجة إلى التخلص من تشويه المنظور. للقيام بذلك ، قم بتعيين
نوع Projection \ Projection إلى
Orthographic .
بعد ذلك ، نحتاج إلى إخبار التقاط المشهد بالهدف الذي سيتم التسجيل إليه. للقيام بذلك ، حدد قيمة
RT_Capture ل
Scene Capture \ Texture Target .
أخيرًا ، نحتاج إلى استخدام مواد فحص العمق. أضف PP_DepthCheck إلى
ميزات التقديم \ Post Process Materials . لكي تعمل المعالجة اللاحقة ، نحتاج أيضًا إلى تغيير
مصدر التقاط المشهد / مصدر الالتقاط إلى
اللون النهائي (LDR) في RGB .
الآن بعد أن تم تكوين التقاط المشهد ، نحتاج إلى تحديد حجم منطقة الالتقاط.
تحديد حجم منطقة الالتقاط
نظرًا لأنه من الأفضل استخدام درجات دقة منخفضة للعرض المستهدف ، نحتاج إلى استخدام المساحة بكفاءة. أي أنه يجب علينا اختيار المنطقة التي ستغطيها بكسل واحد. على سبيل المثال ، إذا كانت دقة منطقة الالتقاط والعرض المستهدف هي نفسها ، فإننا نحصل على نسبة 1: 1. سيغطي كل بكسل مساحة 1 × 1 (بوحدات العالم).
بالنسبة للمسارات في الثلج ، لا يلزم وجود نسبة 1: 1 ، لأننا على الأرجح لن نحتاج إلى مثل هذه التفاصيل. أوصي باستخدام نسب أكبر لأن هذا سيسمح لك بزيادة حجم منطقة الالتقاط بدقة منخفضة. ولكن لا تجعل النسبة كبيرة جدًا ، وإلا ستبدأ التفاصيل في الضياع. في هذا البرنامج التعليمي ، سنستخدم نسبة 8: 1 ، أي أن حجم كل بكسل سيكون 8 × 8 وحدات من العالم.
يمكنك تغيير حجم منطقة الالتقاط بتغيير خاصية
Scene Capture \ Ortho Width . على سبيل المثال ، إذا كنت تريد التقاط مساحة 1024 × 1024 ، فقم بتعيين القيمة إلى 1024. نظرًا لأننا نستخدم نسبة 8: 1 ، فقم بتعيين القيمة إلى
2048 (الدقة الافتراضية للعرض الهدف هي 256 × 256).
وهذا يعني أن لقطة المشهد ستلتقط مساحة
2048 × 2048 . حوالي 20 × 20 متر.
تحتاج المواد الأرضية أيضًا إلى الوصول إلى حجم الالتقاط لإسقاط العرض المستهدف بشكل صحيح. أسهل طريقة للقيام بذلك هي عن طريق حفظ حجم الالتقاط في
مجموعة معلمات المواد . هذه في الأساس عبارة عن مجموعة من المتغيرات التي يمكن
لأي مادة الوصول إليها.
حفظ حجم الالتقاط
ارجع إلى المحرر الرئيسي وانتقل إلى مجلد
المواد . قم بإنشاء
مجموعة معلمات المواد التي ستكون في
المواد والقوام . إعادة تسميته إلى
MPC_Capture وفتح.
ثم قم بإنشاء
معلمة Scalar جديدة واسمها
CaptureSize . لا تقلق بشأن تحديد قيمته - سنفعل ذلك بشكل حاد.
ارجع إلى
BP_Capture وأضف العقد المميزة إلى
Event BeginPlay . قم بتعيين
المجموعة إلى
MPC_Capture ، واسم
المعلمة إلى
CaptureSize .
الآن يمكن لأي مادة الحصول على قيمة
Ortho Width من خلال قراءتها من معلمة
CaptureSize . حتى الآن مع التقاط المشهد انتهينا. انقر فوق
ترجمة والعودة إلى المحرر الرئيسي. والخطوة التالية هي إسقاط الهدف على الأرض واستخدامه لتشويه المشهد.
تشوه المناظر الطبيعية
افتح
M_Landscape وانتقل إلى لوحة التفاصيل. ثم قم بتعيين الخصائص التالية:
- للجانبين ، حدد ممكّن . نظرًا لأن التقاط المشهد "سيبدو" من الأسفل ، فسيرى فقط الوجوه العكسية للأرض. افتراضيًا ، لا يعرض المحرك الأوجه الخلفية للشبكات. هذا يعني أنها لن تخزن عمق الأرض في المخزن المؤقت للعمق. لإصلاح ذلك ، نحتاج إلى إخبار المحرك بتقديم جانبي الشبكة.
- بالنسبة للفسيفساء D3D11 ، حدد التغطية بالفسيفساء المسطحة (يمكن أيضًا استخدام مثلثات PN). الفسيفساء سيكسر مثلثات الشبكة إلى أصغر. في الجوهر ، هذا يزيد من دقة الشبكة ويسمح لنا بالحصول على تفاصيل أدق عند تحويل القمم. بدون ذلك ، ستكون كثافة القمم منخفضة جدًا بحيث لا يمكن إنشاء آثار معقولة.
بمجرد تشغيل التغطية بالفسيفساء ، سيتم تشغيل
World Displacement and
Tessellation Multiplier .
تتحكم التغطية بالفسيفساء
المتعددة في كمية التغطية بالفسيفساء. في هذا البرنامج التعليمي ، لن نقوم بتوصيل هذه العقدة ، أي أننا نستخدم القيمة الافتراضية (
1 ).
يحصل
النزوح العالمي على قيمة متجهة تصف في أي اتجاه وكم يتحرك الرأس. لحساب قيمة جهة الاتصال هذه ، نحتاج أولاً إلى إسقاط عرض الهدف على الأرض.
تقديم هدف المشروع
لإسقاط تقديم الهدف ، تحتاج إلى حساب إحداثيات الأشعة فوق البنفسجية. للقيام بذلك ، قم بإنشاء المخطط التالي:
ما الذي يحدث هنا:
- نحتاج أولاً إلى الحصول على الموضع XY للقمة الحالية. نظرًا لأننا نلتقط من الأسفل ، يتم عكس إحداثيات X ، لذا تحتاج إلى قلبها مرة أخرى (إذا كنا سنلتقط من أعلى ، فلن نحتاجها).
- يقوم هذا الجزء بمهمتين. أولاً ، تقوم بتوسيط الهدف بطريقة تجعل منتصفه في إحداثيات (0 ، 0) للفضاء العالمي. ثم تقوم بتحويل الإحداثيات من الفضاء العالمي إلى الفضاء فوق البنفسجي.
بعد ذلك ، قم بإنشاء العقد المحددة ودمج الحسابات السابقة كما هو موضح أدناه.
لعينة النسيج ، حدد
RT_Capture .
سيؤدي هذا إلى عرض الهدف على الأرض. ومع ذلك ، فإن جميع القمم خارج منطقة الالتقاط ستختبر حواف التصيير الهدف. هذه مشكلة بالفعل لأنه يجب استخدام العرض المستهدف فقط للقمم داخل منطقة الالتقاط. إليك ما يبدو في اللعبة:
لإصلاح ذلك ، نحتاج إلى إخفاء جميع الأشعة فوق البنفسجية التي تقع خارج النطاق من 0 إلى 1 (أي منطقة الالتقاط). لهذا ، أنشأت الوظيفة
MF_MaskUV0-1 . تقوم بإرجاع
0 إذا كان الأشعة فوق البنفسجية المرسلة خارج النطاق من 0 إلى 1 وإرجاع
1 إذا كان داخله. بضرب النتيجة في تجسيد الهدف ، نقوم بإجراء إخفاء.
الآن بعد أن عرضنا العرض المستهدف ، يمكننا استخدامه لخلط الألوان وتحريك القمم.
باستخدام الهدف التقديم
لنبدأ بخلط الألوان. للقيام بذلك ، نقوم ببساطة بتوصيل
1-x بـ
Lerp :
ملاحظة: إذا كنت لا تفهم سبب استخدام 1-x ، فسأشرح - هذا ضروري لعكس عرض الهدف ، بحيث تصبح الحسابات أسهل قليلاً.
الآن بعد أن أصبح لدينا أثر ، يتحول لون الأرض إلى اللون البني. إذا لم يكن هناك لون ، فسيظل أبيض.
الخطوة التالية هي إزاحة القمم. للقيام بذلك ، أضف العقد المحددة وربط كل شيء على النحو التالي:
سيؤدي ذلك إلى تحريك جميع مناطق الثلج بمقدار
25 وحدة. لا توجد إزاحة صفرية للمناطق التي لا تحتوي على ثلج ، مما سيؤدي إلى إنشاء مسار.
ملاحظة: يمكنك تغيير DisplacementHeight لزيادة أو تقليل مستويات الثلج. لاحظ أيضًا أن DisplacementHeight هي نفس قيمة إزاحة الالتقاط. عندما يكون لها نفس المعنى ، فإنها تعطينا التشوه الدقيق. ولكن هناك حالات تحتاج فيها إلى تغييرها بشكل فردي ، لذلك تركتها كمعلمات منفصلة.
انقر فوق
تطبيق والعودة إلى المحرر الرئيسي. إنشاء مثيل
BP_Capture على المستوى وإعطائه إحداثيات
(0 ، 0 ، -2000) لوضعه تحت الأرض. انقر على
تشغيل وتجول مع المفاتيح
W و
A و
S و
D لتشويه الثلج.
يعمل التشوه ، ولكن لم يتبق أي أثر! حدث هذا لأن الالتقاط يستبدل عرض الهدف في كل مرة يتم فيها تنفيذ الالتقاط. نحن بحاجة إلى طريقة لجعل المسارات
دائمة .
خلق آثار دائمة
لخلق استمرارية ، نحتاج إلى عرض هدف آخر (
مخزن مؤقت ثابت ) ، حيث سيتم حفظ جميع محتويات الالتقاط قبل الكتابة فوقه. ثم سنضيف مخزنًا مؤقتًا ثابتًا إلى الالتقاط (بعد استبداله). نحصل على حلقة يكتب فيها كل هدف إلى آخر. هذه هي الطريقة التي سننشئ بها ديمومة تتبع.
أولاً ، نحتاج إلى إنشاء مخزن مؤقت ثابت.
إنشاء مخزن مؤقت مستمر
انتقل إلى مجلد
RenderTargets وقم بإنشاء
هدف Render جديد يسمى
RT_Persistent . في هذا البرنامج التعليمي ، لا يتعين علينا تغيير معلمات النسيج ، ولكن في مشروعك الخاص ستحتاج إلى التأكد من أن كلا المستهدفين المستهدفين يستخدمان نفس الدقة.
بعد ذلك ، نحتاج إلى مادة تنسخ الالتقاط في مخزن مؤقت دائم. افتح
Materials \ M_DrawToPersistent وقم بإضافة عقدة
Texture Sample . حدد نسيج
RT_Capture لذلك وقم بتوصيله كما يلي:
الآن نحن بحاجة إلى استخدام مواد الرسم. انقر فوق
تطبيق ، ثم افتح
BP_Capture . أولاً ، قم بإنشاء مثيل ديناميكي للمادة (سنحتاج فيما بعد إلى تمرير القيم إليها). أضف العقد المميزة إلى
Event BeginPlay :
امسح عقد
الهدف ثنائي الأبعاد مسح كل هدف قبل العرض.
ثم افتح وظيفة
DrawToPersistent وأضف العقد المميزة:
بعد ذلك ، نحتاج إلى التأكد من أن الرسم على المخزن المؤقت الثابت يتم في كل إطار ، لأن الالتقاط يحدث في كل إطار. للقيام بذلك ، قم بإضافة
DrawToPersistent إلى
Event Tick .
أخيرًا ، نحتاج إلى إضافة مخزن مؤقت مستمر إلى عرض التقاط الهدف.
سجل مرة أخرى لالتقاط
انقر فوق
ترجمة وافتح
PP_DepthCheck . ثم أضف العقد المميزة. بالنسبة إلى
Texture Sample ، قم بتعيين القيمة على
RT_Persistent :
الآن بعد أن جعل الهدف يكتب إلى بعضنا البعض ، نحصل على آثار متبقية. انقر فوق
تطبيق ، ثم أغلق المادة. انقر فوق
تشغيل وابدأ في ترك المسارات!
تبدو النتيجة رائعة ، ولكن الدائرة الناتجة تعمل فقط لمنطقة واحدة من الخريطة. إذا تجاوزت منطقة الالتقاط ، فستتوقف الآثار عن الظهور.
يمكنك حل هذه المشكلة عن طريق تحريك منطقة الالتقاط مع اللاعب. هذا يعني أن الآثار ستظهر دائمًا حول المنطقة التي يقع فيها اللاعب.
ملاحظة: أثناء تحريك الالتقاط ، تتم إزالة جميع المعلومات الموجودة خارج منطقة الالتقاط. هذا يعني أنه إذا عدت إلى المنطقة التي كانت بها آثار بالفعل ، فستختفي بالفعل. في البرنامج التعليمي التالي ، سأوضح لك كيفية إنشاء مسارات تم الاحتفاظ بها جزئيًا.
تحرك الالتقاط
يمكنك أن تقرر أنه أمر بسيط بما فيه الكفاية لربط موضع التقاط XY بموضع XY للاعب. ولكن إذا قمت بذلك ، فسيبدأ التجسيد المستهدف في التمويه. هذا لأننا نقوم بنقل العرض المصغر بخطوة أقل من بكسل. عند حدوث ذلك ، يكون موضع البكسل الجديد
بين وحدات البكسل. نتيجة لذلك ، يتم استكمال بكسل واحد بواسطة عدة بكسل. إليك ما يبدو عليه:
لإصلاح هذه المشكلة ، نحتاج إلى نقل الالتقاط في خطوات منفصلة. نحسب
حجم البكسل في العالم ، ثم ننقل الالتقاط إلى خطوات مساوية لذلك الحجم. لن يكون كل بكسل بين بعضها أبدًا ، لذا لن يظهر التمويه.
للبدء ، لنقم بإنشاء معلمة يتم تخزين موقع الالتقاط فيها. ستحتاجها مادة الأرض لإجراء حسابات الإسقاط. افتح
MPC_Capture وأضف
معلمة متجه تسمى
CaptureLocation .
بعد ذلك ، تحتاج إلى تحديث مادة الأرض لاستخدام المعلمة الجديدة. أغلق
MPC_Capture وافتح
M_Landscape . يعدل الجزء الأول من حسابات الإسقاط على النحو التالي:
الآن سيتم عرض التقديم المستهدف دائمًا على موقع الالتقاط. انقر فوق
تطبيق وأغلق المادة.
بعد ذلك ، سنقوم بتحريك الالتقاط بخطوة منفصلة.
حركة التقاط خطوة منفصلة
لحساب حجم البكسل في العالم ، يمكنك استخدام المعادلة التالية:
(1 / RenderTargetResolution) * CaptureSize
لحساب المركز الجديد ، نستخدم المعادلة الموضحة أدناه لكل مكون للموضع (في حالتنا ، لإحداثيات X و Y).
(floor(Position / PixelWorldSize) + 0.5) * PixelWorldSize
استخدمها الآن في التقاط مخطط. لتوفير الوقت ، قمت بإنشاء الماكرو
SnapToPixelWorldSize للمعادلة الثانية. افتح
BP_Capture ، ثم افتح وظيفة
MoveCapture . بعد ذلك ، قم بإنشاء الرسم التخطيطي التالي:
سيحسب الموقع الجديد ، ثم يحفظ الفرق بين الموقع الجديد والحالي في
MoveOffset . إذا كنت تستخدم دقة أخرى غير 256 × 256 ، فقم بتغيير القيمة المحددة.
بعد ذلك ، أضف العقد المحددة:
ستقوم هذه الدائرة بتحريك الالتقاط مع الإزاحة المحسوبة. ثم تقوم بحفظ موقع الالتقاط الجديد في
MPC_Capture بحيث يمكن استخدامه بواسطة المواد الأرضية.
أخيرًا ، نحتاج إلى إجراء تحديث الموقع في كل إطار. قم بإغلاق الوظيفة وإضافتها إلى
علامة الحدث قبل
DrawToPersistent MoveCapture .
تحريك الالتقاط هو نصف الحل فقط. نحتاج أيضًا إلى نقل المخزن المؤقت الثابت. خلاف ذلك ، فإن المخزن المؤقت والاستمرار لن يكونا متزامنين وستنتج نتائج غريبة.
نقل عازلة دائمة
لتغيير المخزن المؤقت الثابت ، نحتاج إلى تمرير إزاحة الإزاحة المحسوبة. افتح
M_DrawToPersistent وأضف العقد المميزة:
ونتيجة لذلك ، سيتم إزاحة المخزن المؤقت الثابت بقيمة الإزاحة المرسلة. كما هو الحال في مادة الأرض ، نحتاج إلى قلب إحداثيات X وإجراء إخفاء. انقر فوق
تطبيق وأغلق المادة.
ثم تحتاج إلى نقل الإزاحة. افتح
BP_Capture ، ثم افتح الوظيفة
DrawToPersistent . بعد ذلك ، أضف العقد المميزة:
هذه هي الطريقة التي
نحول بها
MoveOffset إلى مساحة فوق البنفسجية ، ثم
نمررها في مادة الرسم.
انقر فوق "
ترجمة" ، ثم قم بإغلاق المخطط. انقر على
تشغيل وتشغيل لمحتوى قلبك! بغض النظر عن المسافة التي تركضها ، ستظل الآثار دائمًا حولك.
إلى أين أذهب بعد ذلك؟
يمكن تنزيل المشروع النهائي من هنا.
ليس من الضروري استخدام المسارات التي تم إنشاؤها في هذا البرنامج التعليمي للثلج فقط. يمكنك حتى استخدامها لأشياء مثل العشب المسحوق (في البرنامج التعليمي التالي سأوضح كيفية إنشاء نسخة متقدمة من النظام).
إذا كنت ترغب في العمل مع المناظر الطبيعية والتصميمات المستهدفة ، أوصي بمشاهدة الفيديو الخاص بتأثيرات Chris Murphy
Building High Gameplay Effects مع Blueprint . سيوضح لك هذا البرنامج التعليمي كيفية إنشاء ليزر ضخم يحرق الأرض والعشب!