View a markdown version of this page

エピック Unreal エンジン - AWS Deadline クラウド

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

エピック Unreal エンジン

Unreal Engine は、フォトリアルなビジュアルと没入型エクスペリエンスのためのリアルタイムの 3D 作成ツールです。Unreal Engine は、送信者、conda パッケージ、レンダリングパフォーマンスを向上させるアダプターを備えた Deadline Cloud でサポートされています。このガイドでは、Deadline Cloud と Unreal Engine を使用して、レンダリングタスクを複数のマシンに分散することで、映画レンダリングキュープロジェクトをより迅速にレンダリングするためのstep-by-stepの手順を示します。

サポートの概要

Unreal Engine は、次のコンポーネントでサポートされています。

  • 送信者: Unreal Engine から直接ジョブを送信するための統合送信者プラグイン。シーンとアセットの自動検出機能を備えています。

  • Conda パッケージ: サービスマネージドフリートへの自動インストールの Deadline Cloud。

  • アダプター: スティッキーセッションと追加のモニタリングによる効率的なレンダリングのためのミドルウェア。

  • クロスプラットフォーム互換性: Windows のみの送信者とワーカーのサポート。

  • Movie Render Queue Integration: Unreal の Movie Render Queue システムのサポート。

Unreal Engine バージョンの互換性

次の表は、Unreal Engine バージョンの現在のサポートレベルを示しています。

メジャーバージョン 送信者のサポート Conda サポート
5.4 Windows Windows
5.5 Windows Windows
5.6 Windows Windows
5.7 Windows Windows

Deadline Cloud Conda チャネル

次の表に、conda チャネルのサービスマネージドフリートで使用できる Unreal Engine に適用されるすべての deadline-cloud conda パッケージを示します。

OS パッケージ バージョン
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 がインストールされている

  • Deadline Cloud Monitor のインストール (ここでダウンロード)

  • GPU 対応の Windows サービスマネージドフリート、または Unreal Engine、Unreal Engine アダプター、ライセンス設定を備えたカスタマーマネージドフリートのいずれかを使用した Deadline Cloud ファームへのアクセス

送信者のインストール

Unreal Engine 送信者は Deadline Cloud 機能を Unreal Engine のプラグインとして追加し、映画レンダリングキュージョブを Deadline Cloud に直接送信してレンダリングできるようにします。

ブランチの選択

デプロイに適したブランチを選択します。

ブランチ安定性ユースケース以下のために使用することをお勧めします
リリースStable本番稼働ほとんどのユーザー
メインライン最新の機能開発とテスト上級ユーザー
ヒント

本番環境のリリースブランチを使用して、安定性を確保します。

Unreal をインストールする新しい Windows Amazon EC2 インスタンスの作成 (オプション)

新しい Windows Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを送信者として設定する場合、200 GB のストレージを持つ g5.2xlarge インスタンスは妥当な最小値です。

  1. 有効なインスタンスプロファイルを使用して Amazon EC2 インスタンスを起動します。これは、以下に示すように NVIDIA GRID ドライバーをダウンロードするために必要です。

  2. エピックインストーラをダウンロードし、サポートされているバージョンの Unreal (5.4 - 5.7) をインストールします。

    • DirectX 11 プラグインで実行する場合、UE 5.5 には既知のクラッシュバグがあります (「UE issue #UE-276282」を参照)。UE 5.5 で DirectX サポートが必要な場合は、DirectX 12 以降を使用します。

  3. NVIDIA GRID ドライバー - Windows のインストール手順に従います。

Windows のロングパス

以下の手順の多くは、デフォルトの Windows 最大パス長を超えるファイルを作成する場合があります。Deadline Cloud for Unreal Engine 送信者またはアダプターを Windows マシンにビルドしてインストールする前に、Windows のロングパスサポートを有効にすることをお勧めします。これを行うには、「ファイルパスの最大数の制限」ページの手順に従います。たとえば、PowerShell コマンドを実行します。

Windows のロングパスをサポートするように設定されていない依存関係が原因でワーカーエージェントに未解決の問題もあります。ワーカーを設定するときは、リンクされた問題の回避策ステップに従って、問題が解決されるまで Windows のロングパスを完全にサポートします。

ビルドツールのインストール

現在、Unreal 送信者プラグインはローカルでコンパイルする必要があります。

  1. Visual Studio Installer を使用して Visual Studio をインストールします。

  2. エピック互換性テーブルを確認して、Visual Studio とビルドツールのバージョンが Unreal のバージョンと互換性があることを確認します。

  3. 個々のコンポーネントで、選択した MSVC ビルドツールのバージョン (デフォルトでは「最新」) がテーブルの推奨バージョンと一致していることを確認します。互換性ガイダンスでは「またはそれ以降」のバージョンを提案している場合がありますが、「推奨」としてリストされているバージョンよりも新しいバージョンを使用する場合にビルドエラーが発生することがあります。

  4. 個々のコンポーネントで、最新の .NET Framework SDK (4.6.1 と 4.8.1 が検証済み) を選択します。

  5. ワークロードでC++ を使用したデスクトップ開発を選択します。

Deadline Cloud Monitor のインストール

Deadline Cloud モニターは、Deadline Cloud にジョブを送信するための認証情報を管理し、ジョブのステータスをモニタリングするために使用されます。

環境設定

  1. (まだインストールされていない場合) すべてのユーザーに最新バージョンの Python をインストールします (3.12 で検証済み)。

  2. 環境変数が正しく設定されていることを確認します。システム環境変数では、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 ソフトウェアのインストール

最新のテスト済みリリースが必要か、最新のコミットのすべてが必要かに応じて、リリースブランチまたはメインライン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、オプションで次の 2 つのステップを自動化します。Unreal の最新バージョンの検索を試み、プラグインと Python の依存関係を構築し、正しい場所にインストールします。Unreal バージョンなどの設定を上書きできます。完全なヘルプリストを表示するには、以下を実行します。

python scripts/build_plugin.py -h

最新の Unreal Engine インストールを使用して の現在のコピーを送信者deadline-cloud-for-unreal-engineとしてビルドおよびインストールするには、以下を実行します。

python scripts/build_plugin.py --install

このスクリプトで を正常にインストールした場合は、「」に進むことができますフリートの作成

プラグインの構築

Unreal のインストール場所と のインストール場所に基づいて、以下の最初の 2 つのパスを調整します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 の依存関係

必要な Python 依存関係をインストールする方法は 4 つあります。

1. 上記のリリースブランチからプラグインを構築してインストールした場合は、pip から をインストールできます。次の install コマンドを使用して、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. メインラインからプルする場合、Python 依存関係がまだ PyPI にリリースされていない可能性があります。ローカルコピーを構築してインストールする必要があります。これは、ハッチで実行できます。.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 依存関係は送信者インストーラによってインストールできます。これらはリリースブランチまたはメインラインブランチの上記のコードでは古くなっている可能性があるため、この方法は現時点では推奨されません。

  1. Deadline Cloud AWS コンソールのダウンロードタブから、またはワークステーションのセットアップ → ダウンロードの Deadline Cloud モニター内から、送信者インストーラをダウンロードします。

  2. すべてのユーザーに対してインストーラを実行します。デフォルトのインストール場所は問題ありません。

  3. Unreal Engine プラグインを有効にします。

  4. Unreal Engine プラグインのインストールパスが、プラグインがコピーされた場所と一致していることを確認します (特に Unreal バージョンが一致していることを確認します)。

通知の更新

送信者プラグインは、Unreal Editor の起動時に GitHub で新しいリリースを自動的に確認します。更新が利用可能な場合、リリースページにアクセスするように求めるダイアログが表示されます。

更新通知を無効にするには、「Deadline Cloud settings」パネルの「General Settings」(Edit > Project Settings > Plugins > Deadline Cloud) で「Show submitter update notifications」のチェックボックスをオフにします。

または、 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) の作成

  1. まだ CMF がない場合は、「カスタマーマネージドフリートを作成する」を参照してください。

    警告

    CMF をキューに関連付ける場合は、デフォルトの conda キュー環境を削除します。これにより、conda 環境が使用されなくなり、CMF に送信されたジョブにデフォルトの SMF 固有の変数が誤って使用されます。CMF で conda を使用する場合は、ジョブの送信中にパラメータ定義オーバーライドの 変数CondaPackagesCondaChannels変数を必ず更新してください。

  2. ワーカーホストのセットアップと設定に従って、ワーカーホストをセットアップします。

  3. 「Windows ジョブユーザーシークレットへのアクセスの管理」に従って、CMF ワーカーの Windows ジョブユーザーシークレットを設定します。

  4. ジョブに必要なソフトウェアをインストールして設定し、ジョブの実行に必要なソフトウェアをインストールします。

  5. に従ってカスタマーマネージドフリート (CMF) ワーカーのセットアップ、Unreal Engine ジョブを実行するようにワーカーノードを設定します。

テストレンダーの送信

この例では、Unreal Marketplace の Meerkat デモを使用しています。

  1. エピックゲームランチャーを起動します。

  2. サンプルタブから Meerkat デモをインストールします。

  3. Meerkat デモからプロジェクトを作成し、開きます。

  4. 編集メニューからプラグインを選択しUnrealDeadlineCloudService を検索して有効にします。

  5. プラグインを初めて有効にした場合は、Unreal を再起動します。

  6. Edit > Project Settings で、Movie Render Pipeline セクションを検索します。

    • デフォルトのリモートエグゼキュターで、MoviePipelineDeadlineCloudRemoteExecutor を選択します。

    • デフォルトのエグゼキュタージョブで、MoviePipelineDeadlineCloudExecutorJob を選択します。

    • デフォルトのジョブ設定クラスで、追加アイコンを選択し、DeadlineCloudRenderStepSetting を追加します。

  7. Deadline Cloud 設定を検索し、認証を確認します。

    • ステータスが「AUTHENTICATED」と表示され、Deadline Cloud API が「AUTHORIZED」と表示されていることを確認します。

    • 表示されない場合は、まずログインボタンを使用してみます。これが機能しない場合は、Deadline Cloud Monitor を開き、ログインしていることを確認します。

    • 「Deadline Cloud Workstation Configuration」セクションで、次の操作を行います。

      • グローバル設定で、AWS プロファイルが Deadline Cloud モニタープロファイルに正しく設定されていることを確認します。

      • プロファイルで、デフォルトのファームがファームに設定されていることを確認します。

      • Farm で、デフォルトキューが、上記で設定したフリートに関連付けられているキューに設定されていることを確認します。

  8. プロジェクト設定ウィンドウを終了します。

  9. WindowsCinematicsMovie Render Queue を選択します。

    • + Render を選択し、Main_SEQ を選択します。

    • 設定列で UnsavedConfig を選択します。

      • ポップアップウィンドウの左側に Deadline Cloud の設定が表示されます。その後、このウィンドウを閉じることができます。

    • ダイアログの右側で、ジョブ設定を行います。

      • プリセットオーバーライド (このダイアログを広げる必要がある場合があります) の下:

        • ジョブ共有設定を展開します。

          • [Name] を [Unreal Test Job] に設定します。

          • 最大再試行回数を 2 に設定します。

        • ジョブアタッチメントを展開します

          • 入力ファイルで、自動検出の表示を選択します。

          • 自動検出されたファイルのリストが正しく入力されていることを確認します。

      • ジョブテンプレートの上書き:

        • 5.6 とは異なるバージョンを使用している場合は、CondaPackages で Unreal Engine バージョンを更新します。

          • Unreal Engine バージョンの自動検出は、今後のリリースで予定されています。

    • レンダリング (リモート) を選択します。

  10. Deadline Cloud モニターに移動し、ジョブの進行状況を確認できます。

カスタマーマネージドフリート (CMF) ワーカーのセットアップ

このセクションでは、Unreal Engine を使用した Deadline Cloud の CMF ワーカーとして Amazon EC2 インスタンスを設定する手順について説明します。

概要

CMF と SMF の主な違いは次のとおりです。

  • CMF: Unreal Engine とアダプターをワーカーホストに手動でインストールします。

  • SMF: deadline-cloud conda チャネルを介した自動可用性。

ブランチの選択

デプロイに適したブランチを選択します。

ブランチ安定性ユースケース
リリースStable本番稼働用デプロイ
メインライン最新開発とテスト
重要

互換性の問題を避けるため、ワーカーのバージョンが送信者のバージョンと一致していることを確認してください。

Amazon EC2 インスタンスのセットアップ

推奨されるインスタンス設定は次のとおりです。

  • インスタンスタイプ: g5.2xlarge 以上。

  • ストレージ: 最小 200 GB。

  • OS: Windows Server 2019/2022。

ソフトウェアのインストール

1. Unreal Engine のインストール:

  1. エピックゲームランチャーをダウンロードします。

  2. Unreal Engine 5.4 以降をインストールします。

    注記

    Deadline Cloud の互換性には Unreal Engine 5.4 以降が必要です。

2。NVIDIA GRID ドライバーをインストールします。

ビルドツールのインストール

現在、Unreal プラグインはローカルでコンパイルする必要があります。

  1. Visual Studio Installer を使用して Visual Studio をインストールします。

  2. エピック互換性テーブルを確認して、Visual Studio とビルドツールのバージョンが Unreal のバージョンと互換性があることを確認します。

  3. 個々のコンポーネントで、選択した MSVC ビルドツールのバージョン (デフォルトでは「最新」) がテーブルの推奨バージョンと一致していることを確認します。

  4. 個々のコンポーネントで、最新の .NET Framework SDK を選択します (4.6.1 と 4.8.1 は検証済みです)。

  5. ワークロードでC++ を使用したデスクトップ開発を選択します。

Deadline Cloud ソフトウェアのインストール

リリースブランチまたはメインライン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

以下を実行して Deadline Cloud ワーカーエージェントを設定します。

install-deadline-worker ^ --farm-id FARM_ID ^ --fleet-id FLEET_ID ^ --region REGION ^ --allow-shutdown

このスクリプトで をインストールし、ワーカーエージェントを正常に設定した場合は、「」に進むことができますDeadline Cloud ワーカーエージェントサービスの開始

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 のインストール場所と のインストール場所に基づいて、以下の最初の 2 つのパスを調整します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

Deadline Cloud ワーカーエージェントサービスの開始

CMF ワーカーインスタンスの場合:

  1. Task Manager を開きます。

  2. 右側のサービスタブを選択します。

  3. DeadlineWorker を検索します。

    • リストにない場合は、CMF ホストのセットアップステップのステップ (install-deadline-worker特に) を見落としている可能性があります。

  4. サービスのステータスが現在「実行中」でない場合は、右クリックして開始を選択します。

  5. DeadlineWorker サービスが起動しない場合は、以下の場所でワーカーエージェントの起動ログを確認してください。

    • C:\ProgramData\Amazon\Deadline\Logs\worker-agent.log

    • C:\ProgramData\Amazon\Deadline\Logs\queue-<queueid>\session-<sessionid>.log

認証情報管理を実施する

このセクションでは、Perforce を Deadline Cloud ワーカーと統合するための安全な認証情報管理について説明します。

概要

Deadline Cloud ワーカーの Perforce 認証情報を設定する方法はいくつかあります。各方法には、さまざまなセキュリティ上の影響とユースケースがあります。

方法セキュリティレベルデプロイのサポート推奨用途
AWS Secrets Manager (Secrets Manager)SMF + CMF本番稼働用 (推奨)
ジョブの環境変数SMF + CMF開発とテストのみ
キュー環境変数SMF + CMF開発とテストのみ
Windows レジストリCMF のみレガシー CMF 設定
事前設定された管理者ユーザーCMF のみCMF 設定の簡素化
重要

本番環境には Secrets Manager を使用します。一元化された暗号化された認証情報ストレージと監査証跡を提供し、SMF と CMF の両方のデプロイで動作します。

P4 認証情報の基本

Perforce サーバーの URL とポート、ユーザー名、パスワードなどの接続設定を取得するには、Perforce は次の優先度に従います。

  1. Perforce (P4) の任意のフレームワークの接続パラメータ (p4python.P4 など)。

  2. ユーザー/システム環境変数: P4PORTP4USERP4CLIENTP4PASSWD

  3. Windows レジストリ: HKEY_LOCAL_MACHINE\SOFTWARE\Perforce\Environment (システム全体の設定) または HKEY_CURRENT_USER\SOFTWARE\Perforce\Environment (ユーザー固有の設定)。

これらの優先順位で、次の設定がある場合:

  • 接続パラメータpasswordは です password.from.connection

  • 環境変数は %P4PORT%です。 ssl:perforce.from.env:1666

  • Windows レジストリHKEY_CURRENT_USER\SOFTWARE\Perforce\Environment:P4PORTssl:perforce.from.registry:1666

  • Windows レジストリHKEY_CURRENT_USER\SOFTWARE\Perforce\Environment:P4USERuser.from.registry

  • Windows レジストリHKEY_CURRENT_USER\SOFTWARE\Perforce\Environment:P4PASSWDpassword.from.registry

結果の Perforce 接続は次のとおりです。

Port = ssl:perforce.from.env:1666 User = user.from.registry Password = password.from.connection

Secrets Manager (推奨)

Secrets Manager は、CMF と SMF の両方のデプロイに対して最も安全でスケーラブルなソリューションを提供します。

このアプローチには以下の利点があります。

  • 一元化されたセキュリティ: すべての P4 認証情報を 1 つの暗号化された場所に保存します。

  • 認証情報が公開されない: 認証情報がジョブ設定やログに表示されることはありません。

  • 自動ローテーション: ジョブの再設定なしで認証情報ローテーションをサポートします。

  • 監査証跡: 認証情報のアクセスと使用状況を追跡します。

  • ユニバーサルサポート: CMF と SMF の両方のデプロイで動作します。

  • ログの秘匿化: ジョブログで自動的に秘匿化された接続認証情報。

ステップ 1: Secrets Manager でシークレットを作成する

Perforce 接続パラメータを含むシークレットを作成します。

必要なキーと値のペア:

  • P4PORT - サーバー URL とポートを実行します。

  • P4USER - ユーザー名を強制します。

  • P4PASSWD - パスワードを強制します。

重要

キー名は、 を操作するために P4 接続パラメータと完全に一致する必要がありますdeadline-cloud-for-unreal-engine

シークレットの例:

{ "P4PORT": "ssl:your-perforce-server.com:1666", "P4USER": "your-perforce-username", "P4PASSWD": "your-perforce-password" }

シークレットを作成するには:

  1. Secrets Manager コンソールを開きます。

  2. 「新しいシークレットを保存する」を選択します。

  3. 「その他のタイプのシークレット」を選択します。

  4. 上記のキーと値のペアを入力します。

  5. シークレットに名前を付けます (例: deadline-cloud-p4-credentials)。

  6. 作成プロセスを完了します。

ステップ 2: ワーカーにシークレットへのアクセスを許可する

ワーカーはシークレットにアクセスするためのアクセスsecretsmanager:GetSecretValue許可が必要です。これは、Windows ジョブのユーザーシークレットの管理と同じパターンに従います。

アクセスを許可するには:

  1. Secrets Manager コンソールを開き、シークレットに移動します。

  2. 「リソースのアクセス許可」セクションで、次のポリシーを追加します。

    { "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "QUEUE_ROLE_ARN" }, "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "*" } ] }
  3. を実際のキューロール ARN QUEUE_ROLE_ARNに置き換えます。

  4. ポリシーを保存します。

注記

シークレット名を保存します。P4 レンダリングジョブを設定するときに必要になります。次のステップPerforce レンダリングジョブの作成については、「」を参照してください。

ジョブの環境変数

警告

このアプローチは、ジョブ設定とログで認証情報を公開するため、本番環境にはお勧めしません。本番環境には Secrets Manager を使用します。

接続認証情報は、p4_sync_smf_environmentugs_sync_smf_environment、または CMF の同様の環境など、ワークスペースの作成が行われるジョブ環境内で渡すことができます。または、新しい環境テンプレートを作成し、ジョブに付加します。

name: P4Credentials variables: P4PORT: ssl:my-perforce.com:1666 P4USER: j.doe P4PASSWD: MyVeRyS3cretP4ssW0rd

このアプローチには、次のセキュリティリスクがあります。

  • 認証情報はジョブ設定に表示されます。

  • パスワードはログに表示される場合があります (自動的に編集されません)。

  • 一元化された認証情報管理はありません。

  • 認証情報のローテーションが困難。

キュー環境変数

警告

このアプローチは、認証情報をキュー設定に保存するため、本番環境にはお勧めしません。Secrets Manager を使用して、安全な認証情報を管理します。

Deadline Cloud ユーザーガイドによると、キュー環境を使用して、ソフトウェアアプリケーション、環境変数、その他のリソースをキュー内のジョブに提供できます。キュー環境のサンプルは、 deadline-cloud-samples の queue_environments フォルダにあります。

Deadline Cloud モニターまたはコンソールを使用してキュー環境を追加する

  1. Deadline Cloud モニターまたは AWS コンソールを開きます。

  2. 作業しているファームとキューに移動します。

  3. キュー環境タブを選択します。

  4. Action を選択し、Create new with YAML を選択します。

  5. 以下を追加して保存します。

    specificationVersion: environment-2023-09 name: P4Credentials variables: P4PORT: ssl:my-perforce.com:1666 P4USER: j.doe P4PASSWD: MyVeRyS3cretP4ssW0rd

CLI を使用してキュー環境を追加する

  1. 上記のサンプルを使用して p4_credentials.yaml ファイルを作成します。

  2. 次の 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 ユーザーを作成し、ユーザー名やパスワードなどのシークレットデータを渡す必要がなくなります。この場合、1 人の専用 P4 ユーザーを使用して、プロジェクトデポにアクセスできるコミット (マスター) サーバーやエッジサーバーなど、すべての P4 サーバーに接続できます。

したがって、デフォルトがワーカーで設定されていない場合は、接続先のポートを渡すだけで済みます。これは、上記の手順と同様に、ジョブ環境またはキュー環境に以下を追加することで実現できます。

name: P4Sync variables: P4PORT: ssl:my-perforce.com:1666

Perforce レンダリングジョブの作成

このセクションでは、Perforce 統合レンダージョブデータアセットを設定して、Perforce 統合レンダージョブを Unreal Engine から Deadline Cloud に送信できるようにする方法について説明します。

前提条件

Perforce リポジトリで Unreal Engine から映画レンダリングキュー (MRQ) ジョブを送信する前に:

Unreal プロジェクトのセットアップ:

  • プロジェクトは Perforce ワークスペース内にある必要があります。

  • Perforce 接続が確立され、ログインしていることを確認します。

Deadline Cloud のセットアップ:

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 からの Secure Perforce 認証情報アプリケーション。

  • リポジトリ同期: ワークスペース管理用の追加の Perforce 同期環境。

  • パス解決: 環境変数は Perforce ワークスペースパスを参照します。

  • 依存関係の収集: Perforce で追跡されたアセットの自動収集と同期。

Perforce レンダリングジョブコンポーネントのセットアップ

Perforce 統合レンダージョブに必要なデータアセットを作成するには、次の手順に従います。

1. Apply Perforce 認証情報データアセットを作成する

Secrets Manager から Perforce 認証情報を取得し、Perforce 接続に適用するための OpenJD 環境を設定します。

注記

環境変数は openjd_envプレフィックスが付いたログに表示されますが、機密データ (ポート、ユーザー、パスワード) はセキュリティのために自動的に編集されます。

設定手順:

  1. 新しい Deadline Cloud Perforce Environment データアセットを作成します。

    データアセットインスタンスのクラスの選択ダイアログが「deadline」にフィルタリングされ、Deadline Cloud Perforce Environment が選択されています。
  2. データアセットにわかりやすい名前を付けます (例:ApplyP4SecretEnv」)。

  3. からp4_apply_secrets_environment.ymlテンプレートを選択しますContent/Python/openjd_templates/p4/

  4. シークレットリファレンスを設定します。

    • AWS_SECRET_P4INFO に Perforce 認証情報シークレット名を入力します。

    • これは、 で作成されたシークレット名と一致する必要があります認証情報管理を実施する

    Perforce 認証情報の環境データアセットプロパティを適用する: 名前 P4ApplySecrets、テンプレート p4_apply_secrets_environment.yml へのパス、および P4AccessSecretName に設定された AWS_SECRET_P4INFO 変数。

2. Perforce 同期環境データアセットを作成する

Perforce ワークスペースを作成し、Perforce サーバーからファイルを同期し、レンダリング後にワークスペースをクリーンアップするための OpenJD 環境を設定します。

設定手順:

  1. 新しい Deadline Cloud Perforce Environment データアセットを作成します。

  2. フリートタイプに基づいてデータアセットに名前を付けます。

    • サービスマネージドフリート (SMF) の P4SyncSMFEnv

    • カスタマーマネージドフリート (CMF) の P4SyncCMFEnv

  3. から適切なテンプレートを選択しますContent/Python/openjd_templates/p4/

    • SMF: p4_sync_smf_environment.yml

    • CMF: p4_sync_cmf_environment.yml

  4. シークレットリファレンスを設定します。

    • AWS_SECRET_P4INFO に Perforce 認証情報シークレット名を入力します。

    • ステップ 1 のシークレットと一致する必要があります。

    Perforce sync environment data asset properties: Name P4SyncSmf、Path to Template p4_sync_smf_environment.yml、および AWS_SECRET_P4INFO 変数を P4AccessSecretName に設定します。

3. Perforce Launch UE 環境データアセットを作成する

Perforce 統合で Unreal Engine を起動するための OpenJD 環境を設定します。これにより、同期環境によって作成された Perforce ワークスペースが自動的に参照されます。

設定手順:

  1. 新しい Deadline Cloud Environment データアセットを作成します。

  2. データアセットにわかりやすい名前を付けます (例:P4LaunchUEEnv」)。

  3. からp4_launch_ue_environment.ymlテンプレートを選択しますContent/Python/openjd_templates/p4/

  4. 環境設定を構成する:

    • REMOTE_EXECUTION を に設定しますTrue

    • この設定により、リモートレンダリング機能が有効になります。

    Perforce 環境データアセットプロパティを使用して Unreal Engine を起動する: Name LaunchUnrealEditorWithP4、Path to Template p4_launch_ue_environment.yml、REMOTE_EXECUTION 変数を True に設定します。

4. Perforce レンダリングステップデータアセットを作成する

レンダリングプロセスを実行するための OpenJD レンダリングステップを設定します。

設定手順:

  1. 新しい Deadline Cloud Render Step データアセットを作成します。

    データアセットインスタンスのクラスを選択 ダイアログを「deadline cloud」にフィルタリングし、Deadline Cloud Render ステップを選択します。
  2. データアセットにわかりやすい名前を付けます (例:P4RenderStep」)。

  3. からp4_render_step.ymlテンプレートを選択しますContent/Python/openjd_templates/p4/

5. Perforce レンダリングジョブデータアセットを作成する

レンダリングワークフロー全体をオーケストレーションする OpenJD レンダリングジョブを設定します。

設定手順:

  1. 新しい Deadline Cloud Render Job データアセットを作成します。

    データアセットインスタンスのクラスを選択 ダイアログを「deadline cloud」にフィルタリングし、Deadline Cloud Render Job を選択します。
  2. データアセットにわかりやすい名前を付けます (例:P4RenderJob」)。

  3. からp4_render_job.ymlテンプレートを選択しますContent/Python/openjd_templates/p4/

  4. パラメータ定義の確認: テンプレートには、これらのパラメータとデフォルトの動作が含まれます。

    パラメータ説明自動入力必要なアクション
    ProjectRelativePathPerforce ワークスペースルートに対するプロジェクトパスはい空のままにする - 自動入力
    ProjectNamePerforce ワークスペース作成のプロジェクト名はい空のままにする - 自動入力
    PerforceChangelistNumberワークスペースを に同期するように変更リストを強制するはい空のままにする - 自動入力
    PerforceWorkspaceSpecificationTemplate{workspace_name} トークンを使用してクライアント仕様を実行するはい空のままにする - 自動入力
    MrqJobDependenciesDescriptor同期用の MRQ 依存関係を持つ JSON ファイルはい空のままにする - 自動入力
    ExtraCmdArgsFile追加引数のファイル (1024 文字の制限を回避)いいえオプション - 標準セットアップにデフォルトを使用する
    FramesPerTaskタスクごとにレンダリングするフレーム数いいえオプション - デフォルト (0) を使用してタスクをショットで分割する
    ExtraCmdArgs追加の Unreal 起動引数いいえオプション - 標準セットアップにデフォルトを使用する
    Executableレンダーノードの非現実的な実行可能ファイル名いいえ設定 - 標準セットアップにはデフォルトを使用します
    CondaPackagesジョブのレンダリングに必要な Conda パッケージいいえ設定 - 標準セットアップにはデフォルトを使用します
    CondaChannelsパッケージが保存されている Conda チャネルいいえ設定 - 標準セットアップにはデフォルトを使用します
    ChunkSize1 回のレンダリングセッションでグループ化されたショットの数いいえ設定 - デフォルト: 1 (パフォーマンスに合わせて調整)
    MarketplacePluginsDirエンジン Marketplace プラグインへのパスはい空のままにする - 自動入力

    パラメータ設定ガイドライン:

    • 自動入力パラメータ: これらは空のままにします。ジョブの送信中に自動的に入力されます。

    • 手動パラメータ: デフォルトを確認し、特定の要件に基づいて調整します。

    • ChunkSize: 1 から始めて、シンプルなショットでパフォーマンスを向上させます。

    Perforce レンダリングジョブデータアセットのパラメータ定義プロパティ、一覧表示 ProjectRelativePath、ProjectName、PerforceChangelistNumber、PerforceWorkspaceSpecificationTemplate、MrqJobDependenciesDescriptor、ExtraCmdArgs、ExtraCmdArgsFile、Executable、CondaPackages、CondaChannels、ChunkSize の各フィールド。
  5. 環境を設定する (この正確な順序で):

    Order環境目的
    1 日「ApplyP4SecretEnv」Secrets Manager から Perforce 認証情報を適用する
    2 番目「P4SyncSMFEnv」または「P4SyncCMFEnv」Perforce ワークスペースとファイルを同期する
    3 番目「P4LaunchUEEnv」Perforce パスを使用して Unreal Engine を起動する
    重要

    環境の順序は、適切な依存関係解決と認証情報フローに不可欠です。

  6. レンダリングステップを追加する: ステップセクションにP4RenderStep」を追加します。

    ApplyP4SecretsEnv、P4SyncSMFEnv、および P4LaunchUEEnv を順番に示すジョブデータアセット Environments 配列をレンダリングし、ステップの下に P4RenderStep を追加します。

ベストプラクティス

送信前チェックリスト

  • 認証情報: 認証情報を適切に設定します (「」を参照認証情報管理を実施する)。

  • Workspace: 仕様には、必要なすべてのビューマッピングが含まれます。

  • テスト: 大規模なジョブを送信する前に、小さなレンダリングタスクでテストします。

  • 依存関係: すべてのプロジェクトの依存関係が Perforce にあり、アクセス可能であることを確認します。

  • アクセス許可: ワーカーロールが Secrets Manager にアクセスできることを確認します。

パフォーマンスの最適化

チャンクサイズ設定:

チャンクサイズユースケースパフォーマンスへの影響
1~2 ショット複雑なショット、詳細なレビューが必要スループットの低下、品質管理の向上
4~8 ショットバランスの取れたワークロード、一般的なプロジェクト速度と管理可能性の最適なバランス
10 回以上シンプルなショット、バッチ処理最大スループット、最小オーバーヘッド

以下の追加の最適化を検討してください。

  • 依存関係: 不要なアセット依存関係を最小限に抑えて、同期時間を短縮します。

  • Workspace ビュー: Perforce ワークスペースビューを最適化して、必要なファイルのみを同期します。

モニタリングとデバッグ

  • ジョブログ: ジョブ実行ログで Perforce 同期プロセスをモニタリングします。

  • ワークスペースのステータス: ワークスペースの作成と同期の完了を確認します。

  • 依存関係の収集: 必要なすべてのアセットがキャプチャされたことを確認します。

  • パフォーマンスメトリクス: 同期時間とレンダリングパフォーマンスを追跡します。

トラブルシューティング

一般的な の問題と解決策

問題症状ソリューション
P4 接続の失敗認証エラー、タイムアウトPerforce 認証情報の検証、ネットワーク接続の確認、Perforce サーバーのアクセシビリティの検証
WorkSpace 同期エラー同期失敗、アクセス許可拒否Perforce ユーザーのアクセス許可をチェックする、ワークスペースの仕様を検証する、変更リストが存在することを確認する
依存関係がないレンダリングの失敗、アセットの欠落の確認MrqJobDependenciesDescriptor、ソフトリファレンスの収集の確認、Perforce のすべてのアセットの検証
パス解決の問題ファイルが見つかりませんエラーP4_CLIENT_DIRECTORY 変数の検証、環境の順序の確認、ワークスペースのルートパスの検証

デバッグステップ

  1. ジョブログを確認する: Perforce 同期環境ログで詳細なエラーメッセージを確認します。

  2. ワークスペースの検証: Perforce ワークスペースの仕様が正しいことを確認します。

  3. ローカルでテストする: 送信者マシンから Perforce オペレーションが機能することを確認します。

  4. アクセス許可の確認: ワーカーロールにシークレットアクセスがあることを確認します (Secrets Manager を使用している場合)。

カスタムホストの要件

このセクションでは、Unreal Engine で Deadline Cloud レンダリングのカスタムホスト要件を作成して使用する方法について説明します。

概要

ホスト要件は、特定のレンダリングステップを実行する資格があるフリートを定義します。UDeadlineCloudHostRequirements これらはアセット内に保存され、DeadlineCloudRenderStepアセットによって参照されます。

要件タイプ設定場所ユースケース
基本システム要件CPU/RAM/GPU フィールド特定のハードウェアを持つマシンへのレンダリングを制限する
カスタム金額の要件名前 + 最小/最大値数値リソースレベル (ライセンス、トークン、クォータ) を要求する
カスタム属性の要件属性 + 値リストステップを実行するために必要なフリートのカスタム属性
注記

目のアイコンを使用して要件を非表示にすると、MRQ 送信 UI でのみ要件が非表示になります。この要件は、ジョブの送信時も適用されます。

重要

カスタム金額要件とカスタム属性要件に使用される Nameおよび Attribute値は、公式の Open Job Description ドキュメント「Open Job Specifications」で定義されている有効な識別子と厳密に一致する必要があります。

ステップ 1: ホスト要件アセットを作成する

  1. Unreal Engine でコンテンツブラウザを開きます。

  2. 新しいアセットを作成する: 追加その他データアセットDeadlineCloudHostRequirements

  3. アセットに などの名前を付けますMyHostRequirements

ステップ 2: デフォルトの YAML テンプレートをロードする

  1. アセットの詳細パネルで、テンプレートへのパスフィールドを見つけます。

  2. デフォルトのテンプレート を選択しますPlugins/UnrealDeadlineCloudService/Content/Python/openjd_templates/host_requirements.yml

これにより、CPU、メモリ、GPU、OS、アーキテクチャなどの基本要件がロードされます。

注記

基本要件は削除できません。その値のみ変更できます。

ステップ 3: 基本 (システム) 要件を設定する

設定
オペレーティングシステムwindows
CPU アーキテクチャx86_64
vCPUs最小)16
GPUs (最小)1

Max = 0 の場合、その要件の上限はありません。

ステップ 4: カスタム金額要件を追加する

要件が数値 (ライセンス数、同時実行数の制限など) の場合に使用されます。

  1. 「カスタム金額要件」セクションを参照してください。

  2. 新しいエントリを追加して名前を設定します。例: amount.custom.license

  3. 最小値と最大値を設定します。

    • 最小: 1。

    • 最大: 0 (0 は無制限)。

ステップ 5: カスタム属性要件を追加する

タグとラベルに基づいてワーカーをフィルタリングするために使用されます。

  1. 「カスタム属性の要件」セクションを参照してください。

  2. 新しい属性名を追加します。例: attr.custom.gpu.vendor

  3. 一致するルールを選択します。

    • AllOf - すべての値が一致する必要があります。

    • AnyOf - 少なくとも 1 つ一致する必要があります。

  4. スペースで区切られた属性値を入力します。例: nvidia amd

ステップ 6: MRQ での可視性 (オプション)

各要件エントリには目のアイコンがあります。

行動
[Visible]要件は MRQ 送信 UI に表示されます。
[非表示]要件は非表示になっていますが、ジョブの送信時に含まれています

この設定は、技術的な制約を維持しながらアーティストの UI を簡素化するのに役立ちます。

ステップ 7: レンダリングステップに要件をアタッチする

  1. 関連するDeadlineCloudRenderStepアセットを開きます。

  2. ホスト要件フィールドを見つけます。

  3. 作成したアセット ( などMyHostRequirements) を割り当てます。

このステップを使用するすべての MRQ 送信で、ホスト選択ロジックが強制されるようになりました。

概要

ホスト要件アセットを使用すると、次のことができます。

  • レンダリングジョブを実行するワーカーマシンを制御します。

  • 最小リソースレベルを指定します。

  • 属性マッチングを使用して特定のワーカープールをターゲットにします。

  • テクニカルルールをそのまま維持しながら UI を簡素化します。

  • 複数の MRQ ステップで設定を再利用します。

この設定により、ジョブのルーティングの一貫性が向上し、正しいハードウェアでレンダリングが行われるようになります。

詳細設定

サービスマネージドフリートとカスタマーマネージドフリート

サービスマネージドフリート (SMF)

サービスマネージドフリートでは、Unreal Engine とアダプターは、デフォルトのキュー環境の deadline-cloud conda チャネルを使用して自動的に使用できます。この設定は、最も簡単なエクスペリエンスを提供します。

カスタマーマネージドフリート (CMF)

カスタマーマネージドフリートの場合、Unreal Engine とアダプターをワーカーホストに手動でインストールする必要があります。この設定は、より多くの制御を提供し、Perforce 統合などの追加機能をサポートします。詳細な手順については、「カスタマーマネージドフリート (CMF) ワーカーのセットアップ」を参照してください。

Unreal Engine レンダリング機能

Unreal Engine のレンダリングシステムは、以下を包括的にサポートします。

機能 説明 注意事項
映画レンダリングキュー 高品質のオフラインレンダリング ジョブ送信との統合
シーケンサー タイムラインベースのアニメーションシステム 自動ショット検出と処理
プロジェクトプラグイン カスタムプラグインのサポート 自動検出と包含
アセットの依存関係 コンテンツファイル管理 包括的なアセット追跡
スティッキーレンダリング ショット間のアプリケーションの永続性 マルチショットシーケンスのパフォーマンスの向上

すべてのレンダリング機能は、Unreal Engine 統合送信者によって自動的に検出および設定されます。アダプターは適切な依存関係処理を維持し、Unreal Engine を再起動せずに効率的なマルチショットレンダリングをサポートします。

オープンソースリソース

送信者とアダプターはオープンソースであり、GitHub で入手できます。