اتبع هذا الدليل لترقية مشاريعك Unreal Engine 4 إلى Unreal Engine 5 Early Access (UE5EA).
يقدم Unreal Engine 5 (UE5) سلسلة من التغييرات والترقيات والميزات الجديدة للأنظمة التي يتكون منها Unreal Engine 4 (UE4). على الرغم من وجود تغييرات كبيرة على المحرك ، فإن عملية التحويل المضمنة تتعامل بسلاسة وتقوم بأغلب العمل المتضمن في الترحيل دون الحاجة إلى أي إجراء من المستخدم.
للبدء ، قم بتشغيل UE5 Early Access من Epic Games Launcher. أو ، إذا كان لديك بالفعل الوصول المبكر UE5 قيد التشغيل ، فحدد ملف> فتح المشروع / File > Open Project من القائمة الرئيسية. ثم حدد المشروع الذي تريد ترقيته وانقر فوق فتح OPEN .
ملاحظة: عند تحويل مشروع إلى UE5 Early Access ، نوصي بشدة باستخدام سير عمل Open a Copy الموضح أعلاه. قد لا يعمل خياري التحويل الموضعي والتخطي (المتوفران بالنقر فوق المزيد من الخيارات ) بالشكل المتوقع |
بمجرد اكتمال عملية التحويل conversion process ، ستكون معظم المشاريع جاهزة للبناء والتشغيل في Unreal Engine 5 Early Access دون اتخاذ مزيد من الإجراءات. ومع ذلك ، تستفيد بعض الميزات الجديدة أو التي تمت ترقيتها من ، أو حتى تتطلب ، بعض التحديثات اليدوية لتعمل بشكل صحيح في UE5 وتستفيد من إمكاناتها الكاملة. من بين أكبر التغييرات النظامية Nanite و Lumen و Chaos. سيتطلب Nanite و Lumen القليل من العمل لجعل المشاريع التي تركز على الرسومات تبدو كما كانت في UE4 ، وستحتاج المشاريع القائمة على الفيزياء بشكل كبير والتي لم تتحول بالفعل إلى Chaos إلى بعض التكوين وتعديل الأصول.
في هذه الصفحة ، سنغطي التحديثات الإلزامية. إذا كنت تستخدم هذه الميزات ، فستحتاج إلى إجراء التحديثات الموضحة هنا من أجل إحضار مشاريع UE4 الخاصة بك إلى UE5 بنجاح. يمكنك أيضًا القراءة عن تغييرات النظام الجديرة بالملاحظة ، بما في ذلك إهمال النظام واستبداله ، للتعرف على التغييرات التي قد تكون مطلوبة في المستقبل ، أو التي يمكن أن تساعدك في تحقيق أقصى استفادة من UE5.
ملاحظة: يركز هذا الدليل على UE5EA ، والذي يستهدف بشكل خاص المطورين المهتمين باستكشاف ميزات وقدرات UE5 أثناء قيامهم بوضع نماذج أولية لألعاب الجيل التالي. لا يعتبر إصدار الوصول المبكر جاهزًا للإنتاج ، لذلك لا نوصي به للفرق التي تعمل على ألعاب مباشرة أو ألعاب في المراحل المتأخرة من التطوير. يعتبر UE5EA هو الأنسب لمشاريع تطوير الألعاب في مراحل ما قبل الإنتاج أو النماذج الأولية الذين يرغبون في العمل باستخدام الأدوات الأكثر تقدمًا المتاحة ، وهم على استعداد لإجراء التحويل إلى UE5 5.0 في عام 2022. بالنسبة لمطوري الألعاب غير الألعاب ، نوصي UE4 4.27 ، من المقرر إطلاقه هذا الصيف ، قبل الانتقال إلى UE5 5.0 في عام 2022. |
التحديثات الإلزامية
في الأقسام التالية التغييرات التي قد تحتاج إلى إجرائها على مشروع UE4 الخاص بك لإدخاله في UE5EA. بعض هذه التغييرات إلزامية ، في حين أن البعض الآخر اختياري ولكن يوصى به في UE5EA ، وستصبح إلزامية في الإصدارات المستقبلية من UE5.
تغييرات منصة التطوير
يجب على المطورين الذين يكتبون كود C ++ في Visual Studio التبديل إلى Visual Studio 2019 إذا لم يكونوا يستخدمونه بالفعل ؛ هذا هو أيضًا Visual Studio IDE الافتراضي لأحدث إصدار من UE4. لا يدعم UE5EA Visual Studio 2017 أو Visual Studio 2015.
لا يدعم UE5EA الأنظمة الأساسية 32 بت ، ولا توجد خطط لإضافة دعم النظام الأساسي 32 بت في المستقبل.
تقوم UE5EA بتوحيد أسماء الأنظمة الأساسية المستهدفة ، وسيحتاج المطورون إلى تحديث البرامج النصية للبناء ، وفي بعض الحالات ، DeviceProfiles.ini
الملفات. يؤثر هذا في المقام الأول على المطورين الذين يديرونها مباشرة ؛ لا يحتاج المطورون الذين يستخدمون UAT إلى إجراء تغييرات. يحتوي الجدول التالي على قائمة بأسماء النظام الأساسي الهدف التي تم تغييرها:
اسم المنصة الهدف UE4 | اسم النظام الأساسي المستهدف UE5EA |
---|---|
Windows | |
WindowsNoEditor | Windows |
MacNoEditor | Mac |
Mac | MacEditor |
LinuxNoEditor | Linux |
Linux | LinuxEditor |
LinuxAArch64NoEditor | LinuxAArch64 |
أضرار مدمجة ومفاهيم النتيجة
لا يتضمن UE5EA أنواع البيانات المضمنة ووظائف الكود للأضرار ونماذج التسجيل التي كانت موجودة في الإصدارات السابقة من Unreal Engine. إذا استخدم هذه الميزات في مشروعك ، فيمكنك إعادة إنشائها في UE5EA ، أو البحث في حلول أخرى ، مثل نظام قدرة اللعب.
خصائص مؤشر الكائن C ++
ملاحظة: ينطبق القسم التالي فقط على المشاريع التي تستخدم كود C ++ ، على الرغم من أن معظم مشاريع C ++ سيتم تجميعها دون الحاجة إلى هذه التعديلات. المخططات لا يحتاج مستخدمو البرمجة النصية المرئية إلى اتخاذ أي إجراء.
|
يقدم UE5EA TObjectPtr
، نظام مؤشر 64 بت قائم على القالب ، كبديل اختياري لمؤشرات الكائنات الأولية في إصدارات المحرر. يضيف هذا النظام دقة ديناميكية وتتبع وصول في إصدارات المحرر ، بينما يؤدي أداءً مماثلًا للمؤشرات الأولية في عمليات إنشاء غير المحرر. TObjectPtr
تتحول المتغيرات أيضًا تلقائيًا إلى مؤشرات خام عند تمريرها إلى وظائف أو تخزينها في متغيرات محلية. تستخدم الآن العديد من فئات المحركات التي كانت تحتوي على مؤشرات أولية في UPROPERTY
المتغيرات TObjectPtr
. في حين أن معظم التفاعلات مع TObjectPtr
الأنواع ستتحول ضمنيًا إلى مؤشرات خام ، إلا أن هناك بعض الحالات النادرة التي تحتاج فيها التفاعلات المباشرة مع متغيرات أعضاء فئة المحرك إلى التغيير من دلالات المؤشر الأولية إلى TObjectPtr
دلالات. على سبيل المثال ، RootComponent
الخاصية في AActor
كانUSceneComponent*
في UE4 ، ولكنه TObjectPtr<USceneComponent>
في UE5EA ؛ في بعض الحالات النادرة ، قد تحتاج إلى تحديث التفاعلات المباشرة مع RootComponent
، على الرغم من أن المكالمات إلى GetRootComponent
، والتي لا تزال تحتوي على USceneComponent*
نوع إرجاع ، يمكن أن تظل دائمًا كما هي.
على الرغم من أنه اختياري ، إلا أننا نوصي باستخدام TObjectPtr<T>
over T*
لخصائص UObject
المؤشر وفئات الحاويات الموجودة في الأنواع UCLASS
والأنواع USTRUCT
. نظرًا TObjectPtr
للتحويل إلى مؤشرات أولية للبنيات غير المحررة ، فلن يؤثر ذلك على سلوك أو أداء المنتج المشحون ، ولكنه قد يحسن تجربتك عند التطوير في بنى المحرر. استخدم الطرق التالية لتكييف نمط البرمجة الخاص بك مع نظام المؤشر الجديد هذا:
-
عند استدعاء مجموعة وظائف الحاوية “Find” ، استخدم
TObjectPtr<T>*
بدلاً منT**
التقاط القيمة المرجعة. -
ربما تم استخدام التكرار المستند إلى النطاق من خلال حاويات المؤشر الأولية
auto*
كنوع متغير المكرر. قم بتغيير هذه إلىauto&
. نوصي أيضًا باستخدامauto&
أوconst auto&
في رمز جديد ، حيثTObjectPtr
يمكن تخزين عناوين الكائنات التي تم حلها مؤقتًا ، مما يوفر الوقت في محاولات الوصول المستقبلية. -
اتصل
ToRawPtr
أو اتصلGet
بكTObjectPtr
عندما تحتاج إلى مؤشر خام ولا يتوفر التحويل الضمني. تشمل الحالات الشائعة العمليات الثلاثية ، وداخلconst_cast
. عند تمرير المعلمات لمفوضين الوظيفة ، قم بتعريف دالة تفويض موازية على أنها تمريرية ، واستبدال المؤشرات الأوليةTObjectPtr
بالمعلمات. يُظهر المثال التالي دالة تفويض العبور:
// Original function signature, using raw pointers, which we will use in most cases:
static bool MyFunction(UObject* FirstParameter);
// In rare cases where implicit conversion is not available, use this pass-through function. // Pass-through function signature, using TObjectPtr: static bool MyFunction(TObjectPtr<UObject> FirstParameter);
// Pass-through function body (in the source file): bool UMyClass::MyFunction(TObjectPtr<UObject> FirstParameter) { return ShouldShowResetToDefault(FirstParameter.Get()); } |
ملاحظة: في معظم الحالات ، مثل عند تمرير المعلمات إلى الوظائف أو تخزين البيانات في المتغيرات المحلية ، |
أداة تحويل اختيارية
يتضمن UE5EA UnrealObjectPtrTool ، وهو برنامج يقوم تلقائيًا بتحويل خصائص المؤشر الأولية المرئية للمحرك إلى TObjectPtr
النظام. يمكنك العثور عليه في Engine/UE5/Programs/UnrealObjectPtrTool/
قسم الحل الهرمي في كود IDE الخاص بك. شفرة المصدر موجودة في Engine/Source/Programs/UnrealObjectPtrTool/
.
ملاحظة: الغرض من هذا البرنامج الاختياري هو تسريع عملية تحويل التعليمات البرمجية الخاصة بك من المؤشرات الأولية إلى |
لاستخدام UnrealObjectPtrTool ، اتبع الخطوات التالية:
-
قم بتجميع وطهي وتشغيل مشروعك في UE5EA. وهذا يشمل كلا من المحرر وبناء الألعاب.
-
تحديد وتسجيل المسار إلى ملف سجل Unreal Header Tool (UHT) من بناء المحرر الخاص بك. هذا الملف هو نتيجة ثانوية لعملية التجميع. سوف نشير إلى هذا المسار باسم
UHT_LOG_PATH
. -
قم بإنشاء قائمة تغيير فارغة للاحتفاظ بملفات الرأس التي يتم
UnrealObjectPtrTool
تعديلها. سجل معرّف قائمة التغيير ؛ سوف نشير إلى هذا المعرف باسمUPGRADE_CL
. -
إنشاء UnrealObjectPtrTool القابل للتنفيذ.
.build program UnrealObjectPtrTool
في أوشل:. -
قم بتشغيل UnrealObjectPtrTool القابل للتنفيذ. في أوشل:
.run program UnrealObjectPtrTool -- UHT_LOG_PATH -SCCCommand="p4 edit -c UPGRADE_CL {filenames}"
- تحقق من أن مساحة العمل الخاصة بك تقوم بالتجميع والطهي والتشغيل ، كما فعلت في الخطوة 1 ، مع الملفات المعدلة.
أنظمة فيزياء الفيزياء والفوضى
يستخدم UE5 محرك Chaos Physics للمحاكاة المادية ، ليحل محل PhysX كمحرك افتراضي. على الرغم من أن PhysX لا يزال موجودًا في UE5 Early Access ، إلا أنه ستتم إزالته في إصدار لاحق. محاكاة الفيزياء في ظل Chaos Physics تتصرف بشكل مختلف عن PhysX ، مما يتطلب من المطورين إجراء تعديلات من أجل رؤية السلوك المتسق.
سيتغير معدل التأشير الفيزيائي افتراضيًا لأي مشروع تم إنشاؤه حديثًا. يمكن الوصول إلى تغيير معدل التجزئة من Tick Async Physics ضمن إعدادات المشروع. ستحاكي هذه الميزة الجديدة الفيزياء في سلسلة المحادثات الخاصة بها بدلاً من سلسلة اللعبة.
-
يعمل هذا التغيير على تحسين الحتمية عن طريق تشغيل تحديثات محاكاة فعلية بمعدل ثابت.
-
كنتيجة لوجود معدل تحديث ثابت ، فإن محاكاة الفيزياء الشبكية أسهل في الحفاظ عليها متزامنة لأن أنظمة العميل والخادم تعمل في نفس الفاصل الزمني.
-
لم يعد يعمل على Game Thread يعني أن هناك تأخيرًا محتملاً بين الإدخال إلى نظام الفيزياء من Game Thread ورد فعل نظام الفيزياء على هذا الإدخال. يجب على المطورين مراعاة هذا التأخير لتجنب السلوك غير المتوقع في المشاريع حيث يعتمد منطق اللعب بشكل كبير على محاكاة الفيزياء. تشغيل كود لعبة Physics-heavy في عمليات الاسترجاعات C ++ التي يتم تنفيذها على Physics Thread يمكن أن يخفف من ذلك ، لكنه سيتطلب تعديل كود المشروع لاستخدام هذا الأسلوب.
ملاحظة: على الرغم من أنه سيتم إزالة PhysX في النهاية من UE5 ، لا يزال بإمكان مستخدمي UE5EA التجميع من المصدر مع تمكين PhysX إذا لزم الأمر. |
يجب عليك تسجيل الدخول لكتابة تعليق.