باختصار
- يقسّم World Partition العالم إلى خلايا ضمن Level دائم واحد، ويحمّل الخلايا أو يزيلها وفقًا لمصادر التحميل.
- يجمع Level Instance عدة Actors ضمن تصميم Level قابل للتكرار؛ وعند حفظ التغييرات، تُطبّق على النسخ الأخرى أيضًا.
- توصي الوثائق باستخدام Packed Level Blueprint للمباني الثابتة والتصاميم البصرية الكثيفة.
- قد يضيف Level Streaming Mode تكلفة تشغيلية إضافية؛ وقد يؤثر الاستخدام المكثف لهذا الوضع في الأداء.
يتناول هذا الدليل مسارات العمل الخاصة بـWorld Partition وLevel Instancing كما وردت في وثائق Unreal Engine، من منظور المشاهد المعمارية الكبيرة وتنسيقات البيئات والعناصر البصرية المتكررة. لا تحدد الوثائق المصدر إصدارًا بعينه من Unreal Engine؛ لذلك نورد أسماء القوائم والسلوكيات كما تصفها الوثائق. يقلل World Partition الحاجة إلى تقسيم العالم الكبير يدويًا إلى مستويات فرعية، بينما يحوّل Level Instancing مجموعات مختارة من Actors إلى تصاميم قابلة لإعادة الاستخدام.
1. جهّز عالمًا كبيرًا باستخدام World Partition
يحتفظ World Partition بالعالم في ملف Level دائم واحد، ويقسّم المنطقة إلى خلايا شبكية يمكن تحميلها أثناء التشغيل. تُحمّل الخلايا أو تُزال بحسب مواقع مصادر التحميل، مثل اللاعب. وبذلك، يمكن أثناء التشغيل تحميل الأجزاء المرئية أو التي يجري التفاعل معها فقط، بدلًا من تحميل المشهد كاملًا.
عند بدء مشروع جديد، يفعّل نوع الخريطة Open World افتراضيًا ميزات World Partition وOne File Per Actor وData Layers وHierarchical Levels of Detail. ووفقًا للوثائق المصدر، تتضمن الخريطة النموذجية تضاريس بمساحة 2 km x 2 km وإعدادًا لإضاءة المشاهد الخارجية. ويمكن أن تكون هذه الخريطة الجاهزة نقطة انطلاق لمشهد بيئي واسع.
افتح المسار
File › New Level.اختر نوع الخريطة
Open World.انقر زر
Createلإنشاء الخريطة.
إذا كنت تعمل على Level موجود، فيمكنك تحويله عبر الخيار Tools › Convert Level. وتشرح الوثائق أيضًا مسار التحويل باستخدام WorldPartitionConvertCommandlet. الأمر التالي هو المثال الوارد في الوثائق؛ وأسماء المشروع والخريطة فيه قيم توضيحية.
UnrealEditor.exe QAGame -run=WorldPartitionConvertCommandlet Playground.umap -AllowCommandletRenderingيعرض الخيار -ReportOnly تقريرًا عن التحويل المحتمل من دون تنفيذ العملية، بينما يضيف الخيار -ConversionSuffix اللاحقة _WP إلى الخريطة المحوّلة لأغراض الاختبار. وقد يحذف الخيار -DeleteSourceLevels مستويات المصدر؛ لذا لا ينبغي استخدامه قبل فهم أثره. تساعد مراجعة خيارات سطر الأوامر وإعدادات التحويل مسبقًا على فهم نطاق العملية.
2. نظّم تحميل الخلايا وسلوك Actors
في المشهد الذي يستخدم World Partition، ترتبط Actors بالخلايا وفقًا لإعداد Is Spatially Loaded الموجود ضمن قسم World Partition في لوحة Details. إذا كان الإعداد مفعّلًا، يُحمّل Actor عندما يدخل نطاق مصدر تحميل، ما لم يكن مرتبطًا بـData Layer معطّل. وإذا كان الإعداد غير مفعّل، يُحمّل Actor ما لم يكن مرتبطًا بـData Layer معطّل. ومن المهم مراعاة هذا الفرق عند التخطيط لموعد ظهور عناصر البيئة البعيدة في المشهد.
تحدد مواقع مصادر التحميل وإعدادات Runtime Grid تحميل الخلايا. ويُعد Player Controller مصدر تحميل افتراضيًا؛ كما يمكن استخدام مكوّن World Partition Streaming Source. فعلى سبيل المثال، يمكن لهذا المكوّن تحميل الخلايا مسبقًا حول موقع سينتقل إليه اللاعب آنيًا. توجد إعدادات الشبكة في قسم World Partition Setup ضمن World Settings. والقيم الخاصة بحجم الخلية ونطاق التحميل الواردة في الوثائق أمثلة توضّح شكل الإعدادات، وليست توصيات عامة.
| الإعداد | القيمة النموذجية في الوثائق | التأثير |
|---|---|---|
| Cell Size | 256 m x 256 m x 256 m | يحدد حجم الخلية المستخدمة لإنشاء مستويات البث. |
| Loading Range | نصف قطر 768 m | يحدد المسافة التي تُحمّل الخلايا ضمنها انطلاقًا من مصدر التحميل. |
تشير وثائق World Partition إلى أن استخدام أكثر من runtime grid قد يؤثر سلبًا في الأداء. لذلك، ينبغي اختبار احتياجات المشهد وسلوك التحميل قبل زيادة عدد الشبكات. ويتيح الخيار Preview Grids عرض خطوط الشبكة في viewport للمساعدة على التحقق بصريًا من الترتيب.
3. حوّل تصاميم المشاهد المتكررة إلى Level Instance
يجمع Level Instance مجموعة من Actors في Level فرعي، ويتيح وضع نسخ متعددة من هذا التصميم في المشهد. فعلى سبيل المثال، يمكن استخدام مجموعة مبانٍ متكررة أو نقطة اهتمام محددة بوصفها تصميمًا واحدًا. وعند حفظ تغيير في إحدى النسخ، يُطبّق على النسخ الأخرى أيضًا.
حدّد Actors التي ستُستخدم معًا في viewport أو Outliner.
انقر بزر الفأرة الأيمن على أحد Actors المحددة، ثم اتبع المسار
Level › Create Level Instance.حدّد نوع المحور في النافذة التي تظهر. وتشرح الوثائق الخيارات
Center Min ZوCenterوPivot Actor.أكّد الإعدادات واحفظ Level Instance الجديد.
للعمل على التصميم، حدّد الـinstance واتبع المسار Level › Edit، أو انقر زر Edit في لوحة Details. أثناء التحرير، تظهر Actors الأخرى باهتة. عند الانتهاء، حدّد Level Instance Actor في Outliner واحفظ التغييرات عبر Commit Changes من لوحة Details. وللخروج من دون حفظ، يمكن الضغط على Esc مرتين. يجب إكمال خطوة الحفظ بعد التحرير حتى تنتقل التغييرات إلى النسخ الأخرى.
يمكن النظر في خيار Packed Level Blueprint للمباني الثابتة والتصاميم البصرية الكثيفة. انقر بزر الفأرة الأيمن على Actors المحددة، ثم اتبع المسار Level › Create Packed Level Actor. وتشرح الوثائق هذا النهج على أنه دمج للـstatic meshes في Blueprint Actor واحد محسّن للتصيير. يتعامل Level Instance Actor مع مجموعات Actors بوصفها تصميم Level قابلًا للتكرار، بينما يجمع Packed Level Blueprint تصاميم الـstatic meshes.
4. الاختيار والأخطاء الشائعة في سير عمل التصوّر المعماري
يمكن لفرق التصوّر المعماري تنظيم أجزاء المباني المتكررة أو تنسيقات البيئات على شكل Level Instance، واستخدام المكوّن نفسه في مواقع متعددة. ويساعد انتشار التغيير من نسخة إلى النسخ الأخرى على الحفاظ على الاتساق في التصاميم المتكررة. أما في مشاهد البيئات الواسعة، فيتيح تحميل الخلايا في World Partition إدارة المناطق المطلوبة بدلًا من تحميل كل شيء في الوقت نفسه. لكن الوثائق المصدر لا تحدد متطلبات أجهزة معينة أو شروط ترخيص أو ضمانات أداء؛ لذا ينبغي إجراء الاختبارات على نطاق المشروع. ولا توفّر Level Instance إدارة أو استراتيجية تلقائية للتحميل خارج عالم World Partition الرئيسي.
ينبغي الانتباه أيضًا إلى سلوك وقت التشغيل. إذ يمكن استخدام Level Instances وPacked Level Blueprints مع World Partition Data Layers. ويضيف Embedded Mode Actors الخاصة بالـinstances التي تستخدم One File Per Actor إلى شبكة World Partition أثناء التشغيل؛ وتصف الوثائق ذلك بأنه أسلوب تدفق المحتوى الافتراضي والموصى به. في المقابل، قد تختفي بعض Actors التي لا تستخدم One File Per Actor أثناء التشغيل. وإذا كانت هناك حاجة إلى هذه Actors، فينبغي دراسة Level Streaming Mode؛ إلا أن هذا الوضع يضيف تكلفة تحميل إضافية، ولا يُوصى باستخدامه بكثافة بسبب أثره في الأداء.
أخطاء شائعة
اعتبار أمثلة الوثائق لحجم الخلية ونطاق التحميل قيمًا ثابتة موصى بها لكل مشروع.
تخطي خطوة
Commit Changesبعد التحرير، رغم ضرورتها لنقل تغييرات Level Instance إلى النسخ الأخرى.افتراض إمكانية التراجع عن تفكيك Level Instance. وفقًا للوثائق، لا يمكن التراجع عن هذه العملية؛ فهي تزيل Actor وتضع الأصول الأصلية في المشهد، لكنها لا تحذف المصدر من Content Browser.
تجاهل تكلفة الأداء الإضافية الناتجة عن الاستخدام المكثف لـLevel Streaming Mode.
المصادر
2 مصادرلا نعيد نشر نصوص المصادر؛ الاقتباسات القصيرة مشار إليها، وما تبقى ملخص وتعليق من إعدادنا.
بالنسبة إلى مكاتب العمارة والتصوّر في تركيا، يمكن لهاتين الميزتين تسهيل تنظيم المشاهد، خصوصًا في البيئات الواسعة ومجموعات المباني المتكررة. وقد يقلل انتقال تغييرات Level Instance إلى النسخ الأخرى من عبء تحديث المكوّن نفسه في مواقع مختلفة.
مع ذلك، لا تحدد الوثائق متطلبات أجهزة أو تراخيص بعينها، ولا تقدم قيمًا مثالية لإعدادات الخلايا مستقلة عن حجم المشروع. لذا ينبغي اختبار تدفق المشهد والتحقق من سلوك Embedded وLevel Streaming بدلًا من اعتماد قيم الشبكة النموذجية معيارًا مباشرًا. كما أن الاحتفاظ بنسخ احتياطية قبل التحويل والعمليات التي لا يمكن التراجع عنها يجعل سير العمل داخل الفريق أكثر أمانًا.
الأسئلة الشائعة
ما وظيفة Unreal Engine World Partition؟
يقسّم العالم الكبير إلى خلايا شبكية ضمن Level دائم واحد، ويحمّل الخلايا أو يزيلها أثناء التشغيل وفقًا لمواقع مصادر التحميل.
ما الفرق بين Level Instance وPacked Level Blueprint؟
يجمع Level Instance مجموعات Actors في تصميم Level فرعي قابل للتكرار، بينما يدمج Packed Level Blueprint تصاميم الـstatic meshes في Blueprint Actor واحد.
هل تنتقل تغييرات Level Instance إلى النسخ الأخرى؟
نعم. تنتقل التغييرات إلى النسخ الأخرى عند حفظها. بعد إكمال التحرير، ينبغي استخدام `Commit Changes` في لوحة Details.


