构建操作:烘焙、打包、部署与运行

概述了可用于虚幻引擎4项目的构建操作(烘焙、打包、运行与部署)。

Windows
MacOS
Linux
See Also

在封装过程中使用的 自动化工具 (有时缩写为UAT,代表虚幻自动化工具(Unreal Automation Tool))用于通过一系列实用程序脚本来处理虚幻引擎4(UE4)项目。对于封装过程,自动化工具使用特定的命令 BuildCookRun。该指令能针对平台烘焙内容,将其封装成平台原生的文件格式用于分发,部署到设备并自动运行项目(若条件允许)。但打包项目并非只能直接使用UAT。你也可以使用文件菜单选择可用的平台,或使用命令行为特定平台烘焙并打包内容。

以下是封装流程的不同阶段,它们也是UAT中 BuildCookRun 命令的组成部分:

  • 构建(Build):该阶段将为所选择的平台编译可执行文件。

  • 烘培(Cook):该阶段通过在特殊模式下执行编辑器来转化内容。

  • 暂存(Stage):该阶段将可执行文件和内容复制到暂存区,它是开发目录以外的独立目录。

  • 打包(Package): 该阶段将项目打包成平台原生的分发格式。

  • 部署(Deploy):该阶段将构建版本部署到目标设备。

  • 运行(Run):该阶段在目标平台上启动已封装的项目。

关于预定义任务,请查阅BuildGraph脚本任务 参考页面。

封装方法

由于你可以采用多种不同的方式将内容部署到目标平台上以进行测试、调试或准备发布,你可以使用多种不同的方法来测试程序包:

  • 你可以使用 启动 来快速测试部分当前已加载的关卡并进行调试。

  • 你可以使用 项目启动程序 来使用默认配置文件或创建自定义的配置文件来针对项目的最新构建版本执行分析或调试等操作。

  • 或者可以将已封装的游戏部署到主机或移动设备等平台。

以下各部分将更加详细地介绍这些封装方法以及如何使用这些方法封装游戏。

"文件(File)"菜单

可使用 文件(File) 菜单来选择要针对其封装项目的平台。使用该选项封装项目时,它会将封装好的项目保存到你选择的文件夹,但是不会将它部署到设备上。

FilePackageMenu.png

在该菜单的 封装项目(Package Project) 下,你可以执行以下操作:

  • 为所选择的 平台 构建项目

  • 选择 开发(Development)发布(Shipping) 构建配置

  • 访问位于 项目设置(Project Settings) 中的"封装设置(Packaging Settings)"和"支持的平台(Support Platforms)"

启动

借助主工具栏中的 启动(Launch) 按钮,你可以构建和部署当前已加载的关卡来轻松快速地测试项目。

LaunchToolbar.png

使用 启动(Launch) 按钮旁的下拉箭头从可用设备列表中选择要将构建版本部署到的设备。

ToolbarLaunchButtonMenu.png

单击后,启动过程将自动转化必需的内容,构建代码,并在所选择的平台上启动。该构建版本使你能够快速测试仍在积极开发过程中的功能,而不必在每次需要进行测试时都编译和运行整个项目。

平台选择

如果未看到希望将构建版本部署到的平台或者在该菜单中要选择的平台显示为灰色,你可以检查以下内容:

  • 请确保已为该平台安装了正确的SDK(如需)并且确保它受你当前正在使用的引擎版本支持。通常,可在平台的 UEBuild.cs 文件(位于 Engine/Source/Programmings/UnrealBuiltTools/Platforms 下)中检查。例如,如果希望查看哪些 SDK 可以支持Android,可以在 UEBuildAndroid.cs 文件中查看。

  • 请确保已安装所有Visual Studio扩展程序或必需的文件。

  • 部分平台(例如,主机)要求使用外部工具来连接设备。请确保外部工具可正常工作并且可以检测到设备。

  • 使用UE4中的 设备管理器(Device Manager) 按照需要"声明"设备,这将确保它仅可用于本地计算机。

项目启动程序

项目启动程序(Project Launcher) 使你能够从单个位置甚至单个启动配置文件针对不同的平台进行部署。

部署的每个平台都具有其自己的默认启动配置文件(在主窗口中列出)。你也可以选择创建一个具有很多高级设置且使你能够按照特定方式构建项目的自定义启动配置文件。其中包括应用命令行参数,测试可下载内容(DLC)以及修补发行版等。

ProjectLauncher.png

有关更多信息,请参阅项目启动程序(Project Launcher) 参考页面。

自定义启动配置文件

从"项目启动程序(Project Launcher)",你可以创建可在所有平台或仅在你指定的平台上使用的 自定义启动配置文件。通过在配置文件中设置使用可用的构建操作转化、封装和部署内容的方式,你可以按照特定的方式构建内容。

要添加你自己的自定义启动配置文件,请单击窗口右侧的 +)号。

AddCustomProfile.png

单击之后,自定义启动配置文件将立即打开。请务必为它赋予一个 名称描述,便于以后快速识别它。

CustomLaunchProfile.png

命令行

自动化工具 使你能够使用命令行转化和封装游戏,而且由于所有构建操作都由UAT执行,如果提供有效的参数,可以使用 RunUAT.bat 文件直接在命令行中运行它。

RunUAT文件可以在 Engine/Build/BatchFiles 中找到。Windows操作系统使用 RunUAT.bat 文件,而Mac/Linux系统系统使用 **RunUAT.sh**文件。

可以使用以下命令行参数遵循 UE4Editor.exeUE4Editor-cmd.exe 文件执行基本转化:

UE4Editor.exe [GameName or .uproject] -run=cook -targetplatform=[Platform] -cookonthefly -iterate -map=[Map Name]

必须通过 -run=cook 指定commandlet,而且必须指定要针对其进行转化的平台。它将为指定的平台生成转化后的数据并将其保存到以下位置:

[UE4 Project]/Saved/Sandboxes/Cooked-[Platform]

手动编写命令行参数可能比较耗时而且非常容易造成意外错误。因此,我们建议你使用 自定义启动配置文件 来准确地为你的构建版本生成命令行。在用于烘焙和编译项目时,在自定义启动配置文件中输入的任何参数都将在 输出日志(Output Log) 窗口中自动生成并显示命令行。从 BuildCookRun 起的任何文本都可以作为命令行参数使用 RunUAT.bat 直接传递。

以下是从"项目启动程序(Project Launcher)"生成的输出以及需要手动编写以用于 RunUAT.bat 的等效命令行的示例:

  • "项目启动程序(Project Launcher)"日志窗口

    Automation.ParseCommandLine:Parsing command line:-ScriptsForProject=MyProject.uproject BuildCookRun -project=MyProject.uproject -clientconfig=Development
  • 手动编写

    [UE4Root]/Engine/Build/BatchFiles/RunUAT.bat BuildCookRun -project=MyProject.uproject -clientconfig=Development

有关更多信息,请参阅内容转化 页面。

内容转化

在虚幻引擎中,内容以受支持的特定格式针对平台存储(png格式用于存储纹理数据,WAV格式用于存储音频)。但是,该内容的格式可能是你的开发目标平台无法使用的格式。转化 过程将引擎使用的资源转换成可以在要部署到的平台上读取的资源。在某些情况下,转化的内容将被转换成仅可由目标平台读取的专有格式(例如,主机)。

可以通过使用 命令行 或通过使用 项目启动程序 及其编辑器界面为不同的平台转化内容。对于部分平台,必须首先转化所有内容,然后才能在设备上正常使用内容。你可能需要确认你针对其进行开发的目标平台是否属于这种情况。

为项目转化内容的方法有两种:按常规(By the book)动态(On the fly)

ContentCooking.png

按常规转化

按常规(By the book) 转化方法提前执行整个转化过程,以使构建版本能够一次性部署转化后的资源,而非在运行关卡时按需部署(如果使用转化服务器)。如果开发者不对单个资源进行迭代,或希望游戏能够全速运行而不必等待服务器交付必需的转化后内容,该选项非常有用。通常需要在性能测试和可玩性测试中使用该方法。

按常规执行转化时,无需对构建版本进行额外的设置。使用"项目启动程序(Project Launcher)"来 创建自定义启动配置文件 ,然后在 转化(Cook) 部分中使用下拉菜单来选择 按常规(By the book)

CookByTheBookSettings.png

如果要添加特定于游戏的命令行,可以展开 高级设置(Advanced Settings) 并向 附加转化程序选项(Additional Cooker Options) 中添加参数。

AdditionalCookerOptions.png

例如:

-nomcp

有关该转化方法及其可用设置的更多信息,请参阅 项目启动程序(Project Launcher) 参考页面。

动态转化

CookOnTheFlySettings.png

选择 动态(On the fly) 转化内容(COTF)时,会将转化推迟至游戏被部署到平台之后。这种情况下仅安装可执行文件和部分其他基本文件,并使用与 转化服务器 之间的网络通信在需要内容时按需请求。COTF使定期更改内容或仅探索游戏的一些片段的开发者能够更加快速地进行迭代。

要进行动态转化,首先需要在有完整项目可用的计算机上启动转化服务器。该计算机可以是本地计算机或执行转化的远程服务器。运行转化服务器的方法是:对 UE4Editor-cmd.exe 使用以下参数,在命令行模式下启动编辑器:

    UE4Editor-cmd.exe [FullAbsolutePathToProject.uproject]-run=cook -targetplatform=Windows -cookonthefly

在开发者的本地计算机上,访问"项目启动程序(Project Launcher)"中的自定义启动配置文件 ,然后在 部署(Deploy) 部分中,将部署方法设置为 文件服务器(File Server)。或者,可以使用 默认部署平台(Default Deploy Platform) 来选择单个平台或使用切换键来启用多个平台,以用于构建和部署构建版本。

Deploy_01.png

要使可执行文件知道从何处加载内容,需要让它知道运行转化服务器的计算机的IP地址。为此,你需要在客户端命令行中传递以下命令行参数,其中x.x.x.x代表主机的IP:

-filehostip=123.456.78.90

可在自定义启动配置文件的 启动(Launch) 部分下的 附加命令行参数(Additional Command Line Parameters) 文本框中指定该参数。如果不指定IP地址,构建版本将从现有本地文件加载,而且将不尝试连接到转化服务器。

FileHostIP.png

有关该转化方法及其可用设置的更多信息,请参阅 项目启动程序(Project Launcher) 参考页面。

部署构建版本

要从"项目启动程序(Project Launcher)"部署构建版本,你必须具有已转化和封装的项目。可通过多种方法将这种类型的构建版本部署到平台。请在 [自定义启动配置文件](#自定义启动配置文件 下的 部署(Deploy) 部分中设置希望用于部署构建版本的方式。

DeployBuildTypes.png

  • 文件服务器(File Server) 将转化内容并在运行时按照需要将内容部署到设备。

  • 复制到设备(Copy to Device) 会将整个转化后的构建版本复制到设备。

  • 不部署(Do Not Deploy) 将不会在转化和封装完成后将构建版本部署到任何设备。

  • 复制元库(Copy Repository) 将从指定的文件位置复制构建版本并将它部署到任何设备。

有关该部署方法及其可用设置的更多信息,请参阅 项目启动程序(Project Launcher) 参考页面。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback