本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將任務區塊新增至任務範本
下列程序會將每個任務轉譯一個影格的任務範本轉換為轉譯影格區塊的任務範本。如需區塊及如何選擇區塊大小的背景,請參閱 任務範本的任務區塊。
開始之前,您必須準備好以下事項:
-
任務套件,其中包含定義影格任務參數的任務範本。如需詳細資訊,請參閱任務套件的任務範本元素。
-
與支援區塊的機群相關聯的佇列。服務受管機群一律會執行相容的工作者代理程式。客戶受管機群需要工作者代理程式 0.28.21 版或更新版本的工作者。
將任務區塊新增至任務範本
-
將
TASK_CHUNKING副檔名新增至template.yaml檔案頂端:specificationVersion: 'jobtemplate-2023-09' extensions: - TASK_CHUNKING如果您略過此步驟,任務建立會失敗並顯示錯誤
The CHUNK[INT] task parameter requires the TASK_CHUNKING extension. -
在步驟的 中
parameterSpace,將影格任務參數類型從INT變更為 ,CHUNK[INT]並新增chunks屬性:taskParameterDefinitions: - name: Frame type: CHUNK[INT] range: "{{Param.Frames}}" chunks: defaultTaskCount: 10 rangeConstraint: CONTIGUOUS如需所有可用的欄位,請參閱 CHUNK【INT】 任務參數參考。
-
更新步驟的指令碼以接受影格範圍,而非單一影格。使用 時
rangeConstraint: CONTIGUOUS,{{Task.Param.Frame}}變數一律會以start-end格式擴展至範圍,因此指令碼可以使用cut命令將其分割:START_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f1)" END_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f2)"使用
rangeConstraint: NONCONTIGUOUS,變數會擴展到任意範圍表達式,例如1-3,5,7-20:2。將表達式轉換為應用程式接受的語法。如需工作轉換,請參閱 GitHub 上的任務區塊範例。 -
使用截止日期雲端 CLI 提交任務套件:
deadline bundle submitmy-job-bundle -
若要驗證區塊是否有效,請在截止日期雲端監視器中開啟任務,並檢視步驟的任務清單。每個任務代表一個區塊,並顯示影格範圍,例如
1-10而非單一影格編號。
下列完整任務範本會以 10 個影格區塊呈現 Blender 動畫:
specificationVersion: 'jobtemplate-2023-09' extensions: - TASK_CHUNKING name: Blender Render with Contiguous Chunking parameterDefinitions: - name: BlenderSceneFile type: PATH objectType: FILE dataFlow: IN - name: Frames type: STRING default: "1-100" - name: OutputDir type: PATH objectType: DIRECTORY dataFlow: OUT default: "./output" steps: - name: RenderBlender parameterSpace: taskParameterDefinitions: - name: Frame type: CHUNK[INT] range: "{{Param.Frames}}" chunks: defaultTaskCount: 10 rangeConstraint: CONTIGUOUS script: actions: onRun: command: bash args: ["{{Task.File.Run}}"] embeddedFiles: - name: Run type: TEXT data: | set -xeuo pipefail mkdir -p '{{Param.OutputDir}}' # Parse the chunk range (e.g., "1-10") into start and end frames START_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f1)" END_FRAME="$(echo '{{Task.Param.Frame}}' | cut -d- -f2)" blender --background '{{Param.BlenderSceneFile}}' \ --render-output '{{Param.OutputDir}}/output_####' \ --render-format PNG \ --use-extension 1 \ -s "$START_FRAME" \ -e "$END_FRAME" \ --render-anim
在此範例中,Deadline Cloud 會將 100 個影格分割為區塊,例如 1-10和 11-20,而每個任務會使用單一 Blender 調用轉譯其區塊。
如需詳細資訊,請參閱下列主題:
-
在截止日期雲端上將影格分組為具有任務區塊的區塊 – Ready-to-submit的區塊範例,包括不連續的變體。
-
如何將任務提交至截止日期雲端 – 將任務套件提交到您的佇列。