简述

  • 自动化工具(Unreal Automation Tool,简称 UAT)
  • 自动化工具使用特定的命令 BuildCookRun
    • 封装流程包含

      • 构建(Build):该阶段将为所选择的平台编译可执行文件。
      • 烘培(Cook):该阶段通过在特殊模式下执行编辑器来转化内容。
      • 暂存(Stage):该阶段将可执行文件和内容复制到暂存区,它是开发目录以外的独立目录。
      • 打包(Package): 该阶段将项目打包成平台原生的分发格式。
      • 部署(Deploy):该阶段将构建版本部署到目标设备。
      • 运行(Run):该阶段在目标平台上启动已封装的项目。
  • 可以使用 RunUAT.bat 进行打包,路径为 Engine/Build/BatchFiles/RunUAT.bat
  • shipping 打包后的savegame路径为 C:\Users\[UserName]\AppData\Local\[ProjectName]\Saved\SaveGames

编辑器打包

  • File -> Package Project ->目标平台
  • 编译配置
    • DebugGame
    • Development
    • Shipping
    • 默认生成路径 [ProjectName]\WindowsNoEditor,可自定义路径
  • 更多设置 ProjectSettings -> Package
  • 日志 Running AutomationTool 部分
    Running AutomationTool
    UATHelper: Packaging (Windows (64-bit)): Parsing command line:
    -ScriptsForProject="C:/Users/Alice/Documents/Unreal Projects/tips/tips.uproject"
    BuildCookRun -nocompileeditor -installed -nop4
    -project="C:/Users/Alice/Documents/Unreal Projects/tips/tips.uproject"
    -cook -stage -archive
    -archivedirectory="C:/Users/Alice/Documents/Unreal Projects/tips"
    -package
    -ue4exe=C:\SoftwareInstallation\EpicGames\UE_4.26\Engine\Binaries\Win64\UE4Editor-Cmd.exe
    -compressed
    -ddc=InstalledDerivedDataBackendGraph
    -pak
    -prereqs
    -nodebuginfo
    -targetplatform=Win64
    -build
    -target=tips
    -clientconfig=Development
    -utf8output


在设备上启动 Launch

  • PIE 工具栏 Launch

    • 默认生成路径 [ProjectName]\Saved\StagedBuilds\WindowsNoEditor
    • 默认执行
      C:\Users\Alice\Documents\Unreal Projects\tips\Saved\StagedBuilds\WindowsNoEditor\tips\Binaries\Win64\tips.exe
      ../../../tips/tips.uproject /Game/CPPFunction/Pak/PakMap
      -stdout
      -abslog="C:\Users\Alice\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+SoftwareInstallation+EpicGames+UE_4.26\Client.log"
      -Messaging
      -Windowed
      -CrashForUAT
      -SessionId=E68DB8EB44C5712DE6D61BBE209F527E
      -SessionOwner="Alice"
      -SessionName="Launch On Device"
  • 可在 Project Launcher 自定义
  • 可使用UnrealFrontend [EnegineDir]\Engine\Binaries\Win64\UnrealFrontend.exe
    • UnrealFrontend 可以执行高级编译、烘焙、部署、打包及启动选项

Project Launcher 打包

  • 图示

  • 执行步骤
    • Running AutomationTool
    Parsing command line:
    -ScriptsForProject="C:/Users/Alice/Documents/Unreal Projects/tips/tips.uproject"
    BuildCookRun
    -project="C:/Users/Alice/Documents/Unreal Projects/tips/tips.uproject"
    -noP4
    -clientconfig=Development
    -serverconfig=Development
    -nocompile
    -nocompileeditor
    -installed
    -ue4exe=C:\SoftwareInstallation\EpicGames\UE_4.26\Engine\Binaries\Win64\UE4Editor-Cmd.exe
    -utf8output
    -platform=Win64
    -targetplatform=Win64
    -build
    -cook
    -map=
    -unversionedcookedcontent
    -pak
    -createreleaseversion=1.0.0
    -compressed
    -prereqs
    -stage
    -package
    -cmdline=" -Messaging"
    -addcmdline="-SessionId=9876DEE24FEBCC47A5E8C29B1BDD9E48 -SessionOwner='Alice' -SessionName='tip' "
    -archive
    -archivedirectory="C:/Users/Alice/Documents/Unreal Projects/tips/"
    • BUILD COMMAND STARTED
    Running:
    C:\SoftwareInstallation\EpicGames\UE_4.26\Engine\Binaries\DotNET\UnrealBuildTool.exe
    tips Win64 Development
    -Project="C:\Users\Alice\Documents\Unreal Projects\tips\tips.uproject"
    "C:\Users\Alice\Documents\Unreal Projects\tips\tips.uproject"
    -NoUBTMakefiles -remoteini="C:\Users\Alice\Documents\Unreal Projects\tips"
    -skipdeploy
    -Manifest="C:\Users\Alice\Documents\Unreal Projects\tips\Intermediate\Build\Manifest.xml"
    -NoHotReload
    -log="C:\Users\Alice\AppData\Roaming\Unreal Engine\AutomationTool\Logs\C+SoftwareInstallation+EpicGames+UE_4.26\UBT-tips-Win64-Development.txt"
    • COOK COMMAND STARTED
    Running:
    C:\SoftwareInstallation\EpicGames\UE_4.26\Engine\Binaries\Win64\UE4Editor-Cmd.exe
    "C:\Users\Alice\Documents\Unreal Projects\tips\tips.uproject"
    -run=Cook
    -TargetPlatform=WindowsNoEditor
    -fileopenlog
    -unversioned
    -createreleaseversion=1.0.0
    -abslog=C:\SoftwareInstallation\EpicGames\UE_4.26\Engine\Programs\AutomationTool\Saved\Cook-2021.05.24-16.21.35.txt -stdout
    -CrashForUAT
    -unattended
    -NoLogTimes
    -UTF8Output
    • STAGE COMMAND STARTED
    • PACKAGE COMMAND STARTED

RunUAT.bat 脚本打包

  • 通过上面打包日志输出 Running AutomationTool 部分,可以将替换 RunUAT.bat 执行脚本
  • 当项目过大时,或者服务器定期执行打包,可以使用 RunUAT.bat 进行打包
  • 脚本模板
    [EngineDir]\Engine\Build\BatchFiles\RunUAT.bat -ScriptsForProject="[ProjectDir]/ProjectName.uproject" BuildCookRun -nocompileeditor -installed -nop4 -project="[ProjectDir]/ProjectName.uproject" -cook -stage -archive -archivedirectory="[PackageDir]" -package -ue4exe=[EngineDir]\Engine\Binaries\Win64\UE4Editor-Cmd.exe -compressed -ddc=InstalledDerivedDataBackendGraph -pak -prereqs -nodebuginfo -targetplatform=Win64 -build -target=tips -clientconfig=Development -utf8output
  • 分行便于阅读脚本模板
    [EngineDir]\Engine\Build\BatchFiles\RunUAT.bat
    -ScriptsForProject="[ProjectDir]/ProjectName.uproject"
    BuildCookRun -nocompileeditor -installed -nop4
    -project="[ProjectDir]/ProjectName.uproject"
    -cook -stage -archive
    -archivedirectory="[PackageDir]"
    -package
    -ue4exe=[EngineDir]\Engine\Binaries\Win64\UE4Editor-Cmd.exe
    -compressed
    -ddc=InstalledDerivedDataBackendGraph
    -pak -prereqs -nodebuginfo -targetplatform=Win64 -build
    -target=tips -clientconfig=Development -utf8output
  • 实践
     C:\SoftwareInstallation\EpicGames\UE_4.26\Engine\Build\BatchFiles\RunUAT.bat -ScriptsForProject="C:/Users/Alice/Documents/Unreal Projects/tips/tips.uproject" BuildCookRun -nocompileeditor -installed -nop4 -project="C:/Users/Alice/Documents/Unreal Projects/tips/tips.uproject" -cook -stage -archive -archivedirectory="C:/Users/Alice/Documents/Unreal Projects/tips" -package -ue4exe=C:\SoftwareInstallation\EpicGames\UE_4.26\Engine\Binaries\Win64\UE4Editor-Cmd.exe -compressed -ddc=InstalledDerivedDataBackendGraph -pak -prereqs -nodebuginfo -targetplatform=Win64 -build -target=tips -clientconfig=Development -utf8output

参考

【UE4】Windows 的几种打包方式的更多相关文章

  1. maven的两种打包方式

    1.maven目前在web上面的使用方式很普遍,而打包的方式也存在很多方式 2.因为涉及一个项目调用另外一个项目的包,并将另外一个项目打成jar的形式便于管理 3.maven打包第一种方式: 将项目检 ...

  2. Storm 学习之路(六)—— Storm项目三种打包方式对比分析

    一.简介 在将Storm Topology提交到服务器集群运行时,需要先将项目进行打包.本文主要对比分析各种打包方式,并将打包过程中需要注意的事项进行说明.主要打包方式有以下三种: 第一种:不加任何插 ...

  3. Storm 系列(六)—— Storm 项目三种打包方式对比分析

    一.简介 在将 Storm Topology 提交到服务器集群运行时,需要先将项目进行打包.本文主要对比分析各种打包方式,并将打包过程中需要注意的事项进行说明.主要打包方式有以下三种: 第一种:不加任 ...

  4. 关于springboot项目的jar和war两种打包方式部署的区别

    关于springboot项目的jar和war两种打包方式部署的区别 关于springboot项目的jar和war两种打包方式部署的区别? https://bbs.csdn.net/topics/392 ...

  5. Springboot中IDE支持两种打包方式,即jar包和war包

    Springboot中IDE支持两种打包方式,即jar包和war包 打包之前修改pom.xml中的packaging节点,改为jar或者war    在项目的根目录执行maven 命令clean pa ...

  6. IDEA中项目的两种打包方式

    本文主要介绍在IDEA中怎么打包,及可以用哪种方式打包. 若是有指正或补充的,欢迎留言~  ٩(●̮̃•)۶ 接下来进入正题: IDEA中打包需要先进行配置,so,我们先打开<abbr titl ...

  7. Maven三种打包方式jar war pom

    1.pom工程 用在父级工程或聚合工程中.用来做jar包的版本控制.必须指明这个聚合工程的打包方式为pom 2.war工程 将会打包成war,发布在服务器上的工程.如网站或服务.在SpringBoot ...

  8. Android几种常见的多渠道(批量)打包方式介绍

    多渠道打包,主要是为了统计不同的渠道上包的下载数量,渠道越多,我们需要打的包数量越多,这个时候,我们没法去使用单纯的手动打包去一个一个的生成不同的渠道包,我们需要更高效的打包方式. 声明渠道方式一: ...

  9. 可运行jar包的几种打包/部署方式

    java项目开发中,最终生成的jar,大概可分为二类,一类是一些通用的工具类(不包含main入口方法),另一类是可直接运行的jar包(有main入口方法),下面主要讲的是后者,要让一个jar文件可直接 ...

随机推荐

  1. 数据导出生成word附件使用POI的XWPFTemplate对象

    比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel.Jakarta POI 是一套用于访问微软格式文档的Java API.Jakarta POI有很多组 ...

  2. python库--pandas--部分实例

    >>> pd.pivot( index=np.array(['one', 'one', 'one', 'two', 'two', 'two']), columns=np.array( ...

  3. 如何高效掌控K8s资源变化?K8s Informer实现机制浅析

    作者 王成,腾讯云研发工程师,Kubernetes contributor,从事数据库产品容器化.资源管控等工作,关注 Kubernetes.Go.云原生领域. 概述 进入 K8s 的世界,会发现有很 ...

  4. Vue项目-初始化之 vue-cli

    1.初始化项目 a.Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,提供: 通过 @vue/cli 搭建交互式的项目脚手架. 通过 @vue/cli + @vue/cli-servi ...

  5. Maven项目之间关系介绍

    Maven项目之间的关系 依赖关系 单纯的项目A中需要项目B中的资源,将项目B打成Jar包被A依赖,此时项目A直接调用项目B中资源即可. 项目A和项目B此时形成最基本的依赖关系. 继承关系 需要场景: ...

  6. Javascript 判断 iframe 中的变量是否为对象

    Javascript 判断 iframe 中的变量是否为对象 前言 公司之前的项目中,为了实现模块化,在 web 后端使用了 iframe 来组织框架和页面.由于当时没有很好地规划,iframe 子页 ...

  7. RMQ区间最值查询

    RMQ区间最值查询 概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A, 回答若干询问RMQ(A,i,j)(i,j<= ...

  8. PTA——c++2017Final 圆周率山

    为了参加学校的社团风采展,怡山小学数学组的同学们决定画一座圆周率山,以宣传圆周率. 已知圆周率为:3. 1415926535 8979323846 2643383279 5028841971 6939 ...

  9. 【简单数据结构】链表--洛谷P1160

    题目描述 一个学校里老师要将班上NN个同学排成一列,同学被编号为1\sim N1∼N,他采取如下的方法: 先将11号同学安排进队列,这时队列中只有他一个人: 2-N2−N号同学依次入列,编号为i的同学 ...

  10. Jmeter系列(18)- 八大组件

    说明 取样器(Sampler):不与其他元件发⽣交互的作⽤的元件 逻辑控制器(Logic Controller):只对其⼦节点的sampler有效,⽽其他元件需要与sampler等元件交互 前置处理器 ...