【UE4】Windows 的幾種打包方式


簡述

  • 自動化工具(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
    
    image

在設備上啟動 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 可以執行高級編譯、烘焙、部署、打包及啟動選項

image

Project Launcher 打包

  • 圖示
    image
  • 執行步驟
    • 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
    

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM