Unreal Engine 5
Unreal Engine 5 是 Epic Games 创建的视频游戏引擎的最新版本。
本文内容最初编写于 Unreal Engine wiki,并专门为 Arch Linux 进行了调整。
先决条件
请参阅 推荐硬件。
获取源代码
Unreal Engine 源代码位于私有 GitHub 存储库中,需要免费注册开发者(Epic Games)才能访问。
要获得访问权限,请在 Epic Games 账户 登录或注册,并在 Epic Games '已连接账户仪表板' 页面的底部提供可访问的 GitHub 用户名。然后,您将收到访问私有 GitHub 存储库的邀请。
克隆
仅克隆所需的 branch 会更快
$ git clone git@github.com:EpicGames/UnrealEngine.git --branch release --single-branch
编译
您可以手动从下载的 GitHub 版本编译,或从 AUR 安装。默认情况下,引擎将在所有物理核心上编译。
手动
您可以从 GitHub 获取最新的 ZIP 压缩包版本。
设置
$ ./Setup.sh
生成项目文件
$ ./GenerateProjectFiles.sh
然后编译
$ make -j1
这将编译 Unreal Engine 和 Unreal Editor。
-jN
与大于 1 的 N 一起使用(例如 -j12
)。 这将导致构建失败,并显示 another instance of UnrealBuildTool is running
。 个别源文件的编译将并行运行,而与此标志无关,此标志会影响并行运行的子模块。从 AUR
Unreal Engine 5 在 AUR 中以 unreal-engineAUR 软件包提供。 您可能需要修复 UE5 的权限,以便在首次启动时预编译着色器
# chmod -R a+rwX /opt/unreal-engine/Engine
在 5.4 版本的情况下,安装大小约为 190 GiB,构建需要 340+ GiB,最终压缩后的软件包约为 45 GiB。 此 PKGBUILD 下载约 20 GiB 的源文件以及约 5 GiB 的依赖项。
由于存储库是私有的,您可以设置 SSH 密钥,以便使用您的 GitHub 账户下载源代码。
为了减小下载量,您可以将 .zip 版本用作 PKGBUILD 的源。 请注意,除非您首先按照上面概述的步骤操作,否则此链接将不起作用。
编译时间
对于普通高端消费级 CPU(i9/Ryzen9),编译将花费 4-5 个小时。 通过强制使用所有核心而不仅仅是默认编译的物理核心,可以稍微加快此速度。 此数字不包括首次启动后编译着色器的时间。
(Ryzen 9 6900HX 在下载依赖项后,使用所有 (8) 个物理核心编译 UE5.4.2 大约花费了 5 个小时。 之后的打包、解包和编译着色器又花费了一个小时,因此下载依赖项后总安装时间约为 6 个小时。)
故障排除
编译问题
如果编译失败,您应该尝试使用 Debug 配置文件构建 Editor[1]
$ make UE5Editor-Linux-Debug
但是,这可能会对性能产生一定影响。
另一种方法是使用不同的 clang 版本(例如 3.8 或 4.0)
运行时问题
如果编辑器无法从菜单启动,或者某些功能无法正常工作,请在控制台中启动它并检查输出中的错误。
$ /opt/unreal-engine/Engine/Binaries/Linux/UnrealEditor
C++ 代码项目问题
创建代码项目后,新项目将在文本编辑器中打开,而不是像应该的那样在 Unreal Editor 中打开。 重新启动编辑器后,新项目会显示出来并且可以打开,但是在第一次运行时,它需要大约半小时或更长时间才能编译,并且由于这在后台发生(没有 GUI),因此可能看起来好像什么都没做。 CPU 使用率应显示它仍在编译,您可能需要从控制台启动编辑器以查看进度。
如果首次尝试在 UE 中打开项目时,您收到有关编辑器模块过期的消息,则需要在 IDE 中构建 UE5Editor
目标。 请勿中止此构建,否则您将损坏 Unreal Editor,并且需要重新安装 unreal-engine
。 之后,它将打开并要求您重建项目类,之后您才能真正开始处理您的新项目。
请注意,完成这两个重建可能需要一个多小时,具体取决于您的系统规格。
引擎模块已过期,并且在引擎运行时无法编译。请通过 IDE 构建
首先,在项目中的源文件夹中,检查 {nameofproject}.Target.cs 和 {nameofproject}Editor.Target.cs 在 section base(Target) { ... } 中是否包含 "DefaultBuildSettings = BuildSettingsVersion.V2;"。 如果不起作用,请检查 Unreal Engine 源代码中的文件 Engine/Source/Developer/DesktopPlatform/Private/DesktopPlatformBase.cpp,查找行 `Arguments += " -Progress -NoEngineChanges -NoHotReloadFromIDE";` 并删除最后两个选项 : `Arguments += " -Progress";`
- 重新编译 Unreal Engine - 启动您的项目并接受重建
禁用工具提示
UE4 的鼠标悬停工具提示可能渲染速度非常慢。 可以通过添加到以下位置禁用它们
Engine/Config/ConsoleVariables.ini
Slate.AllowToolTips=0
KDE 下的随机冻结
在 KDE 文件搜索选项中禁用索引文件内容。
KDE 中渲染缓慢的工具提示
Epic 建议允许为 Unreal Editor 合成,默认情况下已停止合成。 来源: https://michaeljcole.github.io/wiki.unrealengine.com/Linux_Known_Issues/#KDE
多显示器配置中 Blueprint 的空白窗口
要修复大的空白窗口,请转到编辑首选项 > 用户界面 > 启用窗口动画并激活复选框
使用 AMDVLK 时出现关于阻止列表驱动程序的消息
Unreal Engine 官方不支持 AMDVLK,但是可以通过编辑/删除驱动程序阻止列表部分来规避此限制(不推荐)
Engine/Config/BaseHardware.ini
[GPU_AMD Linux]
SDL: wayland 不可用
当尝试使用 SDL_VIDEODRIVER=wayland 环境变量强制编辑器在 Wayland 上运行时,编辑器会向某些用户发出此错误。 此问题的原因未知,因此没有针对此问题的可靠解决方案。 设置 SDL_DYNAMIC_API=/usr/lib/libSDL2.so 实际上将允许您在 wayland 上运行编辑器,但是当您将鼠标悬停在某些 UI 元素上时,它将崩溃。
附加内容
入门内容
StarterContent 项目安装在 /opt/unreal-engine/Samples/StarterContent/StarterContent.uproject
中,您可以从启动器浏览到它。
市场应用
Linux 尚不提供带有 Unreal Marketplace 的启动器[2],因此无法从 Linux 安装 ContentExamples 项目之类的应用[3]。
可以使用 Windows(或 Mac)上的 启动器 下载市场应用,它们存储在 /ProgramData/Epic/EpicGamesLauncher/VaultCache
中。 ProgramData 默认情况下是隐藏的。
有几种本机下载 Marketplace 内容的选项
- 使用 lutris 和 Epic Games Store 安装程序,禁用沙箱后,您可以将内容直接添加到您的项目中
- 使用来自 flathub 或 eam-gitAUR 的 Epic Asset Manager,它允许您将资源下载到库中
- 有一个用 JS 编写的 UE4 Marketplace Downloader 的实现。