コンテナ がサポートされ、 Unreal Engine の機能が拡張されたことにより、新しいクラウド ベースの開発ワークフローやデプロイメント戦略を行えるようになりました。Unreal Engine のコンテナは、プロダクション パイプラインの強化、次世代クラウド アプリケーションの開発、前例のない大きい規模でのデプロイなどに用いることができます。
Unreal Engine のコンテナの公式サポートはまだベータ版ですが、 これは、 TensorWorks によって開発された既存のオープンソース インフラストラクチャと、世界中の開発者によってすでに本番環境で使用されている Unreal Containers コミュニティのイニシアチブに基づいてビルドされています。
コンテナとコンテナ イメージを理解する
Docker Web サイトの『コンテナとは何か?』のページで説明されていますが、コンテナとは、アプリケーションとそのサポート依存関係を、オンプレミスとクラウドの両方のコンピューティング インフラストラクチャ間で移植可能な単一の標準ユニットにパッケージ化する技術のことです。
仮想マシンと同様に、コンテナは コンテナ イメージ としてディスクに保存され、そこから 1 つ以上のコンテナを実行できます。仮想マシンとは異なり、コンテナは単一の基盤となるオペレーティングシステムのカーネルを共有しています。また、別々のコンテナ イメージ間で共通のデータも共有できます。これにより、計算量が減り、多数の同時デプロイが簡単になります。
コンテナについて詳しく知りたい場合は、クラウド プロバイダが提供している次のリソースをご確認ください。
開発およびランタイム コンテナ イメージ
Unreal Engine に含まれるコンテナ イメージには、開発イメージ と ランタイム イメージ の 2 種類があります。
開発イメージ には、Unreal Editor とビルド ツールが含まれています。これらは、Unreal Engine プロジェクトとプラグインのビルドとパッケージ化、シーケンサー を使用して作成されたシネマティックスのレンダリング、コマンドレットの実行など、エディタを必要とするタスクに使用します。開発イメージの配布は、Unreal Engine EULA の条件に準拠しています。
ランタイム イメージ には、パッケージ化された Unreal Engine プロジェクトの実行に必要な依存関係のみが含まれています。開発者は、パッケージ化された Unreal Engine プロジェクトのファイルを追加し、クラウド環境にデプロイできる新しいコンテナ イメージを作成することで、ランタイム イメージを拡張できます。ランタイム イメージにはエディタまたはビルドツールが含まれていないため、配布の際は開発イメージよりも制限が少なくなります。
開発イメージとランタイム イメージの違いの詳細については、Unreal Containers コミュニティハブ Web サイトにある「Development images .vs. runtime images」 ドキュメント ページを参照してください。
利用可能なコンテナ イメージ
Unreal Engine 4.27 以降、各エンジン リリースに公式の開発およびランタイム コンテナ イメージが含まれるようになりました。これらのコンテナ イメージのソースコードは、Unreal Engine ソースコードの「Engine/Extras/Containers
」ディレクトリにあります。また、GitHub、や、Unreal Engine ライセンシーの場合は Perforce からダウンロードすることもできます。すべてのコンテナ イメージのビルド済みバージョンは GitHub Container Registry に公開されており、ソースからビルドしなくてもダウンロードできます。
そこでは、以下の開発イメージが提供されています。
開発イメージ タイプ | 説明 |
---|---|
dev | Unreal Engine の完全な Linux 開発イメージです。Unreal Engine のインストール済みビルド、テンプレート プロジェクト、および完全なデバッグ シンボルが含まれています。 |
dev-slim | テンプレート プロジェクトとデバッグ シンボルを除外した、Linux 開発イメージの小さいバージョンです。 |
次のランタイム イメージが提供されます。
ランタイム イメージ タイプ | 説明 |
---|---|
runtime | GPU アクセラレーションの有無にかかわらず、コンテナ内でパッケージ化された Unreal Engine アプリケーションの実行に合理化されている Linux ランタイム イメージです。イメージ サイズを最小化するため、これは音声出力をサポートしていません。 このコンテナ イメージは、現在、NVIDIA の GPU を使用するマシンでの GPU アクセラレーションのみをサポートしています。 |
runtime-pixel-streaming | このイメージは、合理化された Linux ランタイム イメージが拡張され、オーディオ出力のサポートなど、Pixel Streaming アプリケーションに必要な依存関係も追加されています。その結果、このイメージはデフォルトのランタイム イメージよりも大きくなっています。とはいうものの、Windows ランタイム イメージと比較するとはるかに小さいです。 このコンテナ イメージは現在、NVIDIA の GPU を使用した GPU アクセラレーションのみをサポートしています。 |
runtime-windows | GPU アクセラレーションの有無にかかわらず、コンテナ内でパッケージ化された Unreal Engine アプリケーションを実行するための Windows ランタイム イメージです。Windows コンテナ イメージは、Linux の相応するイメージよりも大幅に大きく、Pixel Streaming アプリケーションに必要な依存関係が Windows オペレーティングシステム自体のサイズと比較して小さいことから、このイメージにはこれらの依存関係も含まれています。 Support for running Pixel Streaming applications inside GPU accelerated Windows containers is experimental and is not recommended for production use. |
開発イメージとランタイム イメージに加えて、Pixel Streaming などの特定のユースケース向けに次のイメージが提供されています。
特殊イメージ タイプ | 説明 |
---|---|
pixel-streaming-signalling-server | Pixel Streaming システムで使用される Cirrus シグナリングと Web サーバーを含む Linux コンテナ イメージです。 |
multi-user-server | Unreal Engine のマルチユーザー編集システムで使用されるサーバーを含む Linux コンテナ イメージです。 |
制限事項
Unreal Engine でのコンテナの公式サポートはまだベータ版であり、いくつかの制限があります。詳細については、「既知の制限事項」のページを参照してください。
使用可能なリソース
Unreal Engine でのコンテナ サポートの公式ドキュメントに加えて、次のリソースを利用できます。
- Unreal Containers コミュニティハブ には、関連するビデオやソースコード リポジトリへのリンクを含む広範なドキュメントがあります。コミュニティハブの Web サイトには、Unreal Engine コンテナの使用と開発に関するコミュニティ ディスカッション用の Discord サーバーもあります。