باختصار
- توفّر PCGCleanSplineSettings إعدادات لإزالة نقاط التحكم المتداخلة أو غير الضرورية في المقاطع الخطية.
- تنشئ PCGSpawnSplineMeshSettings مكوّن Spline Mesh لكل مقطع من Spline.
- تخص وثيقة التنظيف Python API التجريبية في Unreal Engine 5.7، بينما تخص وثيقة إنشاء Mesh الإصدار 5.5.
- تدعم إعدادات Mesh تجاوزات الخصائص على مستوى البيانات؛ ولا تدعم التجاوزات لكل نقطة تحكم.
ما الذي ستتعلمه في هذا الدليل؟
يتناول هذا الدليل خيارات تنظيم بيانات Spline وإنشاء Mesh على امتدادها باستخدام أدوات Procedural Content Generation (PCG) في Unreal Engine. في القسم الأول، سنستعرض إعدادات PCGCleanSplineSettings المخصصة لإزالة نقاط التحكم المتداخلة أو غير الضرورية على المقاطع الواقعة على خط واحد. ثم سنشرح طريقة الصنف PCGSpawnSplineMeshSettings في إنشاء مكوّنات Mesh لمقاطع Spline.
الهدف هنا ليس إنشاء نموذج معماري بعينه خطوة بخطوة، بل فهم وظيفة مجموعتي الإعدادات والقرارات التي تؤثران فيها ضمن سير العمل. توضح الوثائق خصائص الأصناف، لكنها لا تقدم سكربت Python كاملًا لإعداد مخطط PCG محدد، ولا مسارًا في قوائم المحرر. لذا فالخطوات التالية ترتيب عمل مستند إلى الخصائص الموثقة.
المتطلبات وملاحظات الإصدار
تخص صفحتا API في المصادر إصدارين مختلفين من Unreal Engine: يظهر صنف تنظيف Spline في وثائق Python التجريبية لـ Unreal Engine 5.7، بينما يظهر صنف إنشاء Spline Mesh في وثائق Python التجريبية لـ Unreal Engine 5.5. وهذا لا يعني أن الميزات متاحة بالطريقة نفسها في الإصدار ذاته، أو أن الصنفين جاهزان للاختبار معًا. تحقّق أيضًا من وثائق API الخاصة بإصدار المشروع الذي تستخدمه.
كلا الصنفين معرّف ضمن وحدة PCG. يستند صنف التنظيف إلى PCGSettings، وكذلك إعدادات إنشاء Mesh. لا تذكر الوثائق أي متطلبات لحساب أو ترخيص. على من يخطط لاستخدام إعدادات PCG عبر Python الرجوع إلى وثائق Python API للإصدار المختار. وبما أن الوثائق لا تتضمن أمثلة جاهزة للسكربتات، فلا نقدم هنا شيفرة قابلة للتنفيذ.
خطوات التنفيذ
حدّد بيانات Spline والهدف. ابدأ بتحديد المهمة الهندسية التي يمثّلها Spline ونوع Mesh المراد إنشاؤه على امتداده. يمكن، مثلًا، وصف حدّ لمنطقة تنسيق أو حافة طريق أو عنصر معماري خطي باستخدام Spline؛ لكن هذه الوثائق لا تحدد Mesh المطلوب أو تنظيم المشروع. في هذه المرحلة، قيّم النقاط أو المقاطع التي تؤثر فعليًا في الشكل قبل تعديل Spline.
اختر سلوك التنظيف. يتعامل PCGCleanSplineSettings مع حالتين أساسيتين لإزالة نقاط التحكم غير الضرورية على امتداد Spline: النقاط الموجودة في الموقع نفسه، والنقاط الواقعة على مقطع خطي بين النقطة السابقة والتالية. تتحكم
remove_collinear_control_pointsفي إزالة النقاط الواقعة على مقاطع خطية والتي لا تؤثر في الحساب النهائي لـ Spline. أماfuse_colocated_control_pointsفتتيح دمج النقاط التي تقع ضمن حدّ مسافة محدد في فضاء العالم.اضبط الحدود بعناية. تحدد
colocation_distance_thresholdحدّ المسافة الذي تُعدّ ضمنه نقطتا تحكم في الموقع نفسه. أماcollinear_angle_thresholdفهو حدّ الزاوية المستخدم لتحديد ما إذا كانت النقطة خطية بالنسبة إلى المقطع الواصل بين النقطتين السابقة والتالية. توضح الوثائق نوع هذه الخصائص ووظيفتها، لكنها لا توصي بقيم محددة لمشروع بعينه. لذلك ينبغي اختبار الحدود على بيانات المشهد بما يحافظ على شكل Spline.تحقّق من فضاء القياس ووحدة الزاوية. يختار
use_spline_local_spaceاستخدام الفضاء المحلي لـ Spline بدلًا من فضاء العالم عند حساب المسافة. وعند تفعيلuse_radians، يُستخدم حدّ الزاوية بالراديان مباشرةً؛ كما تُحوّل قيمةCollinearAngleThresholdالحالية تلقائيًا عند تغيير الخاصية. راعِ هذا التغيير في الوحدة عند نقل القيم يدويًا.قيّم إنشاء Mesh على امتداد Spline بعد تنظيفه. ينشئ PCGSpawnSplineMeshSettings مكوّن Spline Mesh لكل مقطع على Spline المحدد. لذا، إذا كان هدف خطوة التنظيف تقليل النقاط غير المؤثرة من دون تغيير الشكل الهندسي، فمن الأفضل تقييم إعدادات التنظيف قبل إنشاء Mesh. لا تعرض وثائق المصدر كيفية وصل الصنفين في مخطط محدد، لذلك فهذا الترتيب اقتراح للتنفيذ، وليس مخطط توصيل جاهزًا.
راجع خصائص Mesh والتحميل. يوفّر
spline_mesh_descriptorواصف مكوّن Mesh، بينما يوفّرspline_mesh_paramsمعلمات Spline Mesh. وعند تفعيلsynchronous_load، يُفرض التحميل المتزامن لـ Mesh والمواد. قيّم أثر هذا الخيار في سلوك التحميل بالمشروع؛ فالوثائق لا تحدد نتائج الأداء ولا الحالات التي يُفضّل استخدامه فيها.انتبه إلى قيود التجاوزات والمعالجة اللاحقة. يحدد
spline_mesh_override_descriptionsالتجاوزات الخاصة بواصف Spline Mesh. وتذكر الوثائق صراحةً أن هذه التجاوزات تدعم حاليًا السمات على مستوى البيانات فقط، وأن التجاوزات لكل نقطة تحكم لا تعمل. أماpost_process_function_namesفيتلقى قائمة بالدوال التي ستُستدعى على الممثل المستهدف بعد إنشاء Mesh. ويجب أن تكون هذه الدوال بلا معلمات وأن تحمل وسمCallInEditor.
أخطاء شائعة
اعتبار وثائق 5.5 و5.7 ضمانًا لإصدار واحد: وُثّق الصنفان في وثائق تخص إصدارين مختلفين. تحقّق من الخصائص كلٌّ على حدة في الإصدار الذي تستخدمه.
زيادة قيم الحدود بلا تدقيق: تؤثر حدود المسافة والزاوية في قرارات التنظيف. لا تحدد المصادر قيمة مثالية عامة؛ لذا تحقّق من الحفاظ على شكل Spline.
توقع تجاوزات لكل نقطة تحكم: يوضح وصف تجاوزات Mesh أن هذا الاستخدام غير مدعوم. خذ هذا القيد على مستوى البيانات في الحسبان عند تصميم متطلباتك.
إغفال تغيير
use_radians: عند تغيير وحدة الزاوية، تُحوّل قيمة الحد الحالية تلقائيًا. تحقّق من الوحدة المستخدمة عند نقل قيمة من إعداد أو سير عمل آخر.افتراض خطوات غير موثقة في المحرر: هذه المصادر أوصاف للأصناف والخصائص، ولا تقدم تخطيطًا محددًا للعُقد أو مثالًا قابلًا للتنفيذ بلغة Python.
ما الفائدة في سير عمل العمارة والتصميم الداخلي والتصور المعماري؟
يمكن للفرق التي تنشئ طرقًا أو حواف أرصفة أو عناصر خطية شبيهة بالدرابزين أو حدودًا للمسطحات الخضراء باستخدام Spline الاستفادة من إزالة نقاط التحكم غير المؤثرة وإنشاء Mesh على امتداد المقاطع. ينبغي استخدام إعدادات التنظيف بهدف الحفاظ على شكل الهندسة، بينما يجب تقييم الواصف والمعلمات وسلوك التحميل المختار لمشروع إنشاء Mesh على حدة. ولا ينبغي إغفال توافق API، خصوصًا في الفرق التي تستخدم أكثر من إصدار من Unreal Engine.
لا تذكر هذه الوثائق متطلبات الأجهزة أو مكاسب الأداء أو شروط الترخيص. لذلك لا يمكن استنتاج أداء تنظيف Spline أو التحميل المتزامن على جهاز بعينه. ومن أكثر الأساليب حذرًا اختبار الإعدادات المستخدمة في المشاهد الكبيرة ضمن المشروع الفعلي والإصدار المستهدف، والتحقق من التوافق قبل إدخال خصائص Python API التجريبية في سير الإنتاج.
الخطوات التالية
ابدأ بفتح وثائق PCG Python API الخاصة بإصدار Unreal Engine الذي اخترته، وقارن خصائص الصنفين في ذلك الإصدار. ثم غيّر إعدادات تنظيف نقاط التحكم على Spline تجريبي صغير، ولاحظ أثرها في الشكل. أما في جانب إنشاء Mesh، فتحقّق من الواصف والمعلمات وقيود التجاوزات على مستوى البيانات. وقبل الانتقال إلى مشهد الإنتاج، تأكد من توفر الوظائف في الإصدار الذي يستخدمه فريق المشروع ومن أنها تحقق النتيجة المتوقعة.
المصدر والترخيص
أُعد هذا الدليل باللغة التركية بالاستناد إلى وصف PCGCleanSplineSettings في وثائق Python API التجريبية لـ Unreal Engine 5.7 من Epic Games، وإلى وصف PCGSpawnSplineMeshSettings في وثائق Python API التجريبية لـ Unreal Engine 5.5. وكلا المصدرين من الوثائق الرسمية، ويُشار إلى الترخيص في سجلات المصدر بأنه serbest.
المصادر
2 مصادرلا نعيد نشر نصوص المصادر؛ الاقتباسات القصيرة مشار إليها، وما تبقى ملخص وتعليق من إعدادنا.
قد يكون تقييم تنظيف Spline وإنشاء Mesh لكل مقطع ضمن خط إنتاج واحد نهجًا يسهّل تنظيم العناصر الخطية المتكررة. وتتمثل الفائدة الأهم لفرق العمارة والتصور المعماري في اختبار الإعدادات بما يتناسب مع المشهد والغرض من Spline؛ إذ لا تقدم الوثائق قيمًا جاهزة للحدود أو قياسات للأداء.
لا يمكن استخلاص نتيجة من هذه المصادر بشأن كلفة البدء للمكاتب والطلاب في تركيا؛ كما أنها لا توضح شروط الترخيص أو متطلبات الأجهزة. وقبل اتخاذ قرار الإنتاج، ينبغي مراعاة اختلاف الإصدارات، ولا سيما أن وثائق 5.5 و5.7 تتناول صنفين منفصلين، وأن API واردة في وثائق Python التجريبية.
الأسئلة الشائعة
ما وظيفة Unreal Engine PCGCleanSplineSettings؟
يوفر إعدادات لإزالة نقاط التحكم الموجودة في الموقع نفسه أو غير الضرورية على المقاطع الخطية في Spline. وتحدد حدود المسافة والزاوية النقاط التي يشملها ذلك.
كيف ينشئ PCGSpawnSplineMeshSettings الـ Mesh على امتداد Spline؟
ينشئ مكوّن Spline Mesh لكل مقطع من Spline المحدد. وتوثق الإعدادات واصف Mesh ومعلمات Spline Mesh وخيارات مثل التحميل المتزامن.
هل يمكن تطبيق تجاوزات Spline Mesh لكل نقطة تحكم؟
وفقًا لوصف الوثيقة، تدعم التجاوزات حاليًا السمات على مستوى البيانات فقط؛ ولا تعمل التجاوزات لكل نقطة تحكم.



