This guide describes how to upgrade your Unreal Engine 4 projects to Unreal Engine 5 (UE5).
本指南介紹如何將虛幻引擎 4 專案升級到虛幻引擎 5 (UE5)。
Unreal Engine 5 (UE5) introduces a series of changes, upgrades, and new features to the systems that made up Unreal Engine 4 (UE4). Although there have been significant changes to the engine, the built-in conversion process handles most of the work involved in migration without requiring any user action.
虛幻引擎 5 (UE5) 對虛幻引擎 4 (UE4) 的系統進行了一系列更改、升級和新功能。儘管引擎發生了重大變化,但內建轉換過程可以處理遷移中涉及的大部分工作,而不需要任何使用者操作。
To begin, open UE5 from the Epic Games Launcher. If UE5 is already running, from the main menu, go to File > Open Project from the main menu. Then, select the project you want to upgrade and click Open.
首先,從 Epic Games Launcher 開啟 UE5。如果 UE5 已在運行,請從主選單轉到「檔案」>「開啟專案」。然後,選擇要升級的項目並點擊“開啟”。
Click the Open a Copy button to upgrade a separate copy of your project, leaving the original unchanged.
按一下「開啟副本」按鈕升級項目的單獨副本,保持原始版本不變。

If you click More Options on this dialog, you can choose to either:
如果您按一下此對話方塊上的更多選項,您可以選擇:
- Skip the conversion, which attempts to open the project as-is.
跳過轉換,這會嘗試按原樣開啟項目。 - Convert in-place, which attempts to convert the existing project rather than make a copy of it.
就地轉換,嘗試轉換現有項目而不是複製它。
When you convert a project to UE5, we highly recommend using the Open a Copy workflow described above. The Convert in-place and Skip conversion options may not work as expected and may lead to data corruption and data loss.
當您將專案轉換為 UE5 時,我們強烈建議使用上述「開啟副本」工作流程。就地轉換和跳過轉換選項可能無法按預期工作,並可能導致資料損壞和資料遺失。
Once you update a project to a newer version of Unreal Engine, you won't be able to open it in an older version. Attempting to do so will fail.
將專案更新到較新版本的虛幻引擎後,您將無法在舊版本中開啟它。嘗試這樣做將會失敗。
Once the conversion process is complete, most projects will be ready to build and run in UE5 without further action. However, certain new or upgraded features benefit from, or even require, some manual updates to operate properly in UE5 and take advantage of its full capabilities. Among the largest systemic changes are Nanite, Lumen, and Chaos. Nanite and Lumen will require some of work to get graphics-centric projects looking the same as they did in UE4, and heavily physics-based projects that have not already switched to Chaos will need some configuration and Asset modification.
轉換過程完成後,大多數專案就可以在 UE5 中建置和運行,無需進一步操作。然而,某些新的或升級的功能受益於甚至需要一些手動更新才能在 UE5 中正常運作並利用其全部功能。最大的系統變化包括奈米體、流明和混沌。 Nanite 和 Lumen 需要做一些工作才能使以圖形為中心的專案看起來與 UE4 中的專案相同,而尚未切換到 Chaos 的基於實體的專案將需要一些配置和資產修改。
This page covers mandatory updates and other noteworthy system changes, such as system deprecations and replacements. If you are using these features, you will need to perform the updates described in the Mandatory Updates section to bring your UE4 projects into UE5 successfully. Updates described in the Other Changes section may or may not impact your projects, but it is worth to keep them in mind.
此頁面涵蓋強制更新和其他值得注意的系統更改,例如係統棄用和替換。如果您正在使用這些功能,則需要執行強制更新部分中所述的更新,才能成功將 UE4 項目引入 UE5。其他變更部分中所述的更新可能會也可能不會影響您的項目,但值得記住它們。
Version-Specific Conversion Notes
特定於版本的轉換說明
Refer to the table below to understand how your project will convert depending on the Unreal Engine version it was created with.
請參考下表以了解您的專案將如何根據建立的虛幻引擎版本進行轉換。
Project Created With Version 使用版本建立的項目 |
Conversion Notes 轉換說明 |
---|---|
Unreal Engine 4.0 to 4.26 虛幻引擎 4.0 至 4.26 |
Your project will load in any version of Unreal Engine that is the same or newer than the version it was created with. The Unreal Engine API has changed over time, which means some projects created with much older versions may not load correctly. For example, Blueprints saved all the way back in 4.0 might call functions that were deprecated in 4.10 and no longer exist in 5.0. However, the project should still load and let you fix up the references that were deprecated or removed. |
Unreal Engine 4.27 虛幻引擎4.27 | Your project will load in Unreal Engine 4.27, 5.0, and newer versions. Note that your project will not load in Unreal Engine 5.0 Early Access. This was communicated as part of the Unreal Engine 5.0 Early Access compatibility notes. |
Unreal Engine 5.0 虛幻引擎5.0 | Your project will load in Unreal Engine 5.0 and newer versions. 您的專案將載入到虛幻引擎 5.0 及更高版本中。 |
Unreal Engine 5.1 and newer versions 虛幻引擎 5.1 及更高版本 |
Your project will load in any version of Unreal Engine that is the same or newer than the version it was created with. 您的專案將載入到與創建專案時使用的版本相同或更新的任何版本的虛幻引擎中。 |
Asset Compatibility 資產相容性
Assets saved in an older version of Unreal Engine can be opened in a newer version. For example, if you save an Asset in Unreal Engine 4.26, you can open it with Unreal Engine 5.0.
舊版虛幻引擎中儲存的資源可以在新版本中開啟。例如,如果您在虛幻引擎 4.26 中儲存資源,則可以使用虛幻引擎 5.0 打開它。
Assets saved in a newer version of Unreal Engine cannot be opened in an older version. For example, if you saved an Asset in Unreal Engine 5.0, you will not be able to open it in Unreal Engine 4.26.
在較新版本的虛幻引擎中保存的資源無法在舊版本中開啟。例如,如果您在虛幻引擎 5.0 中保存了資源,則無法在虛幻引擎 4.26 中開啟它。
Mandatory Updates 強制更新
The following sections describe changes that you may need to make to your UE4 project in order to bring it into UE5. Some of these changes are mandatory, while others are optional but recommended and will become mandatory in future versions of UE5.
以下部分描述了您可能需要對 UE4 項目進行的更改,以便將其引入 UE5。其中一些更改是強制性的,而另一些更改是可選的,但建議進行,並將在 UE5 的未來版本中成為強制性的。
Development Platform Changes
開發平台變化
If you write C++ code in Visual Studio, you must switch to Visual Studio 2019 if you are not already using it. This is also the default Visual Studio IDE for the latest version of UE4. UE5 does not support Visual Studio 2017 or Visual Studio 2015.
如果您在 Visual Studio 中編寫 C++ 程式碼,並且尚未使用 Visual Studio 2019,則必須切換到它。這也是最新版本 UE4 的預設 Visual Studio IDE。 UE5 不支援 Visual Studio 2017 或 Visual Studio 2015。
UE5 does not support 32-bit platforms, and there are no plans to add 32-bit platform support in the future.
UE5不支援32位元平台,未來也沒有計畫增加32位元平台支援。
UE5 standardizes Target Platform Names. You will need to update build scripts and, in some cases, DeviceProfiles.ini
files. This primarily affects you if you run these scripts directly; if you use UAT, you should not need to make changes.
UE5 標準化了目標平台名稱。您將需要更新建置腳本,在某些情況下還需要更新 DeviceProfiles.ini
檔案。如果您直接執行這些腳本,這主要會影響您;如果您使用 UAT,則不需要進行更改。
The following table contains the list of changed Target Platform Names:
下表包含更改的目標平台名稱的清單:
UE4 Target Platform Name UE4 目標平台名稱 |
UE5 Target Platform Name UE5 目標平台名稱 |
---|---|
Windows 視窗 | WindowsEditor Windows編輯器 |
WindowsNoEditor Windows無編輯器 | Windows 視窗 |
MacNoEditor MacNo編輯器 | Mac |
Mac | MacEditor Mac編輯器 |
LinuxNoEditor Linux無編輯器 | Linux |
Linux | LinuxEditor Linux編輯器 |
LinuxAArch64NoEditor | LinuxAArch64 |
PhysX and Chaos Physics Systems
PhysX 和混沌物理系統
UE5 uses the Chaos Physics engine for physical simulation, replacing PhysX as the default. Physics simulation under Chaos Physics behaves differently from PhysX, requiring developers to make adjustments in order to see consistent behavior.
UE5使用混沌物理引擎進行物理模擬,取代了預設的PhysX。混沌物理下的物理模擬的行為與 PhysX 不同,需要開發人員進行調整才能看到一致的行為。
The physics tick rate will change for any newly created projects by default. The tick rate change will be accessible from Tick Async Physics within Project Settings (menu: Edit > Project Settings). This new feature will simulate Physics on its own thread instead of on the Game Thread.
預設情況下,任何新建立的項目的物理滴答率都會改變。可以透過「項目設定」(選單:「編輯」>「項目設定」)中的「勾選非同步實體」來存取刻度率變更。這項新功能將在其自己的線程而不是遊戲線程上模擬物理。
This change improves determinism by running physical simulation updates at a fixed rate. As a result of having a fixed update rate, networked physics simulation is easier to keep synchronized because client and server systems run at the same interval.
此變更透過以固定速率運行物理模擬更新來提高確定性。由於具有固定的更新率,網路物理模擬更容易保持同步,因為客戶端和伺服器系統以相同的時間間隔運行。
No longer running on the Game Thread means that there is a potential delay between input to the physics system from the Game Thread and the physics system's reaction to that input. You must account for this delay to avoid unpredictable behavior in projects where gameplay logic relies heavily on physics simulation. Running Physics-heavy gameplay code in C++ callbacks which execute on the Physics Thread can mitigate this, but will require modifying project code to use this approach.
不再在遊戲線程上運行意味著從遊戲線程到物理系統的輸入與物理系統對該輸入的反應之間存在潛在的延遲。您必須考慮到這種延遲,以避免在遊戲邏輯嚴重依賴物理模擬的專案中出現不可預測的行為。在實體執行緒上執行的 C++ 回呼中執行物理密集型遊戲程式碼可以緩解這種情況,但需要修改專案程式碼才能使用此方法。
Console Variables for Shader Debugging
用於著色器調試的控制台變量
For the release of Unreal Engine 5, the console variables used for debugging shaders have changed. The table below offers a guide to these renames.
對於虛幻引擎 5 的發布,用於調試著色器的控制台變數已更改。下表提供了這些重命名的指南。
If your project use any of these variables in their configuration files, you will need to update them when migrating to UE5 to continue using the generated data for shader debugging.
如果您的專案在其設定檔中使用任何這些變量,則在遷移到 UE5 時需要更新它們,以繼續使用生成的資料進行著色器偵錯。
Old Console Variable Name 舊控制台變數名稱 |
New Console Variable Name 新控制台變數名稱 |
Description 描述 |
---|---|---|
r.Shaders.KeepDebugInfo |
r.Shaders.Symbols |
Enables debugging of shaders by generating symbols and writing them to disk for consoles. Desktop symbols are stored online. 透過產生符號並將其寫入控制台磁碟來啟用著色器偵錯。桌面符號線上儲存。 |
N/A | r.Shaders.ExtraData |
Generates shader names and any additional shader data. 產生著色器名稱和任何其他著色器資料。 |
r.Shaders.PrepareExportedDebugInfo |
r.Shaders.GenerateSymbols |
Generates symbols but does not write them to disk. Instead, symbols are stored in the Derived Data Cache (DDC). 生成符號但不將它們寫入磁碟。相反,符號儲存在派生資料緩存 (DDC) 中。 |
r.Shaders.ExportDebugInfo |
r.Shaders.WriteSymbols |
Writes symbols to disk if they have been generated. 如果已產生符號,則將其寫入磁碟。 |
r.Shaders.AllowUniqueDebugInfo |
r.Shaders.AllowUniqueSymbols |
Generates symbol associations based on shader source. By default, this is off. 根據著色器來源產生符號關聯。預設情況下,此功能處於關閉狀態。 |
r.Shaders.ExportDebugInfo.Zip |
r.Shaders.WriteSymbols.Zip |
When writing symbols to disk, they are written out as a single ZIP file. 將符號寫入磁碟時,它們會以單一 ZIP 檔案寫出。 |
The console variable r.Shaders.KeepDebugInfo
has been split into two console variables (r.Shaders.Symbols
and r.Shaders.ExtraData
) to remove the changes to runtime shader data when only symbols are required. It is useful for platforms that support exported debug information because it allows symbols to be generated for shipping builds without changing the final shader data.
控制台變數 r.Shaders.KeepDebugInfo
已拆分為兩個控制台變數( r.Shaders.Symbols
和 r.Shaders.ExtraData
),以便在僅需要符號時刪除對運行時著色器數據的更改。它對於支援匯出偵錯資訊的平台非常有用,因為它允許為交付建置生成符號,而無需更改最終著色器資料。
For more information about this process, refer to the Shader Debugging page.
有關此過程的更多信息,請參閱著色器調試頁面。
Other Changes 其他變化
These updates are not required to get your Unreal Engine 4 (UE4) project running in the Unreal Engine 5 (UE5), but may be required in future versions, or may help you to take advantage of the engine's full capabilities.
這些更新不需要讓您的虛幻引擎 4 (UE4) 專案在虛幻引擎 5 (UE5) 中運行,但在未來版本中可能需要,或者可以幫助您利用引擎的全部功能。
Read through this page to learn how to prepare yourself for future versions of Unreal Engine 5 (UE5), and to get the most out of the engine's new and upgraded features.
通讀本頁,了解如何為虛幻引擎 5 (UE5) 的未來版本做好準備,並充分利用引擎的新功能和升級功能。
C++ Object Pointer Properties
C++ 物件指標屬性
The following section only applies to projects using C++ code. Blueprints Visual Scripting users do not need to take any action. C++ Licensee projects can keep using raw object pointers or optionally begin to use TObjectPtr
.
以下部分僅適用於使用 C++ 程式碼的專案。藍圖視覺化腳本使用者無需執行任何操作。 C++ 被授權者專案可以繼續使用原始物件指針,也可以選擇開始使用 TObjectPtr
。
UE5 introduces TObjectPtr
, a template-based, 64-bit pointer system, as an optional replacement for raw object pointers in editor builds. This system adds dynamic resolution and access tracking in editor builds, while performing identically to raw pointers in non-editor builds. TObjectPtr
variables also convert automatically to raw pointers when passed to functions or stored in local variables. Many engine classes that once featured raw pointers in UPROPERTY
variables now use TObjectPtr
. While most interactions with TObjectPtr
types will implicitly convert to raw pointers, there are some rare cases where direct interactions with engine class member variables need to change from raw pointer semantics to TObjectPtr
semantics. For example, the RootComponent
property in AActor
was a USceneComponent*
in UE4, but is a TObjectPtr<USceneComponent>
in UE5; in some rare cases, you may need to update direct interactions with RootComponent
, though calls to GetRootComponent
, which still has USceneComponent*
return type, can always remain as they are.
UE5 引入了 TObjectPtr
,這是一個基於模板的 64 位元指標系統,作為編輯器建構中原始物件指標的可選替代。該系統在編輯器建置中新增了動態解析和存取跟踪,同時與非編輯器建置中的原始指標執行相同的操作。 TObjectPtr
變數在傳遞給函數或儲存在局部變數時也會自動轉換為原始指標。許多曾經在 UPROPERTY
變數中使用原始指標的引擎類別現在使用 TObjectPtr
。雖然大多數與 TObjectPtr
類型的交互都會隱式轉換為原始指針,但在極少數情況下,與引擎類成員變量的直接交互需要從原始指針語義更改為 TObjectPtr
語意。例如, AActor
中的 RootComponent
屬性在UE4中是 USceneComponent*
,但在UE5中是 TObjectPtr<USceneComponent>
;在極少數情況下,您可能需要更新與 RootComponent
的直接交互,儘管對仍具有 USceneComponent*
返回類型的 GetRootComponent
的呼叫可以始終保持原樣是。
Although it is optional, we recommend using TObjectPtr<T>
over T*
for UObject
pointer properties and container classes found in UCLASS
and USTRUCT
types. Since TObjectPtr
converts to raw pointers for non-editor builds, this will not impact the behavior or performance of a shipped product, but may improve your experience when developing in editor builds. Use the following methods to adapt your programming style to this new pointer system:
儘管它是可選的,但我們建議對 UCLASS
和 USTRUCT
指標屬性和容器類別使用 TObjectPtr<T>
而不是 T*
。由於 TObjectPtr
會轉換為非編輯器版本的原始指針,因此這不會影響已發布產品的行為或效能,但可能會改善您在編輯器版本中進行開發時的體驗。使用以下方法使您的程式設計風格適應這個新的指標系統:
-
When calling the "Find" family of container functions, use
TObjectPtr<T>*
instead ofT**
to capture the return value.
呼叫“Find”系列容器函數時,請使用TObjectPtr<T>*
而不是T**
來捕獲返回值。 -
Range-based iteration through raw pointer containers might have used
auto*
as the iterator variable type. Change these toauto&
. We also recommend usingauto&
orconst auto&
in new code, sinceTObjectPtr
can cache resolved object addresses, saving time on future access attempts.
透過原始指標容器的基於範圍的迭代可能已使用auto*
作為迭代器變數類型。將它們更改為auto&
。我們也建議在新程式碼中使用auto&
或const auto&
,因為TObjectPtr
可以快取解析的物件位址,從而節省將來存取嘗試的時間。 -
Call
ToRawPtr
orGet
on yourTObjectPtr
when you need a raw pointer and implicit conversion is not available. Common cases include ternary operations and usage inside ofconst_cast
. When passing parameters to function delegates, declare a parallel delegate function as a pass-through, replacing raw pointers withTObjectPtr
parameters. The following example shows a passthrough delegate function:
當您需要原始指標且隱式轉換不可用時,請在TObjectPtr
上呼叫ToRawPtr
或Get
。常見情況包括三元運算和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()); }
In most cases, such as when passing parameters to functions or storing data in local variables, TObjectPtr
automatically converts to raw pointer types. There are a few rare cases, such as those described above, where you will have to perform minor code modifications, but most projects will not need this.
在大多數情況下,例如將參數傳遞給函數或將資料儲存在局部變數中時, TObjectPtr
會自動轉換為原始指標類型。在極少數情況下,例如上面描述的情況,您必須執行較小的程式碼修改,但大多數專案不需要這樣做。
Optional Conversion Tool
可選轉換工具
UE5 includes UnrealObjectPtrTool, a program that automatically converts engine-visible raw pointer properties to the TObjectPtr
system. You can find it in the UE5/Programs/UnrealObjectPtrTool/
section of the solution hierachy in your code IDE. The source code resides in Engine/Source/Programs/UnrealObjectPtrTool/
. The executable exists in your Engine/Binaries/Win64
folder. Depending on your Operating System or Development Enviroment, this executable may be located in your Engine/Binaries/OS folder, where OS represents your operating system.
UE5 包含 UnrealObjectPtrTool,這是一個自動將引擎可見的原始指標屬性轉換為 TObjectPtr
系統的程式。您可以在程式碼 IDE 的解決方案層次結構的 UE5/Programs/UnrealObjectPtrTool/
部分中找到它。原始碼位於 Engine/Source/Programs/UnrealObjectPtrTool/
中。該可執行檔存在於您的 Engine/Binaries/Win64
資料夾中。根據您的作業系統或開發環境,此執行檔可能位於您的 Engine/Binaries/OS 資料夾中,其中 OS 代表您的作業系統。
This optional program's purpose is to expedite the process of converting your code from raw pointers to the TObjectPtr
system. It will update UPROPERTY
variables in class and struct definitions within your header files, but will not make all of the necessary changes to your source code as described above; you will still need to make those adjustments manually and ensure that your project compiles before using UnrealObjectPtrTool.
此選用程式的目的是加快將程式碼從原始指標轉換為 TObjectPtr
系統的過程。它將更新頭文件中類別和結構定義中的 UPROPERTY
變量,但不會如上所述對原始程式碼進行所有必要的更改;您仍然需要手動進行這些調整,並確保您的專案在使用 UnrealObjectPtrTool 之前進行編譯。
To use UnrealObjectPtrTool, follow these steps:
若要使用 UnrealObjectPtrTool,請執行下列步驟:
-
Navigate to your
DefaultEngine.ini
UHT config file located in yourEngine\Programs\UnrealHeaderTool\Config
directory.
導航至位於Engine\Programs\UnrealHeaderTool\Config
目錄中的DefaultEngine.ini
UHT 設定檔。 -
Inside of your DefaultEngine.ini file, modify the following script:
在 DefaultEngine.ini 檔案內,修改以下腳本:NonEngineNativePointerMemberBehavior=AllowAndLog
-
Rebuild your project to ensure all the code is parsed by UHT.
重建您的專案以確保所有程式碼都由 UHT 解析。 -
Depending on how you compile your project, you may find your UHT log information in a file named Log.txt or UnrealHeaderTool.log. You can find those files in the following folder directories:
根據您編譯專案的方式,您可能會在名為 Log.txt 或 UnrealHeaderTool.log 的檔案中找到 UHT 日誌資訊。您可以在以下資料夾目錄中找到這些檔案:C:\Users\USERNAME\AppData\Local\UnrealBuildTool\Log.txt C:\Users\USERNAME\AppData\Local\UnrealHeaderTool\Saved\Logs\UnrealHeaderTool.log Engine\Programs\UnrealBuildTool\Log.txt -
Compile UnrealObjectPtrTool from the Visual Studio solution.
從 Visual Studio 解決方案編譯 UnrealObjectPtrTool。This step is only required if running the Engine from source, otherwise the UnrealObjectPtrTool is precompiled when installing from the Epic Games Launcher.
只有在從原始程式碼執行引擎時才需要執行此步驟,否則從 Epic Games Launcher 安裝時會預先編譯 UnrealObjectPtrTool。 -
Run the UnrealObjectPtrTool executable:
運行 UnrealObjectPtrTool 可執行檔:UnrealObjectPtrTool.exe <UHT_LOG_PATH> -SCCCommand="p4 edit -c UPGRADE_CL {filenames}"
You can add the Optional parameter: -PREVIEW or -n to get a preview of the potential changes.
您可以新增可選參數:-PREVIEW 或 -n 以預覽潛在的變更。
Rendering 渲染
The following default settings have changed, and could affect the look of your project:
以下預設設定已更改,可能會影響項目的外觀:
-
Screen Space Global Illumination: The project setting for Screen Space Global Illumination (Beta) and the related console variable
r.SSGI.Enable
have been removed and the previous status lost. To re-enable Screen Space Global Illumination as the project's default global illumination method, go to Project Settings > (Engine) Rendering > Global Illumination properties and set Dynamic Global Illumination Method to Screen Space (Beta). To re-enable Screen Space Global Illumination on a Post-Process Volume, go to the volume's properties and locate the Global Illumination category, then set the Method field to Screen Space (Beta).
螢幕空間全域照明:螢幕空間全域照明(Beta)的項目設定和相關控制台變數r.SSGI.Enable
已被刪除,先前的狀態遺失。若要重新啟用螢幕空間全域照明作為專案的預設全域照明方法,請前往專案設定 >(引擎)渲染 > 全域照明屬性,並將動態全域照明方法設定為螢幕空間(測試版)。若要在後處理體積上重新啟用螢幕空間全域照明,請前往該體積的屬性並找到全域照明類別,然後將方法欄位設為螢幕空間(測試版)。 -
Ray Tracing support with Lumen Hardware Ray Tracing: Standalone Ray Tracing features are being deprecated in Unreal Engine 5 . However, the engine's ability to compute these lighting effects is not being removed, since Lumen covers these lighting features. What is being removed is the standalone Ray Tracing system that has been developed in Unreal Engine 4. Those features worked mostly in isolation of one another, meaning that they weren't guaranteed to support the same features of the engine equally or consistently. Lumen is adding entirely new implementations of ray tracing features for reflections and global illumination to its Hardware Ray Tracing path. As UE5 continues to develop, the ray tracing features of Lumen will continue to improve, offering wider support and feature parity with other parts of the engine.
Lumen 硬體光線追蹤支援光線追蹤:獨立光線追蹤功能在虛幻引擎 5 中已被棄用。然而,引擎計算這些照明效果的能力並沒有被刪除,因為流明涵蓋了這些照明功能。被刪除的是在虛幻引擎 4 中開發的獨立光線追蹤系統。 Lumen 正在為其硬體光線追蹤路徑添加用於反射和全局照明的光線追蹤功能的全新實現。隨著 UE5 的不斷發展,Lumen 的光線追蹤功能將不斷改進,提供更廣泛的支援以及與引擎其他部分的功能對等。- Ray Tracing Reflections, Global Illumination, and Shadows have been separated into their own features that can be enabled independently of each other. Each of these features can be found in Project Settings > Rendering and requires that Support Hardware Ray Tracing be enabled to use them.
光線追蹤反射、全局照明和陰影已分為各自的功能,可以相互獨立啟用。這些功能中的每一個都可以在「專案設定」>「渲染」中找到,並且需要啟用「支援硬體光線追蹤」才能使用它們。
Under the Global Illumination section, select the Dynamic Global Illumination Method preferred. Under the Reflections section, select the Reflection Method preferred. * Under the Hardware Ray Tracing section, check the box for Ray Tracing Shadows to be used.
在全域照明部分下,選擇首選動態全域照明方法。在“反射”部分下,選擇首選的“反射方法”。 * 在硬體光線追蹤部分下,選取要使用的光線追蹤陰影複選框。- Reflections and Global Illumination can also be set using a Post Process Volume to select from the Global Illumination and Reflection methods.
還可以使用後處理體積來設定反射和全局照明,以從全局照明和反射方法中進行選擇。
- Ray Tracing Reflections, Global Illumination, and Shadows have been separated into their own features that can be enabled independently of each other. Each of these features can be found in Project Settings > Rendering and requires that Support Hardware Ray Tracing be enabled to use them.
-
Generating Mesh Distance Fields: Lumen's Software Ray Tracing features largely rely on Signed Distance Fields for mesh representation. The Default Voxel Density of all Distance Fields has increased from 0.1 to 0.2. This is neccessary to achieve good software tracing quality with Lumen, but it significantly increases Distance Field memory usage. To adjust this property, go to Project Settings > (Engine) Rendering, where you will find the Generate Mesh Distance Fields checkbox and the Distance Field Voxel Density property. You may need to restart the editor after changing this setting for it to take effect.
產生網格距離場:Lumen 的軟體光線追蹤功能很大程度上依賴有符號距離場來進行網格表示。所有距離場的預設體素密度已從 0.1 增加到 0.2。這是使用 Lumen 實現良好的軟體追蹤品質所必需的,但它會顯著增加距離場記憶體使用量。要調整此屬性,請轉到“專案設定”>“(引擎)渲染”,您將在其中找到“生成網格距離場”複選框和“距離場體素密度”屬性。更改此設定後,您可能需要重新啟動編輯器才能使其生效。
Removals 搬遷
Nanite obsoletes most use cases for Hardware Tessellation. Hardware Tesselation has been removed from UE5. For use cases that Nanite does not support, users may want to increase the resolution of their assets if necessary.
Nanite 廢棄了硬體曲面細分的大多數用例。硬體曲面細分已從 UE5 中刪除。對於 Nanite 不支援的用例,用戶可能希望在必要時提高其資產的分辨率。
Lumen replaces Light Propagation Volumes and Distance-Field Global Illumination (DFGI).
流明取代了光傳播體積和距離場全域照明 (DFGI)。
-
Compared to Light Propagation Volumes, Lumen provides additional features, much higher quality, and is under active development, although it has a higher baseline performance cost.
與光傳播體積相比,Lumen 提供了額外的功能、更高的質量,並且正在積極開發中,儘管它具有更高的基準性能成本。 -
DFGI was an experimental feature; developers should use Lumen instead of DFGI for dynamic global illumination.
DFGI 是一個實驗性功能;開發人員應該使用 Lumen 而不是 DFGI 進行動態全域照明。 -
Over time, Lumen Global Illumination and Reflections will replace the majority of ray tracing features with similar or higher-quality results.
隨著時間的推移,流明全域照明和反射將取代大多數光線追蹤功能,提供類似或更高品質的結果。
Legacy Tonemapper, which was deprecated in UE4, does not exist in UE5. No developer action is required.
UE4 中已棄用的舊版色調映射器在 UE5 中不存在。開發人員無需採取任何行動。
Deprecations 棄用
- Cascade will be deprecated in UE 5.0, and removed in a later release. UE5 developers should switch to Niagara. An automated converter to upgrade Cascade data to Niagara is in development.
Cascade 將在 UE 5.0 中棄用,並在後續版本中刪除。 UE5 開發人員應該轉向 Niagara。用於將 Cascade 數據升級到 Niagara 的自動轉換器正在開發中。 - Some Ray Tracing features are being deprecated and moved from a standalone system that requires support to having these features integrated into Lumen's Hardware Ray Tracing system. This means that Reflections and Global Illumination will be directly integrated into Lumen. These standalone features have been deprecated to provide a unified experience with broader support of engine features. (See the "Rendering" section above for more details.)
一些光線追蹤功能已被棄用,並從需要支援的獨立系統轉移到將這些功能整合到 Lumen 的硬體光線追蹤系統中。這意味著反射和全局照明將直接整合到 Lumen 中。這些獨立功能已被棄用,以提供統一的體驗和更廣泛的引擎功能支援。 (有關更多詳細信息,請參閱上面的“渲染”部分。)
World Building 世界大廈
Deprecations 棄用
World Partition is the system UE5 uses to handle large, streaming worlds. The World Composition system that UE4 used still exists, but is deprecated and will not receive upgrades, fixes, or support. World Composition will be removed in a future version of UE5.
世界分區是 UE5 用於處理大型流世界的系統。 UE4 使用的世界合成系統仍然存在,但已被棄用,並且不會收到升級、修復或支援。世界合成將在 UE5 的未來版本中刪除。
To convert your maps to the World Partition system, use WorldPartitionConvertCommandlet
on your project, and provide the name of each map to convert, one at a time. As an example, to convert the TM_WorldComp_P
map, found at /Game/Maps/Tools/Landscape/TM_WorldComp_P
in the packaged QAGame
project, run the editor with the command-line options:
要將地圖轉換為世界分區系統,請在項目上使用 WorldPartitionConvertCommandlet
,並提供要轉換的每張地圖的名稱,一次一張。例如,要轉換在打包的 QAGame
專案中的 /Game/Maps/Tools/Landscape/TM_WorldComp_P
中找到的 TM_WorldComp_P
地圖,請使用命令列選項執行編輯器:
QAGame -run=WorldPartitionConvertCommandlet TM_WorldComp_P -ConversionSuffix -SCCProvider=None
This will convert the TM_WorldComp_P
map to the World Partition system. The -ConversionSuffix
causes the converted map to save as TM_WorldComp_P_WP
instead of overwriting the original map. Because of the -SCCProvider=None
option, the commandlet will run without interacting with your project's source control provider. This process will also generate a TM_WorldComp_P.ini
file containing the settings used to convert the map, and for potential future conversions. The conversion process itself builds runtime grids (for the World Parition system) out of the existing World Composition data, and assigns the map's Actors to the appropriate grids.
這會將 TM_WorldComp_P
地圖轉換為世界分區系統。 -ConversionSuffix
讓轉換後的地圖儲存為 TM_WorldComp_P_WP
,而不是覆蓋原始地圖。由於使用了 -SCCProvider=None
選項,命令列開關將在不與項目的原始碼控制提供者互動的情況下運行。此過程還將產生一個 TM_WorldComp_P.ini
文件,其中包含用於轉換地圖以及用於未來潛在轉換的設定。轉換過程本身根據現有的世界構成資料建立運行時網格(對於世界分區系統),並將地圖的 Actor 分配給適當的網格。
Developers using C++ can see UWorldPartitionRuntimeSpatialHash::ImportFromWorldComposition
and UWorldPartitionRuntimeSpatialHash::GetActorRuntimeGrid
to examine or modify the logic involved in generating grids and assigning Actors to them.
使用 C++ 的開發人員可以查看 UWorldPartitionRuntimeSpatialHash::ImportFromWorldComposition
和 UWorldPartitionRuntimeSpatialHash::GetActorRuntimeGrid
來檢查或修改生成網格並向其指派 Actor 所涉及的邏輯。
Tools 工具
Removals 搬遷
New geometry editing tools will replace the experimental Legacy Editable Mesh Plugin.
新的幾何編輯工具將取代實驗性的舊版可編輯網格插件。
Movie Render Queue will replace Movie Scene Capture.
影片渲染佇列將取代影片場景捕捉。
VR Level Editing will be stripped down to only support VR preview, but UE5 continues to support virtual production scouting.
VR 關卡編輯將精簡為僅支援 VR 預覽,但 UE5 繼續支援虛擬製作偵察。
Take Recorder will replace Sequence Recorder. Take Recorder includes all of the features that Sequence Recorder offered.
Take Recorder 將取代 Sequence Recorder。 Take Recorder 包含 Sequence Recorder 提供的所有功能。
Camera Animation Sequences will replace Camera Anims.
相機動畫序列將取代相機動畫。
UE5 also removes Editor Feature Packs associated with removed plugins. Users of those plugins will need to ensure that they do not reference the removed content in their projects.
UE5 也刪除了與已刪除外掛程式相關的編輯器功能包。這些插件的用戶需要確保他們不會在項目中引用已刪除的內容。
Deprecations 棄用
Sequencer will fully replace Matinee after the full release of UE5. Matinee was deprecated, but still existed in UE4.
UE5全面發布後,Sequencer將全面取代Matinee。 Matinee 已被棄用,但在 UE4 中仍然存在。
Control Rig 控制裝置
Changes 變化
Spaces are renamed to Nulls.
空格被重新命名為 Null。
Gizmos are renamed to Shapes.
小玩意被重新命名為形狀。
Set Initial Transform from Current now reads as Set Offset Transform from Current.
從目前設定初始變換現在讀取為從目前設定偏移變換。
Deprecations 棄用
Collections are now replaced by Arrays.
集合現在被數組取代。
Transform Constraint node is deprecated and replaced with individual point, rotation, and parent contraint nodes.
變換約束節點已棄用,並替換為單點、旋轉和父約束節點。
The new Parent Constraint node can be used in place of a Project to New Parent and Set Transform nodes.
新的 Parent Constraint 節點可用來取代 Project to New Parent 和 Set Transform 節點。
Space Switching can now be used instead of Parent Switch Constraint.
現在可以使用空間切換來取代父切換約束。
Bezier Data Type is replaced with the Splines plugin.
Bezier 資料類型已替換為 Splines 插件。
ControlRigHierarchyModifier no longer is in use for Python, this is replaced with RigHierarchy for querying rig elements and RigHierarchyController to author rig elements.
ControlRigHierarchyModifier 不再用於 Python,它被替換為用於查詢裝備元素的 RigHierarchy 和用於創作裝備元素的 RigHierarchyController。
ControlRigBlueprint no longer has a property named controller. To access the main RigVMController, use the function: ControlRigBlueprint.get_controller().
ControlRigBlueprint 不再具有名為controller 的屬性。若要存取主 RigVMController,請使用下列函數:ControlRigBlueprint.get_controller()。
Mapping is not handled in Construction Script, but on Pre-Initialize of Control Rig Component.
映射不是在構造腳本中處理的,而是在控制裝備組件的預初始化中處理的。
Audio 聲音的
Removals 搬遷
Unreal Audio Mixer will replace the deprecated Legacy Audio Backends by UE 5.0. Users do not need to take any action. UE5 will use Unreal Audio Mixer and leverage modern audio backends by default; these are compatible with all preexisting audio features.
Unreal Audio Mixer 將取代 UE 5.0 已棄用的舊版音訊後端。用戶無需採取任何操作。 UE5 將使用 Unreal Audio Mixer 並預設利用現代音訊後端;這些與所有現有的音訊功能相容。
Deprecations 棄用
Audio Volumes, Sound Class Mix, and Sound Cues will be deprecated by UE 5.0, with plans to remove them in a future release of UE5.
UE 5.0 將棄用音訊音量、聲音類別混音和聲音提示,並計劃在 UE5 的未來版本中刪除它們。
-
Sound Cues will be superseded by MetaSounds, which will be available in UE 5.0.
Sound Cues 將被 MetaSounds 取代,MetaSounds 將在 UE 5.0 中提供。 -
Sound Class Mix will be superseded by the Modulation and Submix systems, which are now available.
Sound Class Mix 將被現在可用的調變和子混合系統取代。 -
Audio Volumes will be superseded by a new system currently in development, which will be available in UE 5.0.
Audio Volumes 將被目前正在開發的新系統取代,該系統將在 UE 5.0 中提供。
Users are encouraged to move to the new versions of these systems as soon as possible.
我們鼓勵用戶盡快遷移到這些系統的新版本。
Gameplay Framework 遊戲框架
Removals 搬遷
Blueprint Nativization will not exist in UE5. Projects that leveraged this feature should not see any changes or need to receive any modifications in order to function properly, though performance may be impacted. If this happens, developers will need to take other optimization approaches.
UE5 中將不存在藍圖原生化。利用此功能的項目不應看到任何變更或需要接受任何修改才能正常運行,但效能可能會受到影響。如果發生這種情況,開發人員將需要採取其他最佳化方法。
Networking 聯網
Deprecations 棄用
AES, RSA, and RSA Key AES Encryption Handlers are deprecated and planned for removal.
AES、RSA 和 RSA 金鑰 AES 加密處理程序已棄用並計畫刪除。
Core 核
Removals 搬遷
Zen Loader will replace the Event-Driven Loader. Since most users do not interface directly with the Event-Driven Loader, this change use not require any actions during project migration.
Zen Loader 將取代事件驅動載入器。由於大多數使用者不直接與事件驅動載入器交互,因此此變更使用在專案遷移期間不需要任何操作。
Deprecations 棄用
Unreal Insights instrumentation will replace the Stats System after the full release of UE 5.0. The Stats System will continue to exist in UE 5.0, but will eventually be removed in favor of Unreal Insights.
UE 5.0 全面發布後,Unreal Insights 工具將取代統計系統。統計系統將繼續存在於 UE 5.0 中,但最終將被刪除,取而代之的是 Unreal Insights。