باختصار
- ترث Material Instance الخصائص من المادة الرئيسية؛ ولا يمكن تحرير سوى القيم المحددة كمعلمات.
- تحمل Scalar Parameter قيمة رقمية واحدة، بينما تحمل Vector Parameter قيمة من أربع قنوات.
- لإنشاء نسخة من مادة، تُعدّ أولًا مادة رئيسية تتضمن معلمات، ثم تُنشأ النسخة في Content Browser.
- تساعد مجموعات المعلمات على عرض النسخ التي تحتوي على عناصر تحكم كثيرة بصورة أكثر تنظيمًا في Material Instance Editor.
ما الذي ستتعلمه في هذا الدليل؟
عند إنشاء تنويعات للمواد في Unreal Engine، لا حاجة إلى إعادة بناء مخطط العقد من البداية لكل مظهر جديد. Material Instance هي بنية ترث خصائص مادة رئيسية، وتتيح تغيير القيم المحددة كمعلمات في المادة الرئيسية كلًّا على حدة. وهكذا، يمكن إعداد مواد بألوان ودرجات خشونة ومعدنية مختلفة انطلاقًا من تعريف السطح نفسه.
ستتعلم في هذا الدليل إعداد مادة رئيسية تتضمن معلمات، وإنشاء Material Instance وتحريرها، وتقسيم عناصر التحكم إلى مجموعات. وتشير وثائق Unreal Engine إلى أن هذه الطريقة قد تسرّع سير العمل عبر تقليل الحاجة إلى إعادة ترجمة المواد القياسية. عند تحرير المعلمات، تُحدّث المعاينة؛ وإذا طُبّقت على Actor في المشهد، فقد يظهر التغيير عليه أيضًا.
المتطلبات
يجري سير العمل عبر Material Editor وContent Browser وMaterial Instance Editor داخل Unreal Engine. لا تحدد الأدلة المقدمة من Epic Games إصدارًا معينًا من Unreal Engine أو مستوى محددًا للأجهزة أو متطلبات للحساب؛ لذلك لا نذكر هنا رقم إصدار أو توصية للنظام. يلزم إنشاء Material وحفظها، ثم إنشاء نسخة من المادة.
تعتمد الخصائص التي يمكن تغييرها في نسخة المادة على طريقة إعداد المادة الرئيسية. فتعابير المواد العادية لا تتحول تلقائيًا إلى عناصر تحكم قابلة للتحرير؛ بل يجب تعريف الخصائص المطلوب تغييرها باستخدام عقد المعلمات. لذلك من المفيد البدء بتحديد القيم التي تريد إتاحتها للفنان، بدلًا من فتح نسخة المادة مباشرة.
سير عمل Material Instance خطوة بخطوة
أنشئ المادة الرئيسية. أعدّ Material في Material Editor. ستكون هذه المادة الأصلية للنسخ التي ستنشئها، وستحدد المظهر الأساسي. حدّد الخصائص التي تريد تغييرها، مثل Base Color وMetallic وRoughness.
حوّل القيم القابلة للتحرير إلى معلمات. يمكنك إضافة عقد المعلمات المناسبة بالبحث عن “parameter” في Material Palette، أو باستخدام قائمة النقر بزر الفأرة الأيمن في Material Editor. لإضافة Scalar Parameter التي تحمل قيمة رقمية واحدة، اضغط S في المخطط ثم انقر بزر الفأرة الأيسر. ولإضافة Vector Parameter التي تحتوي على أربع قيم فاصلة عائمة، اضغط V ثم انقر بزر الفأرة الأيسر.
استخدام Vector Parameter لـ Base Color وScalar Parameter لكل من Metallic وRoughness هو المثال الأساسي الوارد في الوثائق. سمِّ المعلمات بأسماء توضّح الغرض منها، مثل “Roughness” و“Metallic”. تساعد الأسماء الواضحة على معرفة وظيفة كل قيمة عندما تظهر عناصر التحكم في Material Instance Editor.
اضبط القيمة الافتراضية والنطاق. عند تحديد عقدة معلمة في المخطط، يمكنك ضبط قيمتها الافتراضية من لوحة Details. وفي مثال Epic Games، يتراوح نطاق Roughness المتوقع بين 0 و1؛ ويمكن إدخال هذين الحدين في حقلي Slider Min وSlider Max. يحدد ذلك النطاق الذي يمكن تحريك قيمة المعلمة ضمنه في النسخة. أما القيم الأخرى، فاضبط نطاقاتها وفقًا لاحتياجات المادة، بدلًا من افتراض حدود لم ترد في المصدر.
حوّل تعبيرًا موجودًا إلى معلمة عند الحاجة. حدّد Material Expression ليست معلمة، ثم انقر بزر الفأرة الأيمن واختر Convert to Parameter. لا يتوفر هذا الخيار لكل تعبير؛ إذ يُستخدم فقط مع التعبيرات التي تدعم التحويل إلى معلمة. بعد التحويل، امنح العقدة اسمًا واضحًا وفريدًا.
طبّق المادة واحفظها. بعد إكمال وصلات المعلمات، انقر Apply في أعلى يسار Material Editor، ثم احفظ المادة باستخدام Save. تشكل المادة الرئيسية ذات المعلمات أساس النسخ. ليس عليك تحويل القيم التي تريد إبقاءها ثابتة إلى معلمات؛ فالقيم غير المحددة كمعلمات لن تظهر كعناصر تحكم قابلة للتغيير في محرر النسخة.
أنشئ Material Instance. انقر بزر الفأرة الأيمن على المادة الرئيسية في Content Browser، ثم اختر Create Material Instance. يمكنك تحديد النسخة التي أُنشئت وإعادة تسميتها بالضغط على F2 أو بالنقر مرة واحدة على حقل الاسم. ترث هذه النسخة خصائص المادة الرئيسية؛ وعند إنشائها، يكون مظهرها مطابقًا لمظهر المادة الرئيسية ما لم تُغيّر معلماتها.
حرّر قيم النسخة. انقر نقرًا مزدوجًا على Material Instance في Content Browser لفتح Material Instance Editor. تظهر عناصر التحكم في لوحة Details تحت أسماء المعلمات نفسها الواردة في المادة الرئيسية. ضع علامة في المربع بجوار المعلمة التي تريد تحريرها، ثم أدخل قيمة جديدة في الحقل أو انقر بزر الفأرة الأيسر واسحب لضبطها. لتغيير لون Vector Parameter، انقر عينة اللون لفتح منتقي الألوان. وللعودة إلى القيمة الافتراضية، استخدم سهم إعادة الضبط المقابل.
نظّم عناصر التحكم الكثيرة في مجموعات. تُضبط مجموعات المعلمات في المادة الرئيسية، لا في النسخة. حدّد عقدة المعلمة في مخطط المادة الرئيسية، وأدخل اسم المجموعة في حقل Group بلوحة Details. يمكنك مثلًا تقسيم عناصر التحكم بحسب خصائص المادة التي تديرها. لترتيب العناصر داخل المجموعة، استخدم حقل Sort Priority في عقدة المعلمة؛ ولترتيب المجموعات، استخدم خاصية Group Sort Priority في المادة الرئيسية. وتشير وثائق Epic Games إلى أن ترتيب المجموعات يكون أبجديًا افتراضيًا.
التأثير في سير عمل العمارة والتصميم الداخلي وarchviz
قد تكون هذه الطريقة مفيدة لفرق العمارة والتصميم الداخلي التي تحتاج إلى إنشاء عدة خيارات انطلاقًا من السطح الأساسي نفسه. فمثلًا، يمكن إدارة تغيير ألوان الأسطح أو درجات خشونتها بين التنويعات في المشهد باستخدام مادة رئيسية ذات معلمات ونسخ منها. وتُحرر القيم في Material Instance Editor، من دون الحاجة إلى إعادة بناء مخطط العقد لكل تنويع.
ومن الاستخدامات الأخرى إجراء تغييرات مرئية داخل المشهد. وتشير Epic Games إلى إمكانية استخدام Dynamic Material Instance التي يمكن تغييرها أثناء اللعب في أمثلة مثل تغيير لون الطلاء في التصور المعماري. لكن هذا يختلف عن خطوات إنشاء مادة ذات معلمات ثم إنشاء Material Instance في Content Browser؛ إذ تُنشأ النسخ الديناميكية باستخدام السكربت أو Blueprint، ويمكن تحديثها أثناء التشغيل. ولأن المصدر لا يتضمن شرحًا تطبيقيًا مفصلًا لسير العمل هذا، لا نضيف هنا وصلات عقد أو خطوات برمجية.
من المهم الحفاظ على وضوح أسماء عناصر التحكم والمجموعات عند العمل ضمن فريق؛ إذ قد يصعّب وجود عدد كبير من المعلمات في قائمة واحدة عملية التحرير. كذلك، تُطبّق Static Parameter في وقت الترجمة، وقد تتطلب التركيبات المختلفة إعادة ترجمة المواد. وتحذّر Epic Games من أن كثرة تركيبات المعلمات الثابتة قد تؤدي إلى عدد مفرط من عمليات ترجمة shader. ولا توضح الوثائق المقدمة متطلبات الترخيص أو الرسوم أو الأجهزة؛ لذا يلزم التحقق من معلومات موثوقة بشأنها عند تخطيط المشروع.
أخطاء شائعة
عدم تحويل الخاصية المراد تغييرها إلى معلمة: إذا استُخدمت قيمة عادية في المادة الرئيسية، فلن تظهر كعنصر تحكم قابل للتحرير في النسخة. استخدم عقدة المعلمة المناسبة للخاصية المطلوبة.
اختيار اسم مبهم للمعلمة: تساعد الأسماء الواضحة على العثور على القيمة الصحيحة أثناء التحرير، خصوصًا عند وجود عناصر تحكم متعددة.
تحويل كل قيمة إلى معلمة: أتح عناصر التحكم التي تحتاج إلى تغييرها في النسخ فقط؛ ويمكن إبقاء القيم التي ستظل ثابتة كتعبيرات عادية.
الإكثار من تركيبات Static Parameter: تُطبّق المعلمات الثابتة في وقت الترجمة، لا أثناء التشغيل. وقد يؤدي ترجمة عدد كبير من التركيبات المختلفة إلى زيادة عدد المواد المطلوب ترجمتها.
إغفال أثر تغيير المادة الرئيسية: قد يؤدي تغيير مادة Parent لنسخة ما إلى تغيير مظهرها والمعلمات المتاحة فيها. وليس مضمونًا أن تتضمن المادة الرئيسية الجديدة المعلمات السابقة.
الخطوات التالية
ابدأ بإعداد مادة رئيسية أساسية باستخدام عدد قليل من المعلمات، وأنشئ Material Instance للتحقق من مظهر التغييرات في المعاينة. ومع زيادة عدد عناصر التحكم، رتّب المعلمات في مجموعات وبحسب الأولوية. وإذا كنت تحتاج إلى تغيير القيم أثناء تشغيل المشهد، فضع في الحسبان اختلاف أغراض Constant Instance وDynamic Instance؛ إذ يتطلب إعداد نسخ وقت التشغيل معالجة مستقلة باستخدام Blueprint أو الشيفرة البرمجية.
المصدر والترخيص
أُعد هذا الدليل بتكييف وثيقتي Epic Games بعنواني “Instanced Materials in Unreal Engine” و“Creating and Using Material Instances in Unreal Engine” إلى التركية. وقد وُسِمَت كلتا الصفحتين في سجلات المصادر المقدمة بعبارة “الترخيص=حر”.
المصادر
2 مصادرلا نعيد نشر نصوص المصادر؛ الاقتباسات القصيرة مشار إليها، وما تبقى ملخص وتعليق من إعدادنا.
يوفر نهج Material Instance مخرجًا عمليًا لمكاتب العمارة وفرق التصور في تركيا، ولا سيما عند تقديم خيارات سريعة لألوان ودرجات خشونة مختلفة للسطح نفسه. فإعداد المادة الرئيسية مرة واحدة يقلل الحاجة إلى إعادة بناء مخطط العقد عند إنشاء تنويعات متكررة.
لكن الفائدة تعتمد على إعداد المادة الرئيسية ذات المعلمات بطريقة منظمة. ويسهّل توحيد أسماء عناصر التحكم والمجموعات داخل الفريق عمل الشخص الذي يتولى الملف لاحقًا. وبما أن المصادر لا تحدد رسوم الترخيص أو متطلبات الأجهزة، ينبغي التحقق منها بشكل مستقل. كما يجب الانتباه إلى زيادة تركيبات المعلمات الثابتة، وإلى احتمال تغيّر مظهر النسخ عند تعديل المادة الرئيسية.
الأسئلة الشائعة
كيف تنشئ Material Instance في Unreal Engine؟
أعدّ أولًا مادة رئيسية محفوظة تتضمن الخصائص القابلة للتحرير على هيئة معلمات. بعد ذلك، انقر بزر الفأرة الأيمن على المادة الرئيسية في Content Browser واختر Create Material Instance.
ما القيم التي يمكن تغييرها في Material Instance؟
يمكن تحرير الخصائص المحددة كمعلمات في المادة الرئيسية من خلال Material Instance Editor. تحمل Scalar Parameter قيمة رقمية واحدة، بينما تحمل Vector Parameter قيمة من أربع قنوات.
ما الفرق بين Material Instance وDynamic Material Instance؟
تُحسب Material Instance Constant قبل وقت التشغيل ولا تتغير أثناء اللعب. أما Material Instance Dynamic فتُنشأ وتُحرر أثناء التشغيل باستخدام سكربت أو Blueprint.



