0
点赞
收藏
分享

微信扫一扫

UE4 如何用命令行来打包你的游戏


前文

在日常的开发中,我们总免不了要去提升和总结自己的开发方式,来不断提高开发效率。UE4 的编辑器虽然功能齐全,但往往有些操作是开发者想通过一键运行脚本的方式来解决的,例如编译和打包,不仅效率高而且还可以让团队中的开发者也参与到打包中来。那 UE4 支持该操作吗?答案必须是 YES 啊!

知识点

UE4 为开发者提供了 RunUAT 工具来实现自动化的编译和打包,该工具支持 Windows,Mac以及Linux。

UE4 如何用命令行来打包你的游戏_二叉树

先来看看它打包的命令行参数吧!

BuildCookRun 用于给整体项目执行打包,它的打包过程是: 1.先编译(build) 2.资源的烘焙(cook) 3.stage 4.package 5.archive

基本参数

  • CrashReporter: 编译CrashReporter
  • Clean: 重新完整构建
  • SignedPak: 使用加密的pak文件
  • SignPak: 指定加密pak文件密钥内容或者密钥文件路径
  • RunAssetNativization: 将蓝图资产转成代码
  • Pak: 是否将资源文件打包到pak中
  • 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: 指定cook结果保存目录,默认在Project/Saved/Cooked
  • AdditionalCookerOptions=xxx: 额外的传给cooker进程的命令行
  • Compressed: 压缩
  • EncryptIniFiles: 加密ini文件,只在指定了加密密钥和使用pak文件时候有效
  • EncryptEverything: 加密所有的文件
  • EncryptPakIndex: 加密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: 构建过程中中间结果保存目录,默认在 ProjectPath\Saved\StagedBuilds
  • NoDebugInfo: 不拷贝调试信息文件到 Stage 目录,最终打出来的包中不包含调试信息
  • NoCleanStage: 新构建不会清理之前 StagingDirectory 中的文件, 如果指定了-clean 则一定会清理掉
  • StageCommandline: 放在UE4CommandLine.txt中的一系列命令行,打出来的包在运行时会从这个文件中读取命令行并执行

Package相关参数

  • Package: 执行打包
  • Distribution: 打的包是发布版本
  • Prereqs: 将依赖打包到一起

Archive相关参数

  • Archive: 是否将构建结果归档到指定目录
  • ArchiveDirectory: 归档目录
  • CreateAppBundle: 当目标平台是Mac时,指定这个参数可以归档成一个 .app 文件

Deploy相关参数

  • Deploy: 部署
  • DeployFolder: 部署路径

BuildCookRun 命令打包

下面就提供几个打包的命令供大家参考

编译客户端

RunUAT BuildCookRun -project="full_project_path_and_project_name.uproject" -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -allmaps -build -stage -pak -archive -archivedirectory="Output Directory"

cook客户端

RunUAT BuildCookRun -project="full_project_path_and_project_name.uproject" -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -allmaps -NoCompile -stage -pak -archive -archivedirectory="Output Directory"

编译服务器

RunUAT BuildCookRun -project="full_project_path_and_project_name.uproject" -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -server -serverplatform=Win64 -noclient -build -stage -pak -archive -archivedirectory="Output Directory"

cook服务器

RunUAT BuildCookRun -project="full_project_path_and_project_name.uproject" -noP4 -platform=Win64 -clientconfig=Development -serverconfig=Development -cook -server -serverplatform=Win64 -noclient -NoCompile -stage -pak -archive -archivedirectory="Output Directory"

最后

打包效率的高低主要依赖于工程的规模以及打包机的配置,上面所说的服务器指的是ue4的专用服务器,需要在项目中配置 target,不然执行脚本的时候会找不到 -server 这个选项。在打包的时候 -clean 选项可以先不加到命令行中,因为这个选项会将工程清理后再重新编译打包,打包的时间会变得很久,如果遇到项目出包可不用此选项。

我是杰少,如果您觉的我写的不错,那请给我 点赞+评论+收藏 后再走哦!

往期文章:

  • ​​UE4:来为我们的角色制作一个血条吧​​
  • ​​使用 Google Breakpad 来助力解决程序崩溃​​
  • ​​UE4 多人游戏服务器探索​​
  • ​​使用虚幻引擎自动化工具实现自动化部署​​
  • ​​如何在 UE4 中制作一扇自动开启的大门​​
  • ​​如何在 UE4 中用代码去控制角色移动​​
  • ​​如何给 UE4 场景添加游戏角色​​
  • ​​UE4:Android 平台开发实践指南​​
  • ​​UE4 开发避坑指南(持续更新)​​
  • ​​新年开工啦,放个小烟花庆祝一下​​
  • ​​聊聊与苹果审核员的爱恨情仇(下)​​
  • ​​聊聊与苹果审核员的爱恨情仇(上)​​
  • ​​一名普通工具人的 2021 | 2021年终总结​​
  • ​​二叉树刷题总结:二叉搜索树的属性​​
  • ​​二叉树总结:二叉树的属性​​
  • ​​二叉树总结:二叉树的修改与构造​​
  • ​​StoreKit2 有这么香?嗯,我试过了,真香​​
  • ​​看完这篇文章,再也不怕面试官问我如何构造二叉树啦!​​
  • ​​那帮做游戏的又想让大家氪金,太坏了!​​
  • ​​手把手带你撸一个网易云音乐首页 | 适配篇​​
  • ​​手把手带你撸一个网易云音乐首页(三)​​
  • ​​手把手带你撸一个网易云音乐首页(二)​​
  • ​​手把手带你撸一个网易云音乐首页(一)​​
  • ​​代码要写注释吗?写你就输了​​
  • ​​Codable发布这么久我就不学,摸鱼爽歪歪,哎~就是玩儿​​
  • ​​iOS 优雅的处理网络数据,你真的会吗?不如看看这篇​​
  • ​​UICollectionView 自定义布局!看这篇就够了​​

请你喝杯 ☕️ 点赞 + 关注哦~

  1. 阅读完记得给我点个赞哦,有👍 有动力
  2. 关注公众号--- ​​HelloWorld杰少​​,第一时间推送新姿势

最后,创作不易,如果对大家有所帮助,希望大家点赞支持,有什么问题也可以在评论区里讨论😄~**

举报

相关推荐

0 条评论