簡述
- 自動化工具(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