باختصار
- بعد تفعيل إضافة Level Snapshots من Project Settings، يجب إعادة تشغيل المحرر.
- تحفظ Snapshots حالات Actor ومكوّناتها وخصائصها، لكنها لا تحفظ تغييرات Assets مثل Material.
- يمكن تحديد Actor والخصائص المراد تطبيقها أثناء الاستعادة باستخدام مربعات الاختيار والفلاتر المخصصة.
- لا تتعقب Level Snapshots عناصر Landscape أو USD Actor أو متغيرات وحدة التحكم.
تتيح ميزة Level Snapshots في Unreal Engine حفظ حالة Actor ومكوّناتها وخصائصها في level عند لحظة معينة، ثم استعادتها لاحقًا. وتشير وثائق Epic إلى إمكانية استخدام الميزة في الإنتاج الافتراضي، وكذلك لإدارة ترتيبات المشاهد المعقدة والتنويعات المختلفة. يستند هذا الدليل إلى آلية العمل الموضحة في الوثائق؛ ولا تحدد الصفحة المعنية إصدارًا بعينه من Unreal Engine تتوفر فيه الميزة.
1. فعّل الإضافة وأعد تشغيل المحرر
قبل استخدام Level Snapshots، فعّل الإضافة:
افتح نافذة Project Settings في Unreal Editor.
اتبع المسار
Project Settings › Plugins › LevelSnapshotsوفعّل إضافة LevelSnapshots.وافق على طلب إعادة تشغيل المحرر. بعد إعادة التشغيل، يمكنك الوصول إلى قائمة Level Snapshots من شريط الأدوات الرئيسي ومن نافذة Level Snapshots.
في المشاريع التي تستخدم nDisplay فقط، فعّل أيضًا إضافة nDisplay Support For Level Snapshots الاختيارية. توضح Epic أن دعم nDisplay يأتي عبر إضافة منفصلة، وأن تفعيلها غير ضروري إذا لم تكن تستخدم nDisplay.
إذا لم تجد الإضافة في إعدادات المشروع، فتحقق أولًا من إكمال خطوات الإعداد هذه وإعادة تشغيل المحرر. لا تذكر الوثائق طريقة إعداد أخرى أو متطلبات للأجهزة.
2. احفظ الحالة الأولية للمشهد
تتوفر ثلاث طرق لإنشاء Snapshot: استخدام زر Level Snapshot في شريط الأدوات الرئيسي، أو النقر على Take Snapshot في نافذة Level Snapshots، أو تشغيل أمر Take Snapshot عبر Remote Control Web Application. تفتح كل طريقة نافذة Create Level Snapshot.
في هذه النافذة، أدخل اسمًا وصفيًا للسجل، وأضف وصفًا اختياريًا. يجمع تنسيق الاسم الافتراضي اسم level واسم المستخدم والوقت؛ ويمكنك تغيير الاسم قبل الحفظ. تُحفظ Snapshot بوصفها Asset في الدليل المحدد في حقل Root Directory. الدليل الجذر الافتراضي هو LevelSnapshots، ويُحدَّد الدليل الفرعي بحسب اسم level وتاريخ إنشاء السجل. يمكنك تغيير الدليل الجذر والدليل الفرعي الخاص بـ Snapshot، كما يمكنك تعديل نمط التسمية الافتراضي للسجلات الجديدة.
عند تغيير الاسم، احرص على عدم الكتابة فوق Snapshot موجودة. فبحسب الوثائق، قد يصبح الاسم الذي غيّرته قبل الحفظ هو الاسم الافتراضي للسجلات اللاحقة. ويساعد اعتماد تسمية تميّز بين المشهد والتنويعة والغرض على منع اختلاط السجلات داخل الفريق.
3. راجع التغييرات قبل الاستعادة
لتطبيق حالة محفوظة، حدّد Level Snapshot المطلوبة واضغط زر Restore Level Snapshot. يعيد ذلك التغييرات التي أُجريت على Actor بعد لحظة التسجيل إلى الحالة المحفوظة في Snapshot. تُزال Actor التي أُضيفت حديثًا من level، وتُضاف مجددًا Actor التي حُذفت لاحقًا. كما تعود تحولات Actor وخصائصها إلى الحالة المسجلة. ويمكن التراجع عن العملية.
قبل الاستعادة، راجع القائمة في الجزء الأيمن من نافذة Level Snapshots. تعرض هذه القائمة Actor والمكوّنات والخصائص التي ستتأثر. ويمكنك تطبيق تغييرات محددة أو استبعادها باستخدام مربع الاختيار بجوار كل تغيير. وبذلك يمكنك استعادة الإضاءة وحدها أو موضع Actor واحد، على سبيل المثال، بدلًا من إعادة إعداد المشهد كله.
إذا كان المشروع يضم أكثر من level، فلن تظهر في النافذة إلا Snapshots المرتبطة بالـ level المفتوح. افتح level الآخر في المحرر للاطلاع على سجلاته. كذلك، تُضمَّن في Snapshot Actor التي لم تكن ظاهرة في World Outliner وقت التسجيل. لذلك قد لا يكفي النظر إلى العناصر الظاهرة وحدها عند تقييم ترتيب المشهد؛ تحقّق أيضًا من مستوى ظهور Actor.
4. ضيّق نطاق الاختيار باستخدام الفلاتر المخصصة
في المستويات التي تضم عددًا كبيرًا من Actor، تساعد الفلاتر على تحديد السجلات التي ستشارك في الاستعادة بدقة أكبر. أضف مجموعة فلاتر باستخدام زر + Filter Group، ثم اختر من قائمة Add Filter فلترًا جاهزًا أو فلتر C++ أو فلتر Blueprint مخصصًا للمشروع. بعد اختيار الفلتر، اضبط الخصائص اللازمة لتشغيله. فعلى سبيل المثال، يطلب Actor Has Tag Filter تحديد وسم Actor المطلوب استخدامه.
تعمل الفلاتر داخل المجموعة الواحدة بمنطق AND؛ إذ يجب أن تستوفي Actor جميع المعايير في المجموعة حتى تظهر. أما مجموعات الفلاتر الإضافية فتُدمج بمنطق OR؛ إذ يمكن أن تظهر Actor التي تستوفي أيًا من المعايير. بعد إعداد الفلتر، حدّد Snapshot واضغط Refresh Results. ويمكنك حفظ الفلاتر أو تحميلها من قائمة Load / Save Filter لإعادة استخدامها لاحقًا. امنح الفلاتر التي سيستخدمها أكثر من شخص أسماء توضّح وظيفتها.
يمكن أن يكون إعداد Default Result للفلتر Include أو Exclude أو Do Not Care. تحدد هذه الخيارات ما إذا كانت نتيجة الفلتر ستُضمَّن أو تُستبعد، أو ما إذا كانت حالة Actor التي لا تتأثر مباشرة بالفلتر لن تؤخذ في الحسبان. ويمكن أيضًا عكس الفلتر؛ لكن عكس فلتر مضبوط على Exclude قد يؤدي إلى تضمين النتائج. لذلك من المفيد اختبار منطق الفلاتر على اختيار صغير قبل إنشاء قواعد معقدة.
أخطاء شائعة
افتراض أن تغييرات Assets مشمولة في Snapshot: لا تُحفظ حالات Assets مثل Material. تتبّع هذه التغييرات على نحو منفصل باستخدام source control.
إغفال العناصر غير المتعقبة: لا تتعقب Level Snapshots عناصر Landscape أو USD Actor أو متغيرات وحدة التحكم؛ لذا يلزم تتبعها بشكل منفصل.
تغيير اسم level فرعي: إذا أُعيدت تسمية sublevel بعد إنشاء Snapshot، فقد يتعامل النظام مع Actor الموجودة فيه بوصفها Actor جديدة بدلًا من عناصر حالية تغيّرت.
خلط أنواع مختلفة من الفلاتر في مجموعة واحدة: لا توصي Epic، في معظم الحالات، باستخدام فلاتر Is Actor Valid وIs Property Valid معًا؛ فلا تجمعهما في مجموعة الفلاتر نفسها.
تأثيرها في سير عمل العمارة والتصور المعماري
في العروض المعمارية، يمكن استخدام Level Snapshots لتسجيل متغيرات مثل ترتيب الإضاءة وتخطيط المشهد ومواضع Actor محددة، ثم استعادتها انتقائيًا. وهذا مفيد للفرق التي تقارن حالات مختلفة للمشهد في level نفسه، وكذلك لأعمال الإنتاج الافتراضي. لكن ينبغي ألا يُنظر إلى سير العمل على أنه يقتصر على حالة Actor وخصائصها: فتغييرات Assets مثل Material غير مشمولة في Snapshot. كما يجب تتبع عناصر Landscape وUSD Actor ومتغيرات وحدة التحكم بشكل منفصل.
لا تحدد صفحة توثيق Level Snapshots توافق الإصدارات أو شروط الترخيص أو متطلبات الأجهزة؛ لذا تحقّق من هذه المعلومات على نحو منفصل ضمن تخطيط المشروع. وإذا كنت تستخدم nDisplay، فضع في الحسبان الحاجة إلى إضافة الدعم الإضافية وإعادة تشغيل المحرر بعد استخدامها. وفي المشاهد الكبيرة، من المهم خصوصًا مراجعة Actor والخصائص التي ستتأثر قبل الاستعادة لتجنب التغييرات غير المرغوب فيها.
المصادر
1 مصادرلا نعيد نشر نصوص المصادر؛ الاقتباسات القصيرة مشار إليها، وما تبقى ملخص وتعليق من إعدادنا.
تكمن القيمة العملية لـ Level Snapshots بالنسبة إلى فرق العمارة والتصور المعماري في تركيا في قدرتها على إدارة حالات مختلفة للمشهد في level نفسه من دون الحاجة إلى استنساخه. وقد يساعد استدعاء تغييرات محددة، مثل الإضاءة أو موضع Actor بعينه، على الحفاظ على ترتيب العمل، خصوصًا عند إعداد عروض بديلة.
لكن لا ينبغي التعامل معها كوسيلة كاملة لنسخ المشروع احتياطيًا: فـ Assets وبعض أنواع Actor خارج نطاقها. ومن المهم أن يتتبع الفريق تغييرات Material بشكل منفصل، وأن يستخدم أسماء واضحة للفلاتر، وأن يراجع قائمة الاستعادة. وبما أن الوثائق لا توضّح شروط الترخيص والأجهزة، ينبغي التحقق من هذه الجوانب بشكل منفصل قبل اتخاذ قرار بشأن المشروع.
الأسئلة الشائعة
كيف تنشئ Unreal Engine Level Snapshot؟
فعّل إضافة Level Snapshots من Project Settings ثم أعد تشغيل المحرر. بعد ذلك، استخدم زر Level Snapshot في شريط الأدوات الرئيسي أو خيار Take Snapshot في نافذة Level Snapshots.
هل تحفظ Level Snapshot تغييرات Material؟
لا. وفقًا لوثائق Epic، لا تُحفظ حالات Assets مثل Material؛ وينبغي تتبع هذه التغييرات بشكل منفصل باستخدام source control.
ما العناصر التي لا تتعقبها Level Snapshot؟
لا تتعقب Level Snapshots عناصر Landscape أو USD Actor أو متغيرات وحدة التحكم. ويجب تتبعها بشكل منفصل.



