باختصار
- يجمع Level Instance عدة Actor في مستوى فرعي لإعادة استخدامها في المشروع.
- يجمع Packed Level Blueprint المجسمات الثابتة في بنية Blueprint Actor محسّنة للتصيير.
- عند حفظ التعديلات على Level Instance، تنتقل إلى النسخ الأخرى من المثيل نفسه.
- لا يمكن تعديل إعدادات وضع التدفق في World Partition؛ وتستخدم المثيلات التي لا تعتمد OFPA وضع Level Streaming Mode وقت التشغيل.
تشرح وثائق Epic Games الخاصة بـ Unreal Engine أن Level Instancing هو سير عمل لتنظيم المستويات، يجمع مجموعات Actor ويجعلها قابلة لإعادة الاستخدام في المشروع. يتناول هذا الدليل خطوات إنشاء مجموعات متكررة من المباني أو المجسمات الثابتة وتعديلها في مشاهد التصيير المعماري والتصميم، إلى جانب فهم سلوكها في World Partition. ولأن الوثيقة المصدر لا تحدد رقم إصدار بعينه من Unreal Engine، يقتصر الشرح على الواجهة والوظائف الواردة فيها.
الفرق بين Level Instance وPacked Level Blueprint
يجمع Level Instance عدة Actor في مستوى فرعي واحد. ويمكن وضع المستوى الناتج في مواضع مختلفة من المشروع؛ وعند حفظ التعديلات على أحد المثيلات، تُطبّق على النسخ الأخرى من المثيل نفسه أيضًا. يتيح ذلك التعامل مع المباني أو التكوينات البصرية المتكررة في نقاط مختلفة من المشهد بوصفها وحدة مشتركة.
أما Packed Level Blueprint فيؤدي غرضًا مختلفًا: فهو يدمج المجسمات الثابتة في Blueprint Actor. وتشير وثائق Epic Games إلى أن هذه البنية محسّنة للتصيير، وتوصي باستخدامها في التكوينات البصرية الكثيفة، مثل المباني الثابتة. لذلك، ينبغي تحديد ما إذا كانت الحاجة إلى مجموعة Actor قابلة للتحرير أم إلى بنية مجمّعة من المجسمات الثابتة.
إنشاء مثيل من مجموعة Actor
حدّد Actor التي ستُستخدم معًا في Viewport أو Outliner. يحدد هذا الاختيار محتوى المثيل الذي ستنشئه.
انقر بزر الفأرة الأيمن على أحد Actor المحددة. لإنشاء Level Instance، استخدم
Level › Create Level Instance؛ ولإنشاء Packed Level Blueprint، استخدمLevel › Create Packed Level Actor.راجع إعدادَي External Actors وPivot Type في مربع الحوار الذي يظهر. يتيح External Actors استخدام نظام One File per Actor (OFPA). وتشمل خيارات Pivot Type:
Center Min ZأوCenterأوPivot Actor. إذا اخترت Pivot Actor، فحدّد Actor المطلوبة من القائمة المنسدلة.أكّد اختياراتك واحفظ Level Instance الذي أنشأته، أو Level وPacked Level Blueprint.
عند إنشاء Level Instance، يحلّ Actor جديد من نوع Level Instance Actor في المشهد محل Actor المحددة. وتظهر Actor المصدر كعناصر فرعية لهذا Actor في Outliner، ولا يمكن تحديدها كلٌّ على حدة. وتُطبّق التحويلات التي تُجرى على Level Instance Actor على المستوى الذي يمثله. أما إنشاء Packed Level Blueprint فيُنشئ Packed Level Actor في المشهد، مرتبطًا بـ Packed Level Blueprint ذي الصلة.
| الإعداد | الخيار أو القيمة المذكورة في الوثيقة | التأثير |
|---|---|---|
| External Actors | استخدام One File per Actor (OFPA) | يتيح لـ Level Instance استخدام نظام OFPA. |
| Pivot Type | Center Min Z | يضع المحور في مركز Level Instance عند أدنى قيمة Z. |
| Pivot Type | Center | يضع المحور في مركز Level Instance. |
| Pivot Type | Pivot Actor | يستخدم Actor المحددة بوصفها محور Level Instance. |
تحرير المثيلات وحفظ التغييرات
لتحرير Level Instance ضمن سياق المشهد، حدّد المثيل في Viewport وانقر بزر الفأرة الأيمن، ثم اتبع المسار Level › Edit. ويمكنك بدلًا من ذلك النقر على زر Edit في لوحة Details. أثناء التحرير، تظهر Actor الأخرى في العالم باهتة، ما يبرز محتوى المثيل الجاري العمل عليه.
بعد الانتهاء، حدّد Level Instance Actor في Outliner وانقر على زر Commit Changes في لوحة Details. يضمن حفظ التغييرات انتقالها إلى النسخ الأخرى من Level Instance نفسه. للخروج من وضع التحرير من دون حفظ التغييرات، يمكن الضغط على Esc مرتين.
يُحرّر Packed Level Blueprint عبر واجهة مختلفة. يمكنك العثور على المثيل في Outliner واستخدام زر Edit، أو فتح Blueprint من Content Browser؛ وفي الحالتين تفتح نافذة Blueprint Editor. وتنعكس التعديلات التي تُجرى هنا على النسخ الأخرى أيضًا.
تزيل عملية Break كلاً من Level Instance Actor أو Packed Level Actor من العالم، وتعيد الأصول الأصلية التي استُخدمت لإنشائهما. لكن لا يمكن التراجع عن هذه العملية. كما أنها لا تحذف Level Instance أو Packed Level Blueprint من Content Browser. لذا استخدم الأمر Break فقط عندما يكون الهدف تحويل البنية في المشهد إلى أصولها الأصلية.
World Partition: تدفق وقت التشغيل والمشاهد المعمارية
يعتمد تدفق Level Instance وPacked Level Actor وقت التشغيل على إعدادات World Partition. ووفقًا للوثيقة، يُحدَّد هذا التدفق إما بوضع Embedded Mode أو Level Streaming Mode، ولا يمكن تعديل إعدادات الوضع. لذا لا ينبغي التعامل مع هذين الوضعين على أنهما إعداد بسيط يختاره المستخدم ويغيّره.
يُعد Embedded Mode وضع وقت التشغيل الافتراضي، وهو طريقة تدفق المحتوى الموصى بها. تُضاف Actor داخل Level Instance التي تستخدم OFPA إلى شبكة World Partition وقت التشغيل؛ وفي هذا الاستخدام، توجد Level Instance داخل المحرر. لكن بعض Actor التي لا تستخدم OFPA قد تختفي وقت التشغيل في Embedded Mode. وتذكر الوثيقة كائن AWorldSettings مثالًا على ذلك.
لا يمكن تضمين Level Instance التي لا تستخدم OFPA في شبكة World Partition؛ إذ تحمّل المستوى المرتبط بها وقت التشغيل باستخدام Level Streaming Mode. ويحدث هذا السلوك عند تحميل Level Instance Actor عبر خلية وقت التشغيل الخاصة بها في World Partition. ووفقًا للوثيقة، تضيف هذه الطريقة مستويات أكثر إلى التدفق، ما يترتب عليه عبء إضافي وقت التشغيل، ولذلك لا يُنصح باستخدامها بكثافة بسبب تأثيرها في الأداء.
تدعم Level Instance وPacked Level Blueprint في المشاريع التي تستخدم World Partition ميزة Data Layers. وترث Actor الموجودة داخلهما افتراضيًا Data Layer المعيّنة إلى Level Instance Actor؛ كما يمكن تعيين Data Layers أخرى لهذه Actor. فعلى سبيل المثال، يمكن إسناد Level Instance يضم أصول المنازل إلى طبقة حيّ، بينما تُوضع العناصر ذات الطابع الاحتفالي الموجودة داخله في طبقات منفصلة لا تظهر إلا عند تفعيل Data Layer الخاصة بالمناسبة.
ينبغي للمعماريين ومصممي الديكور الداخلي وفرق التصيير اختيار النوع بحسب ما إذا كانت المجموعة المتكررة مجموعة Actor قابلة للتحرير أم بنية كثيفة من المجسمات الثابتة. يمكن النظر في Level Instance للحالة الأولى، وفي Packed Level Blueprint للحالة الثانية. وفي مشاريع World Partition، اختبر استخدام OFPA وسلوك Actor التي لا تستخدمه وقت التشغيل. لا تحدد الوثيقة المصدر متطلبات الأجهزة أو الترخيص؛ كما أنها لا تذكر مقدارًا محددًا لمكاسب الأداء التي يحققها تحسين التصيير المذكور لـ Packed Level Blueprint.
أخطاء شائعة
الخلط بين Level Instance وPacked Level Blueprint: الأول يجمع Actor في مستوى فرعي؛ أما الثاني فيدمج المجسمات الثابتة ضمن Blueprint Actor.
تخطي خطوة
Commit Changesبعد إجراء التعديلات: احفظ تغييرات Level Instance كي تنتقل إلى النسخ الأخرى.التعامل مع أوضاع World Partition كخيارات يمكن تغييرها بحرية: وفقًا للوثيقة، تحدد إعدادات World Partition هذه الأوضاع ولا يمكن تعديلها.
افتراض إمكانية التراجع عن عملية
Break: لا يمكن التراجع عنها؛ لذا قيّم تأثيرها في المشهد والتحويل المطلوب قبل تنفيذها.تجاهل سلوك وقت التشغيل للمثيلات التي لا تستخدم OFPA في Embedded Mode: قد لا تكون بعض Actor، ومنها AWorldSettings، موجودة وقت التشغيل.
المصادر
1 مصادرلا نعيد نشر نصوص المصادر؛ الاقتباسات القصيرة مشار إليها، وما تبقى ملخص وتعليق من إعدادنا.
بالنسبة إلى فرق العمارة والتصيير في تركيا، تكمن القيمة العملية لـ Level Instancing في إتاحة مراجعة أجزاء المشهد المتكررة عبر بنية مشتركة. وفي المشاريع التي تتكرر فيها مجموعات المباني أو المجسمات الثابتة، يمكن لاختيار النوع المناسب أن يجعل عملية التحرير أكثر تنظيمًا. لكن عبارة تحسين التصيير الواردة في الوثيقة لا تضمن زيادة قابلة للقياس في السرعة في كل مشهد.
من المهم اختبار تدفق World Partition وOFPA في المشروع قبل بدء التطبيق. وينبغي للفرق الانتباه خصوصًا إلى احتمال اختفاء Actor التي لا تستخدم OFPA في Embedded Mode، وإلى عبء وقت التشغيل الإضافي الذي يسببه Level Streaming Mode. وبما أن المصدر لا يذكر تكاليف الأجهزة أو الترخيص، فهناك حاجة إلى معلومات إضافية لاتخاذ قرارات الشراء أو الأداء.
الأسئلة الشائعة
كيف تنشئ Level Instance في Unreal Engine؟
حدّد Actor في Viewport أو Outliner، وانقر بزر الفأرة الأيمن على أحدها، ثم استخدم الخيار `Level › Create Level Instance`. اضبط الإعدادات واحفظ Level Instance الجديد.
ما الفرق بين Level Instance وPacked Level Blueprint؟
يجمع Level Instance Actor في مستوى فرعي قابل لإعادة الاستخدام. أما Packed Level Blueprint فيدمج المجسمات الثابتة ضمن بنية Blueprint Actor محسّنة للتصيير.
هل يمكن للمستخدم اختيار Level Streaming Mode؟
وفقًا للوثيقة، يعتمد وضع التدفق الخاص بـ Level Instance وPacked Level Actor على إعدادات World Partition، ولا يمكن تعديل هذه الإعدادات. أما Level Instance التي لا تستخدم OFPA، فتحمّل المستوى المرتبط بها وقت التشغيل باستخدام Level Streaming Mode.



