本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Epic Unreal 引擎
Unreal Engine 是一種即時 3D 建立工具,適用於擬真視覺效果和沉浸式體驗。使用提交者、Conda 套件和轉接器的 Deadline Cloud 支援 Unreal Engine,以提高渲染效能。本指南提供step-by-step說明,透過跨多部機器分配轉譯任務,更快速地轉譯您的 Movie Render 佇列專案。
支援概觀
下列元件支援 Unreal Engine:
-
提交者:整合式提交者外掛程式,用於透過自動場景和資產偵測從 Unreal Engine 直接提交任務。
-
Conda 套件:在服務受管機群上自動安裝的截止日期 Cloud。
-
轉接器:中介軟體,可透過黏性工作階段和其他監控有效率地轉譯。
-
跨平台相容性:僅限 Windows 的提交者和工作者支援。
-
電影渲染佇列整合:支援 Unreal 的電影渲染佇列系統。
Unreal Engine 版本相容性
下表顯示 Unreal Engine 版本的目前支援層級:
| 主要版本 | 提交者支援 | Conda 支援 |
|---|---|---|
| 5.4 | Windows | Windows |
| 5.5 | Windows | Windows |
| 5.6 | Windows | Windows |
| 5.7 | Windows | Windows |
截止日期雲端 Conda 頻道
下表列出適用於 Unreal Engine 的所有 deadline-cloud conda 套件,可供 Conda 頻道中的服務受管機群使用:
| 作業系統 | 套件 | 版本 |
|---|---|---|
| Windows | unreal-engine | 5.4 |
| Windows | unreal-engine | 5.5 |
| Windows | unreal-engine | 5.6 |
| Windows | unreal-engine | 5.7 |
| Windows | unreal-engine-openjd |
開始使用
先決條件
在安裝 Unreal Engine 提交者之前,請確定您有下列項目:
-
Windows 工作站 (Windows 10 或更新版本)
-
支援的 Unreal Engine 版本已安裝
-
已安裝截止日期雲端監視器 (在此處下載)
-
使用具備 GPU 功能的 Windows 服務受管機群或具有 Unreal Engine、Unreal Engine 轉接器和授權設定的客戶受管機群存取截止日期雲端陣列
安裝提交者
Unreal Engine 提交者將 Deadline Cloud 功能新增為 Unreal Engine 的外掛程式,可讓您將 Movie Render 佇列任務直接提交至 Deadline Cloud 進行轉譯。
選擇您的分支
為您的部署選取適當的分支:
| 分支 | 穩定性 | 使用案例 | 建議用於 |
|---|---|---|---|
| 版本 | 穩定 | 生產 | 大多數使用者 |
| 主線 | 最新功能 | 開發和測試 | 進階使用者 |
提示
使用生產環境的發行分支來確保穩定性。
建立新的 Windows Amazon EC2 執行個體以在 上安裝 Unreal (選用)
如果您要在全新的 Windows Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上設定 做為提交者,則具有 200 GB 儲存空間的 g5.2xlarge 執行個體是合理的下限:
使用有效的執行個體設定檔啟動 Amazon EC2 執行個體。這是下載 NVIDIA GRID 驅動程式的必要項目,如下所示。
-
下載 Epic Installer 並安裝支援的 Unreal 版本 (5.4 - 5.7)。
使用 DirectX 11 外掛程式執行時,UE 5.5 有已知的當機錯誤 (請參閱 UE 問題 #UE-276282)。如果您需要 UE 5.5 上的 DirectX 支援,請使用 DirectX 12 或更新版本。
NVIDIA GRID 驅動程式 - 遵循 Windows 安裝指示。
Windows 長路徑
下列許多步驟可能會建立超過預設 Windows 路徑長度上限的檔案。在 Windows 機器上建置和安裝 Deadline Cloud for Unreal Engine 提交者或轉接器之前,我們建議您啟用 Windows 長路徑支援。若要這樣做,請遵循最大檔案路徑限制
工作者代理程式上也有未設定為支援 Windows 長路徑的相依性所造成的開啟問題
安裝建置工具
Unreal 提交者外掛程式目前必須在本機編譯。
使用 Visual Studio 安裝程式安裝 Visual Studio
。 檢查 Epic 相容性資料表,確認您的 Visual Studio 和建置工具版本與您的 Unreal 版本相容
。 在個別元件下,確保選取的 MSVC 建置工具版本 (預設為「最新」) 符合資料表中建議的版本。即使相容性指引可能建議「或更新版本」版本,使用比「建議」所列版本更新的版本時,有時會發生建置錯誤。
在個別元件下,選取最近的 .NET Framework SDK (已驗證 4.6.1 和 4.8.1)。
在工作負載下,選取具有 C++ 的桌面開發。
安裝截止日期雲端監視器
Deadline Cloud Monitor 用於管理將任務提交至 Deadline Cloud 的登入資料,並監控任務的狀態。
登入。
環境設定
(如果尚未安裝) 為所有使用者安裝最新版本的 Python (使用 3.12 驗證)。
-
請確定您的環境變數設定正確。在系統環境變數中,PATH 必須包含:
Python 安裝的路徑 (例如,
C:\Program Files\Python312)。Python Scripts 資料夾的路徑 (例如,
C:\Program Files\Python312\scripts)。Unreal 二進位檔的路徑 (例如
C:\Program Files\Epic Games\UE_5.5\Engine\Binaries\Win64)。
截止日期 雲端軟體安裝
deadline-cloud-for-unreal-engine 從發行分支或主線複製或下載,取決於您想要的是最新測試的發行版本或所有最近的遞交。
git clone https://github.com/aws-deadline/deadline-cloud-for-unreal-engine.git cd deadline-cloud-for-unreal-engine git switch release
選用 - 使用指令碼建置和安裝外掛程式
中的協助程式指令碼可scripts/build_plugin.py選擇性地自動執行接下來的兩個步驟。它會嘗試尋找最新版本的 Unreal、建置您的外掛程式和 Python 相依性,並將它們安裝在正確的位置。您可以覆寫設定,例如 Unreal 版本。若要查看完整的說明清單,請執行:
python scripts/build_plugin.py -h
若要使用最新的 Unreal Engine 安裝,建置並安裝目前的 複本deadline-cloud-for-unreal-engine做為提交者,請執行:
python scripts/build_plugin.py --install
如果您已成功使用此指令碼安裝 ,您可以跳至 建立機群。
建置 外掛程式
根據安裝 Unreal 所在的位置和安裝 的位置,調整以下前兩個路徑deadline-cloud-for-unreal-engine。
從 Unreal Install Batchfiles 資料夾 ( package 參數可以是任何新目錄,但您希望UnrealDeadlineCloudService稍後呼叫它):
cd C:\Program Files\Epic Games\UE_5.5\Engine\Build\BatchFiles runuat.bat BuildPlugin -plugin="C:\deadline\deadline-cloud-for-unreal-engine\src\unreal_plugin\UnrealDeadlineCloudService.uplugin" -package="C:\UnrealDeadlineCloudService"
將上方的「套件」資料夾複製到 Unreal 安裝的外掛程式資料夾 (例如,C:\Program Files\Epic Games\UE_5.5\Engine\Plugins\UnrealDeadlineCloudService)。
Python 相依性
有 4 種方式可以安裝所需的 Python 相依性。
1. 如果您已從上述版本分支建置並安裝外掛程式,您可以從 pip 安裝 。使用以下安裝命令,調整 Unreal 安裝的路徑:
"C:\Program Files\Epic Games\UE_5.5\Engine\Binaries\ThirdParty\Python3\Win64\python" -m pip install deadline-cloud-for-unreal-engine --target "C:\Program Files\Epic Games\UE_5.5\Engine\Plugins\UnrealDeadlineCloudService\Content\Python\libraries"
2. 或者,在您的 .uplugin 檔案中 (在上述步驟中,這將存在於 C:\Program Files\Epic Games\UE_5.5\Engine\Plugins\UnrealDeadlineCloudService\UnrealDeadlineCloudService.uplugin),您可以新增符合 GitHub/PyPI deadline-cloud-for-unreal-engine中最新版本 的PythonRequirements區段,例如:
"PythonRequirements": [ { "Platform": "All", "Requirements": [ "deadline-cloud-for-unreal-engine>=0.5.0" ] } ]
您可能想要在 Unreal 的 Python 設定中停用「嚴格雜湊」功能,或為想要使用的特定程式庫和相依版本新增雜湊設定。
3. 如果您要從主線提取,您可能有尚未發佈至 PyPI 的 Python 相依性 - 您將需要建置和安裝本機複本,這些複本可以使用雜湊完成。需要變更.whl檔案,以反映由雜湊組建輸出的版本:
pip install hatch hatch build "C:\Program Files\Epic Games\UE_5.5\Engine\Binaries\ThirdParty\Python3\Win64\python" -m pip install dist\deadline_cloud_for_unreal_engine-0.2.2.post21-py3-none-any.whl --target "C:\Program Files\Epic Games\UE_5.5\Engine\Plugins\UnrealDeadlineCloudService\Content\Python\libraries"
4. 最後,提交者安裝程式可以安裝 Python 相依性。這些可能已過時,且您的上述程式碼來自發行版本或主要分支,目前不應偏好此方法。
從截止日期雲端 AWS 主控台的下載索引標籤或工作站設定 → 下載下的截止日期雲端監視器中下載提交者安裝程式。
為所有使用者執行安裝程式。預設安裝位置沒問題。
啟用 Unreal Engine 外掛程式。
請確定 Unreal Engine 外掛程式安裝路徑符合您的外掛程式複製到其中的位置 (尤其請確定您的 Unreal 版本相符)。
更新通知
Unreal Editor 啟動時,提交者外掛程式會自動檢查 GitHub 上是否有較新的版本。如果有可用的更新,對話方塊會提示您造訪發行頁面。
若要停用更新通知,請在截止日期雲端設定面板 (編輯 > 專案設定 > 外掛程式 > 截止日期雲端) 的一般設定下取消核取顯示提交者更新通知。
或者,您可以使用 CLI:
deadline config set settings.submitter_update_notification false
若要重新啟用:
deadline config set settings.submitter_update_notification true
建立機群
如果您已經有 Windows 機群,而且不需要設定新的機群,您可以跳到 提交測試轉譯。
建立服務受管機群 (SMF)
如果您還沒有 SMF,請遵循服務受管機群使用者指南來建立 SMF。在服務受管機群 (SMFs) 上,Unreal Engine 和轉接器會使用具有預設佇列環境的 deadline-cloud conda 通道自動提供。您已準備好開始轉譯。繼續提交測試轉譯以下操作以提交測試轉譯任務。
建立客戶受管機群 (CMF)
-
如果您還沒有 CMF,請遵循建立客戶受管機群來建立 CMF。
警告
將 CMF 與佇列建立關聯時,如果您不使用預設 conda 佇列環境,請將其移除。這將防止使用 conda 環境,並意外使用提交至 CMF 之任務的預設 SMF 特定變數。如果您在 CMF 中使用 conda,請記得在任務提交期間更新參數定義覆寫中的
CondaPackages和CondaChannels變數。 遵循工作者主機設定和組態來設定工作者主機。
遵循管理對 Windows 任務使用者秘密的存取,為您的 CMF 工作者設定 Windows 任務使用者秘密。
遵循安裝和設定任務所需的軟體,以安裝執行任務所需的軟體。
遵循 設定客戶受管機群 (CMF) 工作者 來設定您的工作者節點,以執行 Unreal Engine 任務。
提交測試轉譯
此範例使用 Unreal Marketplace 中的 Meerkat 示範:
啟動 Epic Games Launcher。
從範例索引標籤安裝 Meerkat 示範。
從 Meerkat 示範建立專案,然後將其開啟。
在編輯功能表中,選取外掛程式,搜尋並啟用 UnrealDeadlineCloudService。
如果您是第一次啟用外掛程式,請重新啟動 Unreal。
-
在編輯 > 專案設定下,搜尋電影渲染管道區段。
針對預設遠端執行器,選取 MoviePipelineDeadlineCloudRemoteExecutor。
針對預設執行器任務,選取 MoviePipelineDeadlineCloudExecutorJob。
在預設任務設定類別下,選擇新增圖示,然後新增 DeadlineCloudRenderStepSetting。
-
搜尋截止日期雲端設定並驗證身分驗證:
確保您的狀態顯示 "AUTHENTICATED",而截止日期雲端 API 顯示 "AUTHORIZED"。
如果未顯示,請先嘗試使用登入按鈕。如果無法運作,請開啟截止日期雲端監視器,並確保您已登入。
-
在截止日期雲端工作站組態區段中:
在全域設定下,確保您的 AWS 設定檔正確設定為您的截止日期雲端監控設定檔。
在設定檔下,確保您的預設陣列設定為您的陣列。
在陣列下,確保您的預設佇列設定為與您上面設定之機群相關聯的佇列。
退出專案設定視窗。
-
選擇 Windows、電影、電影渲染佇列。
選擇 + 轉譯,然後選取 Main_SEQ。
-
在設定欄中選擇 UnsavedConfig。
在快顯視窗中,您應該會看到左側的截止日期雲端設定。然後可以關閉此視窗。
-
在對話方塊右側,設定任務設定:
-
在預設覆寫下 (您可能需要擴大此對話方塊):
-
展開任務共用設定:
將 Name (名稱) 設定為
Unreal Test Job。將重試次數上限設定為 2。
-
展開任務附件:
在輸入檔案下,選取顯示自動偵測。
確認自動偵測的檔案清單已正確填入。
-
-
在任務範本覆寫下:
-
如果您使用的版本與 5.6 不同,請在 CondaPackages 中更新 Unreal Engine 版本。
Unreal Engine 版本自動偵測即將在未來版本推出。
-
-
選擇轉譯 (遠端)。
您可以前往截止日期雲端監控,並觀看任務進度。
設定客戶受管機群 (CMF) 工作者
本節將逐步引導您設定 Amazon EC2 執行個體做為 Deadline Cloud with Unreal Engine 的 CMF 工作者。
概觀
以下是 CMF 和 SMF 之間的主要差異:
CMF:在工作者主機上手動安裝 Unreal Engine 和轉接器。
SMF:透過
deadline-cloudconda 頻道自動可用性。
選擇您的分支
為您的部署選取適當的分支:
| 分支 | 穩定性 | 使用案例 |
|---|---|---|
| 版本 | 穩定 | 生產部署 |
| 主線 | 最新 | 開發和測試 |
重要
確保您的工作者版本與您的提交者版本相符,以避免相容性問題。
Amazon EC2 執行個體設定
以下是建議的執行個體組態:
執行個體類型:g5.2xlarge 或更高版本。
儲存:最低 200 GB。
作業系統:Windows Server 2019/2022。
軟體安裝
1。安裝 Unreal Engine:
下載 Epic Games Launcher。
-
安裝 Unreal Engine 5.4 或更高版本。
注意
最終雲端相容性需要 Unreal Engine 5.4+。
2. 安裝 NVIDIA GRID 驅動程式:
Amazon EC2 執行個體上的 GPU 加速轉譯需要。
安裝建置工具
Unreal 外掛程式目前必須在本機編譯。
使用 Visual Studio 安裝程式安裝 Visual Studio
。 檢查 Epic 相容性資料表,確認您的 Visual Studio 和建置工具版本與您的 Unreal 版本相容
。 在個別元件下,確保選取的 MSVC 建置工具版本 (預設為「最新」) 符合資料表中建議的版本。
在個別元件下,選取最近的 .NET Framework SDK (已驗證 4.6.1 和 4.8.1)。
在工作負載下,選取具有 C++ 的桌面開發。
截止日期 雲端軟體安裝
deadline-cloud-for-unreal-engine 從發行分支或主線複製或下載。確保您的程式庫工作者版本與提交者所使用的版本相容。
git clone https://github.com/aws-deadline/deadline-cloud-for-unreal-engine.git cd deadline-cloud-for-unreal-engine git switch release
選用 - 使用指令碼建置和安裝外掛程式和相依性:
中存在一個協助程式指令碼scripts/build_plugin.py,可以自動化剩餘的安裝步驟。它會嘗試尋找最新版本的 Unreal、建置您的外掛程式和 python 相依性,並將它們安裝在正確的位置。例如要使用的 Unreal 版本之類的設定可以覆寫。若要查看完整的說明清單,請執行:
python scripts/build_plugin.py -h
若要使用最新的 Unreal Engine 安裝,以工作者deadline-cloud-for-unreal-engine身分建置和安裝目前的 複本,請執行:
python scripts/build_plugin.py --install --worker
透過執行下列動作來設定截止日期雲端工作者代理程式:
install-deadline-worker ^ --farm-id FARM_ID ^ --fleet-id FLEET_ID ^ --region REGION ^ --allow-shutdown
如果您已使用此指令碼安裝 並成功設定工作者代理程式,您可以跳至 啟動截止日期雲端工作者代理程式服務。
python -m pip install deadline-cloud-worker-agent
必須安裝正確的轉接器版本,視使用的提交者版本而定。如果您使用 GitHub 中發行分支的提交者版本,您可以直接使用 pip 安裝 :
python -m pip install deadline-cloud-for-unreal-engine
如果您使用的是主線或自訂的開發中版本提交者,為了避免相容性問題,我們建議您從相同版本的程式碼建置和安裝,或從提交者建置的 .whl 檔案傳輸:
pip install hatch hatch build python -m pip install dist\my-built-wheel.whl
建置外掛程式
根據安裝 Unreal 所在的位置和安裝 的位置,調整以下前兩個路徑deadline-cloud-for-unreal-engine。
從 Unreal Install Batchfiles 資料夾 ( package 參數可以是任何新目錄,但您希望UnrealDeadlineCloudService稍後呼叫它):
cd C:\Program Files\Epic Games\UE_5.5\Engine\Build\BatchFiles runuat.bat BuildPlugin -plugin="C:\deadline\deadline-cloud-for-unreal-engine\src\unreal_plugin\UnrealDeadlineCloudService.uplugin" -package="C:\UnrealDeadlineCloudService"
將上方的「套件」資料夾複製到 Unreal 安裝的外掛程式資料夾 (例如,C:\Program Files\Epic Games\UE_5.5\Engine\Plugins\UnrealDeadlineCloudService)。
pywin32
Unreal 的 Python 版本將需要 pywin32。使用 Unreal 的第三方 Python 安裝複本進行 Pip 安裝:
"C:\Program Files\Epic Games\UE_5.5\Engine\Binaries\ThirdParty\Python3\Win64\python" -m pip install pywin32
啟動截止日期雲端工作者代理程式服務
在您的 CMF 工作者執行個體上:
開啟任務管理員。
選擇右側的服務索引標籤。
-
尋找 DeadlineWorker。
如果您沒有看到它,您可能會錯過 CMF 主機設定步驟中的步驟 (
install-deadline-worker特別是)。
如果服務的狀態目前不是「執行中」,請在服務上按一下滑鼠右鍵,然後選取開始。
-
如果您的 DeadlineWorker 服務未啟動,請檢查下列位置的工作者代理程式啟動日誌:
C:\ProgramData\Amazon\Deadline\Logs\worker-agent.logC:\ProgramData\Amazon\Deadline\Logs\queue-<queueid>\session-<sessionid>.log
Perforce 登入資料管理
本節涵蓋將 Perforce 與截止日期雲端工作者整合的安全登入資料管理。
概觀
有數種方法可以為截止日期雲端工作者設定 Perforce 登入資料。每個方法都有不同的安全性影響和使用案例:
| Method | 安全層級 | 部署支援 | 建議用途 |
|---|---|---|---|
| AWS Secrets Manager (Secrets Manager) | 高 | SMF + CMF | 生產 (建議) |
| 任務環境變數 | 低 | SMF + CMF | 僅限開發和測試 |
| 佇列環境變數 | 低 | SMF + CMF | 僅限開發和測試 |
| Windows 登錄檔 | 中 | 僅限 CMF | 舊版 CMF 設定 |
| 預先設定的管理員使用者 | 中 | 僅限 CMF | 簡化的 CMF 設定 |
重要
將 Secrets Manager 用於生產環境。它提供具有稽核線索的集中式加密登入資料儲存,並適用於 SMF 和 CMF 部署。
P4 登入資料基本概念
若要擷取連線設定,包括 Perforce 伺服器 URL 和連接埠、使用者名稱和密碼,Perforce 遵循下列優先順序:
Perforce (P4) 的任何架構中的連線參數 (
p4python.P4例如)。使用者/系統環境變數:
P4PORT、P4USER、P4CLIENT、P4PASSWD。Windows 登錄檔:
HKEY_LOCAL_MACHINE\SOFTWARE\Perforce\Environment(全系統設定) 或HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment(使用者特定設定)。
使用這些優先順序時,如果您有下列設定:
連線參數
password為password.from.connection環境變數
%P4PORT%為ssl:perforce.from.env:1666Windows 登錄檔
HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment:P4PORT為ssl:perforce.from.registry:1666Windows 登錄檔
HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment:P4USER為user.from.registryWindows 登錄檔
HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment:P4PASSWD為password.from.registry
產生的 Perforce 連線將是:
Port = ssl:perforce.from.env:1666 User = user.from.registry Password = password.from.connection
Secrets Manager (建議)
Secrets Manager 為 CMF 和 SMF 部署提供最安全且可擴展的解決方案。
此方法提供下列優勢:
集中式安全:將所有 P4 登入資料存放在一個加密位置。
沒有登入資料公開:登入資料永遠不會出現在任務組態或日誌中。
自動輪換:支援登入資料輪換,無需重新設定任務。
稽核追蹤:追蹤登入資料存取和用量。
全域支援:適用於 CMF 和 SMF 部署。
日誌修訂:在任務日誌中自動修訂連線憑證。
步驟 1:在 Secrets Manager 中建立秘密
建立包含 Perforce 連線參數的秘密。
必要的鍵/值對:
P4PORT- Perforce 伺服器 URL 和連接埠。P4USER- Perforce 使用者名稱。P4PASSWD- Perforce 密碼。
重要
金鑰名稱必須與 P4 連線參數完全相符,才能使用 deadline-cloud-for-unreal-engine。
範例秘密:
{ "P4PORT": "ssl:your-perforce-server.com:1666", "P4USER": "your-perforce-username", "P4PASSWD": "your-perforce-password" }
若要建立秘密:
開啟 Secrets Manager 主控台。
選擇「儲存新的秘密」。
選取「其他類型的秘密」。
輸入上面的鍵/值對。
為您的秘密命名 (例如
deadline-cloud-p4-credentials)。完成建立程序。
步驟 2:授予工作者存取秘密的權限
工作者需要存取秘密的secretsmanager:GetSecretValue許可。這遵循與管理 Windows 任務使用者秘密相同的模式。
若要授予存取權:
開啟 Secrets Manager 主控台並導覽至您的秘密。
-
在「資源許可」區段中,新增此政策:
{ "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "QUEUE_ROLE_ARN" }, "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "*" } ] } QUEUE_ROLE_ARN將 取代為您實際的佇列角色 ARN。儲存政策。
注意
儲存秘密名稱 - 設定 P4 轉譯任務時需要它。如需後續步驟建立 Perforce 轉譯任務,請參閱 。
任務環境變數
警告
此方法不建議用於生產,因為它會在任務組態和日誌中公開登入資料。將 Secrets Manager 用於生產環境。
您可以在工作區建立發生的任務環境中傳遞連線憑證,例如在 p4_sync_smf_environment
name: P4Credentials variables: P4PORT: ssl:my-perforce.com:1666 P4USER: j.doe P4PASSWD: MyVeRyS3cretP4ssW0rd
此方法具有下列安全風險:
登入資料會顯示在任務組態中。
密碼可能會出現在日誌中 (未自動修訂)。
無集中式憑證管理。
難以輪換登入資料。
佇列環境變數
警告
此方法不建議用於生產,因為它會將登入資料存放在佇列組態中。使用 Secrets Manager 進行安全登入資料管理。
根據截止日期雲端使用者指南,您可以使用佇列環境為佇列中的任務提供軟體應用程式、環境變數和其他資源。佇列環境範例可在 deadline-cloud-samples 的 queue_environments 資料夾中
使用截止日期雲端監視器或主控台新增佇列環境
開啟截止日期雲端監視器或 AWS 主控台。
導覽至您正在使用的陣列和佇列。
選取佇列環境索引標籤。
選擇動作,然後選取使用 YAML 建立新項目。
-
新增以下內容並儲存:
specificationVersion: environment-2023-09 name: P4Credentials variables: P4PORT: ssl:my-perforce.com:1666 P4USER: j.doe P4PASSWD: MyVeRyS3cretP4ssW0rd
使用 CLI 新增佇列環境
使用上述範例建立
p4_credentials.yaml檔案。-
執行以下 CLI 命令:
aws deadline create-queue-environment \ --farm-id FARM_ID \ --queue-id QUEUE_ID \ --priority 1 \ --template-type YAML \ --template file://p4_credentials.yaml
Windows 登錄檔 (僅限 CMF)
重要
此解決方案僅適用於您可以直接設定工作者主機的 CMF。對於 SMF 部署,請使用 Secrets Manager。
Windows 登錄檔會在工作者電腦上提供本機登入資料儲存。此方法使用標準 Perforce 優先順序系統,其中存放登入資料:
HKEY_LOCAL_MACHINE\SOFTWARE\Perforce\Environment(全系統設定)。HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment(使用者特定設定)。
此方法僅適用於您可以直接存取以設定工作者機器的 CMF 部署。
預先設定的管理員使用者 (僅限 CMF)
重要
此解決方案僅適用於您可以直接設定工作者主機的 CMF。對於 SMF 部署,請使用 Secrets Manager。
建立專用 P4 使用者來轉譯具有非過期連線的節點,以消除傳遞秘密資料的需求,例如使用者名稱和密碼。在此情況下,單一專用 P4 使用者可用來連線至所有 P4 伺服器,包括可存取專案儲存庫的 Commit (主要) 和 Edge 伺服器。
因此,只有在工作者上未設定預設值時,您只需要傳遞要連線的連接埠。這可以透過在類似上述步驟的工作環境或佇列環境中新增下列項目來實現:
name: P4Sync variables: P4PORT: ssl:my-perforce.com:1666
建立 Perforce 轉譯任務
本節將逐步引導您設定 Perforce 整合的轉譯任務資料資產,以便從 Unreal Engine 將 Perforce 整合的轉譯任務提交至 Deadline Cloud。
先決條件
在 Perforce 儲存庫中從 Unreal Engine 提交電影渲染佇列 (MRQ) 任務之前:
不真實的專案設定:
專案必須在 Perforce 工作區內。
確認 Perforce 連線已建立且您已登入。
截止日期雲端設定:
完成 安裝提交者。
Perforce 登入資料管理 為工作者設定 。
Perforce 要求:
具有專案檔案的有效 Perforce 工作區。
同步操作的適當 Perforce 許可。
Perforce 轉譯任務架構
P4 轉譯任務使用 Perforce 同步功能擴展標準轉譯任務:
Deadline Cloud Perforce render job ├── Environments │ ├── Apply Perforce Credentials from Secrets Manager │ ├── Sync Perforce Environment (CMF/SMF) │ │ └── Initializes Perforce workspace and syncs repository on workers │ └── Launch UE Environment │ └── Starts Unreal Engine with Perforce workspace paths └── Steps └── Render Step └── Executes Movie Render Queue process
與標準任務的主要差異:
登入資料管理:Secrets Manager 的安全 Perforce 登入資料應用程式。
儲存庫同步:工作區管理的其他 Perforce 同步環境。
路徑解析:環境變數參考 Perforce 工作區路徑。
相依性收集:Perforce 追蹤資產的自動收集和同步。
設定 Perforce 轉譯任務元件
請依照下列步驟建立 Perforce 整合轉譯任務所需的資料資產。
1. 建立套用 Perforce Credentials 資料資產
設定 OpenJD 環境以從 Secrets Manager 擷取 Perforce 登入資料,並將其套用至 Perforce 連線。
注意
環境變數會出現在字openjd_env首為 的日誌中,但為了安全起見,系統會自動修訂敏感資料 (連接埠、使用者、密碼)。
組態步驟:
-
建立新的截止日期 Cloud Perforce Environment 資料資產。
以描述性方式命名資料資產 (例如,「ApplyP4SecretEnv」)。
從 選取
p4_apply_secrets_environment.yml範本Content/Python/openjd_templates/p4/。-
設定秘密參考:
在 AWS_SECRET_P4INFO 中輸入您的 Perforce 登入資料秘密名稱。
這應與在 中建立的秘密名稱相符Perforce 登入資料管理。
2. 建立 Perforce 同步環境資料資產
設定 OpenJD 環境以建立 Perforce 工作區、從 Perforce 伺服器同步檔案,以及在轉譯後清理工作區。
組態步驟:
建立新的截止日期 Cloud Perforce Environment 資料資產。
-
根據您的機群類型命名資料資產:
適用於服務受管機群 (SMF) 的 P4SyncSMFEnv。
適用於客戶受管機群 (CMF) 的 P4SyncCMFEnv。
-
從 選取適當的範本
Content/Python/openjd_templates/p4/:SMF:
p4_sync_smf_environment.yml。CMF:
p4_sync_cmf_environment.yml。
-
設定秘密參考:
在 AWS_SECRET_P4INFO 中輸入您的 Perforce 登入資料秘密名稱。
必須符合步驟 1 中的秘密。
3. 建立 Perforce Launch UE 環境資料資產
設定 OpenJD 環境以啟動具有 Perforce 整合的 Unreal Engine。這會自動參考由同步環境建立的 Perforce 工作區。
組態步驟:
建立新的截止日期雲端環境資料資產。
以描述性方式命名資料資產 (例如,「P4LaunchUEEnv」)。
從 選取
p4_launch_ue_environment.yml範本Content/Python/openjd_templates/p4/。-
設定環境設定:
將 REMOTE_EXECUTION 設定為
True。此設定會啟用遠端轉譯功能。
4. 建立 Perforce 轉譯步驟資料資產
設定執行轉譯程序的 OpenJD 轉譯步驟。
組態步驟:
-
建立新的截止日期雲端轉譯步驟資料資產。
以描述性方式命名資料資產 (例如,「P4RenderStep」)。
從 選取
p4_render_step.yml範本Content/Python/openjd_templates/p4/。
5. 建立 Perforce 轉譯任務資料資產
設定可協調整個轉譯工作流程的 OpenJD 轉譯任務。
組態步驟:
-
建立新的截止日期雲端轉譯任務資料資產。
以描述性方式命名資料資產 (例如,「P4RenderJob」)。
從 選取
p4_render_job.yml範本Content/Python/openjd_templates/p4/。-
檢閱參數定義: 範本包含這些參數及其預設行為:
參數 說明 自動填入 需執行的動作 ProjectRelativePath相對於 Perforce 工作區根目錄的專案路徑 是 保留空白 - 自動填入 ProjectNamePerforce 工作區建立的專案名稱 是 保留空白 - 自動填入 PerforceChangelistNumber強制變更清單以將工作區同步至 是 保留空白 - 自動填入 PerforceWorkspaceSpecificationTemplate具有 {workspace_name}字符的 Perforce 用戶端規格是 保留空白 - 自動填入 MrqJobDependenciesDescriptor具有要同步之 MRQ 相依性的 JSON 檔案 是 保留空白 - 自動填入 ExtraCmdArgsFile額外 args 的檔案 (避免 1024 個字元限制) 否 選用 - 標準設定使用預設值 FramesPerTask每個任務要轉譯的影格數量 否 選用 - 使用預設 (0) 依鏡頭分割任務 ExtraCmdArgs其他 Unreal 啟動引數 否 選用 - 標準設定使用預設值 Executable轉譯節點的不真實可執行檔名稱 否 設定 - 標準設定使用預設值 CondaPackages轉譯任務所需的 Conda 套件 否 設定 - 標準設定使用預設值 CondaChannels存放套件的 Conda 頻道 否 設定 - 標準設定使用預設值 ChunkSize在單一轉譯工作階段中分組的鏡頭數量 否 設定 - 預設:1 (針對效能進行調校) MarketplacePluginsDir引擎 Marketplace 外掛程式的路徑 是 保留空白 - 自動填入 參數組態準則:
自動填入的參數:保留這些空白 - 它們會在任務提交期間自動填入。
手動參數:檢閱預設值並根據您的特定需求進行調整。
ChunkSize:從 1 開始,透過簡單的鏡頭提高效能。
-
設定環境 (依此確切順序):
順序 Environment 用途 第 1 個 「ApplyP4SecretEnv」 從 Secrets Manager 套用 Perforce 登入資料 第 2 個 「P4SyncSMFEnv」或「P4SyncCMFEnv」 同步 Perforce 工作區和檔案 第 3 個 「P4LaunchUEEnv」 使用 Perforce 路徑啟動 Unreal Engine 重要
環境順序對於適當的相依性解析和登入資料流程至關重要。
-
新增轉譯步驟:將「P4RenderStep」新增至步驟區段。
最佳實務
提交前檢查清單
登入資料:已正確設定 Perforce 登入資料 (請參閱 Perforce 登入資料管理)。
工作區:規格包含所有必要的檢視映射。
測試:在提交大型任務之前,使用小型轉譯任務進行測試。
相依性:確認所有專案相依性都在 Perforce 中且可供存取。
許可:確認工作者角色可存取 Secrets Manager。
效能最佳化
區塊大小組態:
| 區塊大小 | 使用案例 | 效能影響 |
|---|---|---|
| 1-2 個鏡頭 | 複雜鏡頭,需要詳細檢閱 | 較低的輸送量、更高的品質控制 |
| 4-8 次拍攝 | 平衡工作負載、典型專案 | 速度與可管理性的最佳平衡 |
| 超過 10 個鏡頭 | 簡單拍攝、批次處理 | 最大輸送量、最小額外負荷 |
請考慮下列其他最佳化:
相依性:將不必要的資產相依性降至最低,以減少同步時間。
工作區檢視:最佳化 Perforce 工作區檢視,以僅同步必要的檔案。
監控與除錯
任務日誌:監控任務執行日誌中的 Perforce 同步程序。
工作區狀態:檢查工作區的建立和同步完成。
相依性集合:確認已擷取所有必要的資產。
效能指標:追蹤同步時間和轉譯效能。
疑難排解
常見問題與解決方案
| 問題 | 徵狀 | 解決方案 |
|---|---|---|
| P4 連線失敗 | 身分驗證錯誤、逾時 | 驗證 Perforce 登入資料;檢查網路連線;驗證 Perforce 伺服器可存取性 |
| 工作區同步錯誤 | 同步失敗,許可遭拒 | 檢查 Perforce 使用者許可;驗證工作區規格;確保變更清單存在 |
| 缺少相依性 | 轉譯失敗、遺失資產 | 檢閱 MrqJobDependenciesDescriptor;檢查軟參考集合;驗證 Perforce 中的所有資產 |
| 路徑解決問題 | 找不到檔案錯誤 | 驗證P4_CLIENT_DIRECTORY變數;檢查環境順序;驗證工作區根路徑 |
偵錯步驟
檢查任務日誌:檢閱 Perforce 同步環境日誌以取得詳細的錯誤訊息。
驗證工作區:確保 Perforce 工作區規格正確。
在本機測試:從提交者機器驗證 Perforce 操作工作。
驗證許可:確認工作者角色具有秘密存取權 (如果使用 Secrets Manager)。
自訂主機需求
本節說明如何建立和使用 Unreal Engine 中 Deadline Cloud 轉譯的自訂主機需求。
概觀
主機需求定義哪些機群有資格執行特定的轉譯步驟。它們存放在UDeadlineCloudHostRequirements資產中,然後由DeadlineCloudRenderStep資產參考。
| 要求類型 | 組態位置 | 使用案例 |
|---|---|---|
| 基本系統需求 | CPU/RAM/GPU 欄位 | 限制對具有特定硬體的機器進行轉譯 |
| 自訂金額要求 | 名稱 + 最小值/最大值 | 需要數值資源層級 (授權、字符、配額) |
| 自訂屬性需求 | 屬性 + 值清單 | 機群執行 步驟所需的自訂屬性 |
注意
使用眼睛圖示隱藏需求只會將其隱藏在 MRQ 提交 UI 中。提交任務時,需求仍然適用。
重要
用於自訂金額要求和自訂屬性要求的 Name和 Attribute值必須嚴格符合官方開放任務描述文件中定義的有效識別符:開放任務規格
步驟 1:建立主機需求資產
在 Unreal Engine 中開啟內容瀏覽器。
建立新的資產:新增 → 其他 → 資料資產 → DeadlineCloudHostRequirements。
命名資產,例如
MyHostRequirements。
步驟 2:載入預設 YAML 範本
在資產詳細資訊面板中,尋找範本的路徑欄位。
選取預設範本:
Plugins/UnrealDeadlineCloudService/Content/Python/openjd_templates/host_requirements.yml。
這會載入基本需求,例如 CPU、記憶體、GPU、作業系統和架構。
注意
基本要求無法移除;只能變更其值。
步驟 3:設定基本 (系統) 需求
| 設定 | 範例 |
|---|---|
| 作業系統 | windows |
| CPU 架構 | x86_64 |
| vCPUs(最小值) | 16 |
| GPUs (最小值) | 1 |
如果最大值 = 0,則該要求沒有上限。
步驟 4:新增自訂金額需求
當需求為數字時 (例如,授權數量、並行限制) 使用。
尋找自訂金額需求一節。
新增項目並設定名稱,例如:
amount.custom.license。-
設定最小值和最大值:
最小值:1。
最大值:0 (0 表示無限制)。
步驟 5:新增自訂屬性需求
用於根據標籤和標籤篩選工作者。
尋找自訂屬性需求一節。
新增屬性名稱,例如:
attr.custom.gpu.vendor。-
選擇相符的規則:
AllOf - 所有值都必須相符。
AnyOf - 至少一個必須相符。
輸入以空格分隔的屬性值,例如:
nvidia amd。
步驟 6:MRQ 中的可見性 (選用)
每個要求項目都有一個眼睛圖示。
| 眼睛 | Behavior (行為) |
|---|---|
| Visible (顯示) | 需求會顯示在 MRQ 提交 UI 中 |
| Hidden | 提交任務時,需求會隱藏但仍包含 |
此設定有助於簡化藝術家的 UI,同時保留技術限制條件。
步驟 7:將需求連接至轉譯步驟
開啟相關
DeadlineCloudRenderStep資產。尋找主機需求欄位。
指派您建立的資產 (例如
MyHostRequirements)。
使用此步驟的所有 MRQ 提交現在會強制執行您的主機選取邏輯。
摘要
使用主機需求資產,您可以:
控制哪些工作者機器執行您的轉譯任務。
指定最低資源層級。
使用屬性比對將特定工作者集區設為目標。
簡化 UI,同時保持技術規則不變。
在多個 MRQ 步驟中重複使用設定。
此設定可改善任務路由一致性,並確保轉譯發生在正確的硬體上。
進階組態。
服務受管機群與客戶受管機群
服務受管機群 (SMF)
在服務受管機群上,Unreal Engine 和轉接器會自動使用具有預設佇列環境的 deadline-cloud conda 頻道。此設定提供最簡單的體驗。
客戶受管機群 (CMF)
對於客戶管理的機群,必須在工作者主機上手動安裝 Unreal Engine 和轉接器。此設定提供更多控制,並支援其他功能,例如 Perforce 整合。如需詳細說明,請參閱 設定客戶受管機群 (CMF) 工作者。
Unreal Engine 轉譯功能
Unreal Engine 的轉譯系統提供以下項目的完整支援:
| 功能 | 說明 | 備註 |
|---|---|---|
| 電影渲染佇列 | 高品質離線轉譯 | 與任務提交整合 |
| 排序器 | 時間軸型動畫系統 | 自動拍攝偵測和處理 |
| 專案外掛程式 | 自訂外掛程式支援 | 自動偵測和包含 |
| 資產相依性 | 內容檔案管理 | 全方位資產追蹤 |
| 黏性轉譯 | 拍攝之間的應用程式持久性 | 改善多鏡頭序列的效能 |
Unreal Engine 整合提交者會自動偵測和設定所有轉譯功能。轉接器會維護適當的相依性處理,並支援高效的多鏡頭轉譯,而無需重新啟動 Unreal Engine。
開放原始碼資源
提交者和轉接器是開放原始碼,可在 GitHub 上取得: