翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ジョブテンプレートにタスクチャンキングを追加する
次の手順では、タスクごとに 1 つのフレームをレンダリングするジョブテンプレートを、フレームのチャンクをレンダリングするジョブテンプレートに変換します。チャンキングの背景とチャンクサイズの選択方法については、「」を参照してくださいジョブテンプレートのタスクチャンキング。
開始するには、以下が必要です。
-
フレームタスクパラメータを定義するジョブテンプレートを含むジョブバンドル。詳細については、「ジョブバンドルのジョブテンプレート要素」を参照してください。
-
チャンキングをサポートするフリートに関連付けられたキュー。サービスマネージドフリートは常に互換性のあるワーカーエージェントを実行します。カスタマーマネージドフリートでは、ワーカーにワーカーエージェントバージョン 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 のタスクチャンキングサンプルを参照してください。 -
Deadline Cloud CLI を使用してジョブバンドルを送信します。
deadline bundle submitmy-job-bundle -
チャンキングが有効であることを確認するには、Deadline Cloud モニターでジョブを開き、ステップのタスクリストを表示します。各タスクは 1 つのチャンクを表し、1 つのフレーム番号
1-10の代わりに などのフレーム範囲を表示します。
次の完全なジョブテンプレートは、Blender アニメーションを 10 フレームのチャンクでレンダリングします。
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、各タスクは 1 回の Blender 呼び出しでチャンクをレンダリングします。
詳細については、以下の各トピックを参照してください。
-
Deadline Cloud でタスクチャンキングを使用してフレームをチャンクにグループ化する – Ready-to-submitチャンキングサンプル。
-
Deadline Cloud にジョブを送信する方法 – ジョブバンドルをキューに送信します。