كيفية استخدام المواد وتعديلها في Unreal Engine 4

في هذا البرنامج التعليمي، ستتعلم كيفية تعديل الأنسجة في محرر المواد (material editor)، وإنشاء مثيلات للمواد وتحديث حالات المواد (material) أثناء اللعب.

موز ملون

تحتوي الألعاب على مجموعة متنوعة من الكائنات لكل منها مظهرها الخاص كما في العالم الحقيقي، وفي أنريل إينجن (Unreal Engine)، يتم تحديد مظهر هذه المواد وألوانها، وتحديد هذه الأشياء يتم ضمن ما يسمى المادة (material).

وتُستخدم المواد لجميع العناصر المرئية في أنريل إينجن (Unreal Engine)، ويمكن تطبيق مواد على أشياء مختلفة مثل الشبكات والجزيئات وعناصر واجهة المستخدم.

وفي هذا البرنامج التعليمي سوف نتعلم كيفية:

  1. التعامل مع القوام لتغيير السطوع واللون
  2. استخدم مثيلات المواد لإنشاء الاختلافات بسرعة
  3. استخدم مثيلات المواد الديناميكية لتغيير لون الصورة الرمزية أثناء قيام اللاعب بجمع العناصر

وبالإضافة إلى ذلك سوف تتنقل بين محرري المواد والمخططات، وإذا لم تكن على دراية بها، فالرجاء قراءة البرامج التعليمية الخاصة بـ Getting Started وBlueprints.

البداية

قم بتنزيل مشروع البداية وفك ضغطه، ولفتح المشروع، انتقل إلى مجلد المشروع وافتح BananaCollector.uproject.

ملاحظة: إذا تلقيت رسالة تفيد بأن المشروع قد تم إنشاؤه باستخدام إصدار سابق من محرر أنريل (Unreal editor)، فلا بأس بذلك (يتم تحديث المحرك بشكل متكرر)، ويمكنك إما اختيار خيار فتح نسخة (open a copy)، أو خيار التحويل في المكان (convert in place).

سترى مساحة صغيرة تحتوي على الموز، اضغط على (Play) للتحكم في مكعب أحمر باستخدام مفاتيح W و A و S و D، ويمكنك جمع الموز بالانتقال إليه.

حقل موز أصفر

في البداية، ستقوم بتعديل مادة الموز لتغيير لمعانها، ومن أجل ذلك انتقل إلى مجلد المواد وانقر نقراً مزدوجاً على M_Banana لفتحه في محرر المواد (material editor).

تعديل مادة الموز

من أجل ضبط سطوع الموز، تحتاج إلى تعديل قوامه.

تعديل قوام الموز

تعديل النسيج (Manipulating Textures)

النسيج عبارة عن صورة، والصورة عبارة عن مجموعة من وحدات البكسل، وفي الصورة الملونة، يتم تحديد لون البكسل بقنواته الأحمر (R) والأخضر (G) والأزرق (B).

وفي الشكل أدناه يوجد مثال لصورة 2 × 2 مع تسمية قيم RGB لكل بكسل.

تعديل ألوان النسيج

ملاحظة: في أنريل إينجن (Unreal Engine)، يتراوح نطاق قنوات RGB من 0.0 إلى 1.0، أما في معظم التطبيقات الأخرى، يتراوح نطاق قنوات RGB من 0 إلى 255، وهذه مجرد طرق مختلفة لعرض نفس المعلومات ولا تعني أن نطاق ألوان أنريل إينجن (Unreal Engine) أصغر من باقي التطبيقات.

تعمل معالجة النسيج عن طريق إجراء عملية على كل بكسل من النسيج، ويمكن أن تكون العمليات شيء بسيط مثل إضافة قيمة إلى القنوات.

ويوجد في الشكل أدناه مثال على تثبيت كل قناة في نطاق يتراوح من 0.4 إلى 1.0، ويؤدي القيام بذلك إلى رفع الحد الأدنى لقيمة كل قناة مما يجعل كل لون أفتح.

ألوان

إليك كيفية القيام بذلك في محرر المواد:

محرر المواد

بعد ذلك، ستستخدم عقدة الضرب (Multiply) لضبط سطوع النسيج.

عقدة الضرب (The Multiply Node)

تعمل عقدة الضرب (Multiply) كما يوحي اسمها، فهي تضاعف مدخلاً بمدخل آخر.

ويمكنك تغيير سطوع البكسل دون التأثير على لونه أو تشبعه باستخدام عملية الضرب، ويوجد أدناه مثال على تقليل السطوع بمقدار النصف بضرب كل قناة في 0.5.

عقدة الضرب

ومن خلال إجراء هذه العملية على كل بكسل، يمكنك تغيير سطوع النسيج بأكمله.

عمل عقدة الضرب

على الرغم من عدم التطرق لها في هذا البرنامج التعليمي، إلا أنه يمكنك استخدام عقدة الضرب (Multiply) جنباً إلى جنب مع نسيج القناع، وباستخدام قناع، يمكنك تحديد مناطق النسيج الأساسي التي يجب أن تكون أغمق، وهذا مثال على إخفاء نسيج حجري باستخدام نسيج البلاط:

قناع (1)

ويعمل نظام القناع (Masking) لأن التدرج الرمادي يمثل النطاق من 0 (أسود) إلى 1 (أبيض).

grayscale

حيث يكون سطوع المناطق البيضاء كامل لأن القنوات مضروبة في 1، والمناطق الرمادية أغمق لأن القنوات مضروبة بقيم أقل من 1، والمناطق السوداء ليس لها سطوع لأن القنوات مضروبة في 0.

حان الوقت الآن لاستخدام عقدة الضرب (Multiply node).

ضبط سطوع النسيج (Adjusting Texture Brightness)

قم بفصل الرابط بين عقدة (Texture Sample) ودبوس اللون الأساسي (Base Color pin)، ويمكنك القيام بذلك عن طريق النقر بزر الماوس الأيمن فوق أي من الدبوس وتحديد كسر الارتباط (Break Link(s))، وبدلاً من ذلك، يمكنك الضغط على مفتاح Alt والنقر بزر الماوس الأيسر على السلك.

ضبط سطوع النسيج

أنشئ عقدتي ضرب وثابت (Multiply and Constant)، ويمكنك إنشاء هذه العقد بسرعة عن طريق الضغط على المفتاح M (للعقدة Multiply) أو المفتاح 1 (للعقدة Constant) ثم النقر بزر الماوس الأيسر فوق مساحة فارغة في الرسم البياني، وبعد ذلك، اربط كل شيء على هذا النحو:

عقد النسج

سيؤدي هذا الإعداد إلى تكرار كل بكسل وضرب كل قناة في قيمة العقدة الثابتة (Constant)، وأخيراً، يتم إخراج النسيج الناتج على أنه اللون الأساسي.

وفي الوقت الحالي، سيكون النسيج الناتج باللون الأسود لأن عقدة الضرب (Multiply) مضبوطة على صفر (ينتج عن الضرب في صفر صفر)، ولتغيير قيمة عقدة الضرب (Multiply)، حدد عقدة الثابت (Constant) وانتقل إلى لوحة التفاصيل (Details panel)، واضبط حقل القيمة على 5.

ضبط

وبعد ذلك، انقر فوق تطبيق (Apply) ثم ارجع إلى المحرر الرئيسي، وسترى أن الموز أصبح أكثر سطوعاً الآن.

حقل موز أصفر 2

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

لمحة عن مثيلات المواد (About Material Instances)

مثيل المادة هو نسخة من المادة، وأي تغييرات يتم إجراؤها على المادة الأساسية، يتم تطبيقها على مثيل المادة.

وتعتبر مثيلات المواد شيئا رائعا لأنه يمكنك إجراء التغييرات عليها دون إعادة تجميعها، وعند النقر فوق تطبيق (Apply) في المادة، ربما تكون قد لاحظت إشعاراً يفيد بأن التظليل يتم تجميعه.

لمحة عن مثيل المادة

وعلى الرغم من أن هذه العملية تستغرق بضع ثوانٍ فقط على المواد الأساسية، فإنها في المواد المعقدة، يمكن أن تزيد أوقات الترجمة (compile) بشكل كبير.

شكل تعبيري

ومن الجيد استخدام مثيلات المواد عندما:

  1. لديك مادة معقدة وتريد إجراء تغييرات بسرعة.
  2. تريد إنشاء أشكال مختلفة من المواد الأساسية، ويمكن أن تكون أي شيء مثل تغيير اللون أو السطوع أو حتى النسيج نفسه.

وفي الشكل أدناه يوجد مشهد يستخدم مثيلات المواد لإنشاء اختلافات لونية، وتشترك جميع الحالات في نفس المادة الأساسية.

استخدام مثيلات المواد

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

إنشاء عوامل المواد (Creating Material Parameters)

ارجع إلى محرر المواد (material editor) وتأكد من أنك لا تزال في مادة M_Banana.

أولاً، أنت بحاجة إلى عقدة ستغير لون النسيج، ويمكنك استخدام عقدة (Hue Shift) لهذا الغرض، أضف واحدة إلى الرسم البياني واربطها على النحو التالي:

إنشاء عوامل المواد

بعد ذلك، تحتاج إلى إنشاء عقدة (Scalar Parameter)، وتحتوي هذه العقدة على قيمة واحدة وستكون قابلة للتحرير في مثيل المادة.

ويمكنك إنشاء واحدة بسرعة عن طريق الضغط على مفتاح S والنقر بزر الماوس الأيسر على مساحة فارغة في الرسم البياني.

وبمجرد إنشائها، قم بتوصيلها بدبوس Hue Shift Percentage (S) على عقدة HueShift.

ربط العقد

ومن الجيد تسمية العوامل الخاصة بك، وحدد عقدة (Scalar Parameter) ثم انتقل إلى لوحة التفاصيل (Details panel)، وقم بتغيير اسم العامل إلى (HueShiftPercentage).

تسمية العوامل

يمكنك أيضاً تحويل عقد الثابت (Constant) إلى عوامل عددية، ومن أجل ذلك انقر بزر الماوس الأيمن فوق عقدة الثابت (Constant) التي أضفتها سابقاً، ثم حدد تحويل إلى عامل، وبعد ذلك، أعد تسمية العامل إلى (Brightness).

تحويل عقدة الثابت

لقد انتهيت الآن من تحديد عوامل المادة الأساسية، انقر فوق تطبيق (Apply) ثم أغلق محرر المواد.

بعد ذلك، ستقوم بإنشاء مثيل للمادة.

إنشاء مثيل للمادة (Creating a Material Instance)

انتقل إلى مستعرض المحتوى (Content Browser) وتأكد من أنك في مجلد المواد (Materials folder)، وانقر بزر الماوس الأيمن فوق M_Banana وحدد إنشاء مثيل للمادة، وأعد تسمية الأصل الجديد إلى MI_Banana_Green.

قائمة مثيل المادة

والآن، نقرة مزدوجة فوق MI_Banana_Green لفتحه، وسيؤدي هذا إلى فتحه في محرر مثيل المادة (material instance editor).

ويتكون في محرر مثيل المادة (material instance editor) من ثلاث لوحات:

محرر مثيل المادة
  1. التفاصيل (Details): هو المكان الذي ستظهر فيه العوامل والإعدادات العامة الأخرى.
  2. Instance Parents: يعرض قائمة بالمواد الرئيسية للمثيل الحالي، وفي هذه الحالة، الوالد الوحيد هو M_Banana.
  3. منفذ العرض (Viewport): يحتوي على شبكة معاينة تعرض مثيل المادة الخاص بك، قم بتدوير الكاميرا عن طريق الضغط على زر الماوس الأيسر وتحريك الماوس، وقم بالتكبير عن طريق تمرير عجلة الماوس.

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

سترى الآن شبكة الموز بدلاً من الكرة.

قائمة

بعد ذلك، ستقوم بتعديل العوامل لضبط لون الموزة إلى اللون الأخضر، ولجعل العوامل قابلة للتعديل، انقر بزر الماوس الأيسر على مربع الاختيار بجوار كل عامل.

ضبط لون الموزة

اضبط السطوع (Brightness) على 0.5 واضبط HueShiftPercentage على 0.2، وستكون النتيجة كما في الصورة:

ضبط السطوع - موزة خضراء

الآن بعد أن أنشأت مثيلات المادة الخاصة بك، حان الوقت لتطبيقها على بعض أنواع الموز، ومن أجل ذلك أغلق مثيل المادة وانتقل إلى منفذ العرض (Viewport) في المحرر الرئيسي (main editor).

تطبيق مثيل المادة (Applying the Material Instance)

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

حدد أي موزة ثم انتقل إلى لوحة التفاصيل (Details panel)، وفي قائمة المكونات (component list)، حدد مكون الشبكة الثابتة (StaticMesh).

تطبيق مثيل المادة

سيتم تحديث لوحة التفاصيل (Details panel) وفق خصائص المكون (StaticMesh)، قم بتغيير المادة إلى MI_Banana_Green.

مواد

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

حقل موز ملون

المادة المتغيرة ديناميكياً (A Dynamically Changing Material)

لا يجب أن تكون المواد متعلقة بالمظهر الجمالي فقط، وإنما يمكنك استخدامها للمساعدة في تصميم اللعبة أيضاً.

وبعد ذلك، ستتعلم كيفية تغيير لون المكعب ديناميكياً من الأبيض إلى الأحمر حيث يجمع اللاعب المزيد من الموز.

وقبل إنشاء مثيل المادة بالنسبة للمكعب، ستحتاج إلى إعداد مادة المكعب.

ومن أجل ذلك، تأكد من أنك في مجلد المواد ثم انقر نقراً مزدوجاً على M_Cube لفتحه.

أولاً، أنت بحاجة إلى طريقة لإنشاء الألوان، وستجد عقدة (Constant3Vector) متصلة باللون الأساسي، وهذه العقدة مثالية لاختيار الألوان لأنها تحتوي على قناة حمراء وخضراء وزرقاء.

المادة المتغيرة ديناميكياً

وباعتبار أن اللون الأحمر قد تم إنشاؤه بالفعل، فسوف تقوم بإنشاء اللون الأبيض، ومن أجل ذلك قم بإضافة عقدة (Constant3Vector) أخرى.

ويمكنك القيام بذلك بسهولة عن طريق الضغط على المفتاح 3 والنقر بزر الماوس الأيسر على مساحة فارغة في الرسم البياني.

بعد ذلك، أظهِر منتقي الألوان بالنقر المزدوج على عقدة Constant3Vector.

اختيار ألون

ثم اضبط اللون على الأبيض إما باستخدام أشرطة التمرير أو بإدخال قيمة 1.0 في قنوات R و G و B، وبعد ذلك، اضغط على زر موافق (OK).

ضبط اللون

ولتغيير اللون من الأبيض إلى الأحمر، تحتاج إلى طريقة للانتقال بسلاسة بينهما، والطريقة السهلة للقيام بذلك هي استخدام الاستيفاء الخطي (linear interpolation).

ما هو الاستيفاء الخطي (Linear Interpolation)؟

الاستيفاء الخطي هو طريقة للعثور على القيم بين نقطتين A و B، على سبيل المثال، يمكنك استخدام الاستيفاء الخطي للعثور على قيمة تقع في منتصف المسافة بين 100 و 200.

ما هو الاستيفاء الخطي

ويصبح الاستيفاء الخطي أكثر قوة عندما تتحكم في ألفا، حيث أن ألفا يمكن اعتبارها نسبة مئوية بين A و B، وتكون قيمة ألفا 0 عند A بينما تكون ألفا 1 عند B.

وعلى سبيل المثال، يمكنك زيادة مستوى ألفا بمرور الوقت لتحريك كائن بسلاسة من النقطة A إلى النقطة B.

مثال عن الاستيفاء الخطي

وفي هذا البرنامج التعليمي، سيتم التحكم في مستوى ألفا باستخدام كمية الموز التي تم جمعها.

استخدام العقدة (Linear Interpolate)

أولاً، قم بإضافة عقدة (Linear Interpolate), ويمكنك القيام بذلك بسهولة عن طريق الضغط على المفتاح L والنقر بزر الماوس الأيسر على مساحة فارغة في الرسم البياني.

عقدة

بعد ذلك، قم بإنشاء عقدة (Scalar Parameter) وقم بتسميتها (ColorAlpha)، وبعد ذلك، قم بتوصيل العقد الخاصة بك على هذا النحو (لاحظ كيف أصبح اللون الأبيض الآن في الأعلى):

عقدة ألوان

الملخص: ستُخرج العقدة LinearInterpolate قيمة المدخلات A، وهذا لأن القيمة الأولية لألفا هي 0, ومع اقتراب ألفا من 1، سيقترب الناتج من قيمة الإدخال B.

المواد الآن أصبحت جاهزة، ولكن لمعرفة مدى تقدمك حتى الآن، انقر على تطبيق (Apply) ثم أغلق محرر المواد، وإذا ضغطت على (Play)، فسترى أن المكعب أصبح الآن أبيض بدلاً من الأحمر.

حقل موز ملون 2

ولكي نجعل المكعب يغير لونه، نحتاج إلى تحرير العامل (ColorAlpha)، ولكن هناك مشكلة واحدة، تتمثل بأنه لا يمكن تحرير العامل على مثيل المادة أثناء تشغيل اللعبة، يكمن الحل باستخدام مثيل مادة ديناميكية.

لمحة عن مثيلات المواد الديناميكية (About Dynamic Material Instances)

على عكس المثيل العادي، يمكنك تحرير مثيل مادة ديناميكية أثناء اللعب، ويمكنك القيام بذلك باستخدام المخططات (Blueprints) أو C ++.

ويمكنك استخدام مثيلات ديناميكية بعدة طرق مثل تغيير كثافة الكائن لجعله غير مرئي، أو يمكنك زيادة لمعان الكائن عند تعرضه للبلل.

مثيلات المواد الديناميكية

ومن مزايا مثيلات المواد الديناميكية أيضاً، إمكانية تحريرها بشكل فردي.

وفي الشكل أدناه يوجد مثال لتحديث المثيلات الفردية لإخفاء مناطق الكائن.

تحديث المثيلات الفردية

حان الوقت لإنشاء مثيل مادة ديناميكية

إنشاء مثيل مادة ديناميكية (Creating a Dynamic Material Instance)

يمكنك فقط إنشاء مثيلات مادة ديناميكية أثناء اللعب، ويمكنك استخدام المخططات Blueprints (أو C ++) للقيام بذلك.

في متصفح المحتوى، انتقل إلى مجلد المخططات (Blueprints) وانقر نقراً مزدوجاً على BP_Player لفتحه.

إنشاء

أول شيء ستفعله هو إنشاء مثيل مادة ديناميكية جديد ثم تطبيقه على شبكة المكعب، ومن الجيد أن تفعل ذلك عندما يوّلِد أنريل (Unreal) الممثل، وهذا هو الغرض من عقدة (Event BeginPlay).

وتأكد من أنك في (Event Graph) ثم حدد موقع عقدة (Event BeginPlay).

عقدة

الآن، أضف عقدة إنشاء مثيل مادة ديناميكية (StaticMesh)، وستنشئ هذه العقدة في نفس الوقت وتطبق مثيل مادة ديناميكية جديدة على شبكة المكعب.

عقدة إنشاء مثيل مادة ديناميكية

بعد ذلك، تحتاج إلى تحديد المادة التي يجب أن يستخدمها المكعب، ومن أجل ذلك انقر فوق القائمة المنسدلة ضمن Source Material وحدد M_Cube.

تحديد المادة

وللإشارة إلى المادة بسهولة في وقت لاحق، من الأفضل تخزينها في متغير، وأسهل طريقة للقيام بذلك هي عن طريق النقر بزر الماوس الأيمن فوق دبوس قيمة الإرجاع في عقدة إنشاء مثيل مادة ديناميكية (Create Dynamic Material Instance)، وبعد ذلك، حدد ترقية إلى متغير (Create Dynamic Material Instance).

تغيير القيمة

إذا نظرت إلى علامة التبويب (My Blueprint)، ستلاحظ أن لديك متغير جديد، قم بإعادة تسميته إلى (CubeMaterial) ويمكنك القيام بذلك بسرعة عن طريق الضغط على المفتاح F2.

قائمة متغيرات

أخيراً، اربط عقدة (Event BeginPlay) بعقدة إنشاء مثيل مادة ديناميكية (Create Dynamic Material Instance).

ربط العقد 2

الملخص: بمجرد أن يوّلد أنريل BP_Player، فإنه سينشئ مثيل مادة ديناميكية جديد ويطبقه على مكون StaticMesh، وسيقوم بعد ذلك بتخزين المادة في متغير يسمى CubeMaterial.

الخطوة التالية هي إنشاء عداد لتتبع كمية الموز التي تم جمعها.

إنشاء عداد الموز (Creating the Banana Counter)

إذا قمت بالتحريك لأسفل قليلاً من عقدة Event BeginPlay، فسترى المشهد الموضح في الشكل أدناه، وهذا هو المكان الذي ستقوم فيه بتحديث عداد الموز والمواد.

إنشاء عداد الموز

سيتم تنفيذ عقدة On Component Overlap عندما يتداخل المكعب مع ممثل آخر، بعد ذلك، تتحقق عقدة Cast to BP_Banana مما إذا كان الممثل المتداخل هو موزة.

وإذا كان الممثل عبارة عن موزة، فإن عقدة DestroyActor ستدمرها حتى تختفي من اللعبة.

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

ومن أجل ذلك، قم بإنشاء متغير (Float) جديد وقم بتسميته BananaCounter، واسحب وانقر فوق متغير (BananaCounter) في (Event Graph) وحدد (Get).

عقدة عداد الموز

ولزيادة العداد بمقدار واحد، أضف عقدة (IncrementFloat)، وبمجرد إنشائها قم بتوصيل (BananaCounter) بها.

زيادة عداد الموز

بعد ذلك، قم بتوصيل عقدة (DestroyActor) بعقدة (IncrementFloat).

تحطيم الروابط

الآن، عندما يجمع اللاعب موزة، سيزداد متغير BananaCounter بواحد.

وإذا كنت ستستخدم BananaCounter باعتباره ألفا الآن، فستحصل على نتائج غير متوقعة، وهذا لأن عقدة LinearInterpolation تتوقع قيمة في النطاق من 0 إلى 1, ويمكنك استخدام التسوية لتحويل العداد إلى نطاق من 0 إلى 1.

ولتحقيق التسوية، ما عليك سوى قسمة BananaCounter على قيمة قصوى، وهذه القيمة هي عدد الموز الذي يحتاج اللاعب لجمعه قبل أن يصبح المكعب أحمر بالكامل.

أضف عقدة (float / float) وقم بتوصيل دبوسها العلوي بالدبوس المتبقي من عقدة IncrementFloat.

ضبط عداد الموز

واضبط الإدخال السفلي لعقدة (float / float) على 6، وهذا يعني أن المكعب سيتحول إلى اللون الأحمر تماماً بمجرد أن يجمع اللاعب 6 موزات.

ضبط

والمشكلة التي سوف تظهر الآن هي أنه عندما يجمع اللاعب أكثر من 6 موزات، ستصبح قيمة ألفا أكبر من 1، ولإصلاح ذلك، استخدم عقدة Clamp (float) للحفاظ على ألفا في النطاق من 0 إلى 1.

أضف عقدة Clamp (float) وقم بتوصيل دبوس القيمة بالدبوس الأيمن لعقدة (float / float).

ربط العقد 3

والآن، بعد أن أصبح لديك ألفا جاهزة، حان الوقت لإرسالها إلى المادة.

تحديث المادة (Updating the Material)

اسحب وانقر فوق المتغير (CubeMaterial) في (Event Graph) وحدد (Get).

بعد ذلك، اسحب دبوس المتغير (CubeMaterial) إلى مساحة فارغة ثم حرر النقر بزر الماوس الأيسر.

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

وقم بإضافة عقدة (Set Scalar Parameter Value)، وستقوم هذه العقدة بتعيين معلمة محددة للقيمة المزودة.

تحديث المادة

الآن، تحتاج إلى تحديد العوامل التي تريد تحديثها، ومن أجل ذلك قم بتعيين حقل اسم العامل إلى ColorAlpha، وهذا هو العامل الذي قمت بإنشائه في مادة المكعب.

تحديد العوامل

اربط نتيجة العقدة Clamp (float) بدبوس القيمة لعقدة (Set Scalar Parameter Value).

ربط نتيجة العقدة

أخيراً، اربط عقدة (IncrementFloat) بعقدة (Set Scalar Parameter Value).

ربط عقد نهائي

وهذا هو ترتيب التنفيذ:

  1. عند دخول مكون البدء (StaticMesh): يتم تنفيذه عندما تتداخل شبكة المكعب مع ممثل آخر.
  2. Cast to BP_Banana: للتحقق مما إذا كان الممثل المتداخل هو موزة.
  3. DestroyActor: إذا كان الممثل المتداخل عبارة عن موزة، فقم بتدميرها حتى تختفي.
  4. IncrementFloat: زيادة متغير BananaCounter بمقدار واحد.
  5. float / float: يقسم العداد برقم محدد لتسويته.
  6. Clamp (float): يثبت نتيجة القسمة بحيث لا تحصل على قيمة أعلى من 1.
  7. تعيين قيمة العوامل العددية: تعيين عامل ColorAlpha لمادة المكعب إلى القيمة المتوفرة، وفي هذه الحالة، تكون القيمة هي الإصدار المعياري والمثبت من BananaCounter.

والآن، حان الوقت الاختبار، انقر فوق (Compile) ثم أغلق محرر المخطط (Blueprint).

انقر فوق تشغيل (Play) وابدأ في جمع الموز، وسيبدأ المكعب باللون الأبيض ويتحول تدريجياً إلى اللون الأحمر كلما قمت بجمع الموز، وبمجرد جمع 6 موزات، سيصبح أحمر تماماً.

تنفيذ
المصدر
هنا

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.