UE4 安装式编译

前言

  • 适用引擎版本: 4.13 及以上

参考文档

Installed Build

4.13 开始,虚幻4引入了 BuildGraph 之后,就可以自己通过编译源码发布引擎版本了,这个版本和在 UnrealEngineLauncher 中下载的引擎版本是等价的。如果有修改虚幻4源码的需求,那么非常适合通过这个来发布给美术和策划等非程序人员使用的版本

4.13 之前,想要完成同样的功能,则要复杂很多,可以参考这个 UE4RocketBuild

注意,Installed Build 的时候,引擎的安装目录中是不能有空格的,有的话会导致编译失败

调用编译脚本

执行以下命令行开始编译

"[EnginePath]/Engine/Engine/Build/BatchFiles/RunUAT.bat" BuildGraph -target="Make Installed Build Win64" -script="[EnginePath]/Engine/Build/InstalledEngineBuild.xml" -clean

详细命令行参数请参考 Installed Build Reference ,有两个比较重要的命令行

  • -clean: 表示重新编译
  • -set:HostPlatformOnly=true: 只编译当前宿主机的平台版本,否则会编译所有的平台 Win64, Win32, Mac, Linux, Android, IOS, TVOS, HTML5, PS4, XboxOne, Switch 的版本

编译成功后,就可以在 [EnginePath]/LocalBuilds/Engine 下找到最终的引擎版本

自定义输出目录

目前,Installed Build 还不支持自定义输出目录,当前的输出目录默认是 [EnginePath]/LocalBuilds/Engine 下,不过我们可以通过修改 InstalledEngineBuild.xml 文件来达到自定义输出目录的目的,具体如下

InstalledEngineBuild.xml 中增加一个命令行选项
<Option Name="InstalledDir" DefaultValue="$(RootDir)/LocalBuilds/Engine" Description="Directory for outputing the installed version engine" />
修改 70 行附近的三个平台输出目录变量

<Property Name="LocalInstalledDir" Value="$(RootDir)/LocalBuilds/Engine/Windows" />
<Property Name="LocalInstalledDirMac" Value="$(RootDir)/LocalBuilds/Engine/Mac" />
<Property Name="LocalInstalledDirLinux" Value="$(RootDir)/LocalBuilds/Engine/Linux" />

修改为

<Property Name="LocalInstalledDir" Value="$(InstalledDir)/Windows" />
<Property Name="LocalInstalledDirMac" Value="$(InstalledDir)/Mac" />
<Property Name="LocalInstalledDirLinux" Value="$(InstalledDir)/Linux" />
调用脚本时,增加一个 -set:InstalledDir=xxxx 的参数就可以修改输出目录位置了
"[EnginePath]/Engine/Engine/Build/BatchFiles/RunUAT.bat" BuildGraph -target="Make Installed Build Win64" -script="[EnginePath]/Engine/Build/InstalledEngineBuild.xml" -clean -set:InstalledDir=D:\InstalledDir