UE4 UAT命令行参数 - LiberalHD/Notes GitHub Wiki

BuildCookRun命令行参数

常用参数如下,详细参数见源文件 Engine\Source\Programs\AutomationTool\AutomationUtils\ProjectParams.cs,注意有些参数不能同时指定,具体见 ValidateAndLog 函数里的参数检查规则。Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs有一些全局参数定义

整体打包过程如下: Build -> Cook-> Stage -> Package -> Archive

基本参数

-project=%PROJECT_DIR%Stars.uproject:项目文件路径
-TargetPlatform(-Platform): 目标平台,定义在枚举 UnrealTargetPlatform 中,包含 Win32/Win64/Mac/XboxOne/PS4/IOS/Android/HTML5/Linux/AllDesktop/TVOS/Switch
-ServerTargetPlatform(-ServerPlatform): Dedicated Server 目标平台,定义同上
-clientconfig: 编译配置,包括shipping/develope/debug...
-CrashReporter: 编译CrashReporter
-Clean: 重新完整构建
-SignedPak: 使用加密的pak文件
-SignPak=C:\Encryption.keys 或者 -signpak=0x…..: 指定加密pak文件密钥内容或者密钥文件路径,密钥内容以 0x 开头,同时 -SignedPak 参数也生效
-RunAssetNativization: 将蓝图资产转成代码
-Pak: 是否将资源文件打包到pak中,但是并不是说不指定这个命令行就不用pak,有些平台只能用pak(比如Android打包成apk),不管有没有这个参数,具体见各个平台对Engine\Source\Programs\AutomationTool\AutomationUtils\Platform.cs类中RequiresPak函数的重载
-SkipPak: 使用上一次的pak文件,包含-Pak
-UTF8Output: log,控制台窗口等输出使用UTF8编码

Build相关参数

-Build: 执行编译过程
-SkipBuildClient: 不编译客户端
-SkipBuildEditor: 不编译编辑器
-NoXGE: 不使用并行编译
-ForceDebugInfo: 在非Debug版本中加入调试信息

Cook相关参数

-Cook: 使用Cooked资源
-SkipCook: 跳过cook阶段,使用上一次Cook好的资源,同时包含了 -Cook 参数
-IgnoreCookErrors: 忽略cook过程中的错误
-CookFlavor=Multi/ATC/DXT/ETC1/ETC2/PVRTC/ASTC: 指定Android Cook格式
-CookPartialGC: cook阶段磁盘空间不够不要清理所有资源
-CookInEditor: 使用editor进行cook而不是UAT
-CookOutputDir=C:\cooked: 指定cook结果保存目录,默认在Project/Saved/Cooked(使用UAT cook)和Project/Saved/EditorCooked(使用editor cook)
-AdditionalCookerOptions=xxx: 额外的传给cooker进程的命令行
-Compressed: 压缩
-EncryptIniFiles: 加密ini文件,只在指定了加密密钥和使用pak文件时候有效
-EncryptEverything: 加密所有的文件,只在指定了加密密钥和使用pak文件时候有效
-EncryptPakIndex: 加密pak索引,只在指定了加密密钥和使用pak文件时候有效
-UnversionedCookedContent: 不包含版本号
-IterativeCooking(-Iterate): 增量cook
-CookAll: cook content目录下的所有文件
-CookMapsOnly: 只cook关卡和关卡引用到的资源,只会在同时指定了-CookAll时生效
-MapsToCook=map1+map2+map3: 指定要cook的关卡,多个之间用+号连接
-SkipCookingEditorContent: 不cook引擎编辑器使用到的资源
-NumCookersToSpawn=n: 指定cooker进程的数量
-FastCook: 开启FastCook,如果项目支持的话

Stage相关参数

-Stage: 保存构建过程中的中间结果
-SkipStage: 不保存构造过程中的中间结果,使用上一次的结果,这个命令行同时包含了 -Stage
-StagingDirectory=C:\xxxx: 构建过程中中间结果保存目录,默认在ProjectPath\Saved\StagedBuilds
-NoDebugInfo: 不拷贝调试信息文件到Stage目录,也就是最终打出来的包中不包含调试信息
-NoCleanStage: 新构建不会清理之前StagingDirectory中的文件, 如果指定了-clean则一定会清理掉
-StageCommandline=xxxx: 放在UE4CommandLine.txt中的一系列命令行,打出来的包在运行时会从这个文件中读取命令行并执行

Package相关参数

-Package: 执行打包,Andorid->apk, iOS->ipa
-Distribution: 打的包是发布版本,在Android和iOS上会禁掉Debugable属性
-Prereqs: 将依赖打包到一起

Archive相关参数

-Archive: 是否将构建结果归档到指定目录
-ArchiveDirectory: 归档目录,默认为ProjectPath\ArchivedBuilds
-CreateAppBundle: 当目标平台是Mac时,指定这个参数可以归档成一个 .app 文件而不是一堆散文件

Deploy相关参数

-Deploy: 部署
-DeployFolder: 部署路径

Run相关参数

-Run: 构建完成后运行游戏
-CookOnTheFly: 使用服务器上的cook过的资源
-CookOnTheFlyStreaming: 同上,但是不缓存资源到本地
-FileServer: 使用UnrealFileServer上的cook过的资源数据
-DedicatedServer(-Server): 构建完成后运行ds服务器
-Client: 使用TargetType.Client对应的配置运行游戏
-NoClient: 只运行服务器
-LogWindow: 创建日志窗口
-Map=xxx: 指定游戏运行的关卡
-AdditionalServerMapParams=?param=value:服务器地图的额外参数
-NumClients=n: 客户端数量
-AddCmdline=/-ServerCommandline=/-ClientCommandline=xx: 额外的进程参数

UnrealPak命令行参数

UnrealPak -Test
UnrealPak -List
UnrealPak -Extract
UnrealPak -Create= [Options]
UnrealPak -Dest=
UnrealPak GenerateKeys=
UnrealPak GeneratePrimeTable= [-TableMax=]
UnrealPak -diff
UnrealPak -TestEncryption

基本参数

-blocksize=
-bitwindow=
-compress
-encrypt
-order=
-diff (requires 2 filenames first)
-enginedir (specify engine dir for when using ini encryption configs)
-projectdir (specify project dir for when using ini encryption configs)
-encryptionini (specify ini base name to gather encryption settings from)
-encryptindex (encrypt the pak file index, making it unusable in unrealpak without supplying the key)

⚠️ **GitHub.com Fallback** ⚠️