Unreal Engine (UE) プロジェクトを操作するための一連のユーティリティ スクリプトを利用するために、パッケージ化プロセスの一環として Automation ツール (Unreal Automation Tool または UAT とも呼ばれます) が使用されます。Automation ツールでは、パッケージ化に BuildCookRun と呼ばれる特定のコマンドを使用します。このコマンドは、プラットフォーム向けにコンテンツをクックして、配布用にプラットフォームのネイティブ形式にパッケージ化し、デバイスにデプロイして、(可能な場合は) プロジェクトを自動的に実行します。ただし、プロジェクトのパッケージ化は UAT だけが行えるわけではなく、UE ツールバー の [Platforms (プラットフォーム)] ボタンを使って利用可能なプラットフォームを選択したり、コマンドラインで特定のプラットフォーム向けにコンテンツをクックおよびパッケージ化したりすることもできます。
UAT の BuildCookRun コマンドの一環として、以下で説明するさまざまなステージがパッケージ化パイプラインに存在します。
- ビルド: 選択したプラットフォーム向けに実行可能ファイルをコンパイルします。
- クック: UE を特殊なモードで実行することでコンテンツをクックします。
- ステージ: 実行可能ファイルとコンテンツをステージング領域 (開発ディレクトリ外のスタンドアローンのディレクトリ) にコピーします。
- パッケージ化: プロジェクトをプラットフォームのネイティブ配布形式にパッケージ化します。
- デプロイ: ビルドをターゲット デバイスにデプロイします。
- 実行: パッケージ化されたプロジェクトをターゲット プラットフォームで開始します。
事前定義されたタスクのリストについては、「BuildGraph スクリプト タスク」リファレンス ページを参照してください。
パッケージ化の方法
コンテンツをターゲット プラットフォームにさまざまな方法でデプロイして、テスティングやデバッグ、製品リリースに向けた準備をすることができるため、パッケージのテストには以下のさまざまな方法を使用できます。
- UE ツールバー を使って、テスティングとデバッグのために、現在ロードしている レベル を部分的にすばやくテストする。
- プロジェクト ランチャー でデフォルト プロファイルを使用するか、カスタム仕様のものを作成して、プロジェクトの最新ビルドのプロファイリングやデバッグを実行する。
- すでにパッケージ化済みのゲームを、コンソールやモバイル デバイスなどのプラットフォームにデプロイする。
以下のセクションでは、上記のパッケージ化の方法の詳細と、これらの方法を使ってゲームをパッケージ化する方法について説明します。
UE ツールバー
UE ツールバー の [Platforms (プラットフォーム)] ボタンを使って、プロジェクトをパッケージ化するプラットフォームを選択します。このオプションを使ってプロジェクトをパッケージ化すると、パッケージ化されたプロジェクトが選択したフォルダに保存されますが、デバイスにはデプロイされません。

[Platforms] ドロップダウン メニューから、以下のアクションを実行できます。
-
利用可能なデバイス上でプロジェクトをビルドして起動する。クリックすると、起動プロセスによって必要なコンテンツが自動的にクックされてコードがビルドされ、選択したプラットフォームで起動します。このビルドは開発中に機能をテストする迅速な方法であり、何かをテストするたびにプロジェクト全体をコンパイルして実行する必要はありません。
-
ターゲット プラットフォームを選択してその [Build Configuration (ビルドコンフィギュレーション)] ([Development (開発)] や [Shipping (出荷)] など) を調整する。
UE 5.4.0 では、[Use Project Setting (プロジェクト設定を使用)] オプションでパッケージ化しようとする場合、エディターを起動すると、設定を変更しても [Project Settings (プロジェクト設定)] > [Packaging (パッケージ化)] で設定された構成が使用されるという既知の問題があります。この問題を解決するには、エディタを再起動して新しいビルド コンフィギュレーションを有効にするか、[Use Project Setting] ではなく [Platforms (プラットフォーム)] メニューからバイナリ コンフィギュレーションを 1 つ選択します。この問題は、UE 5.4.1 では解決しています。
-
[Project Launcher (プロジェクト ランチャー)]、[Device Manager (デバイスマネージャー)]、[Packaging Settings (パッケージング設定)]、[Supported Platforms (対応プラットフォーム)] にアクセスする。
デプロイしたプラットフォームが表示されない場合や、メニューでグレーアウトされている場合は、次の点を確認してください。
- 当該のプラットフォームに対して正しい SDK がインストールされていること (必要な場合) と、現在使用しているエンジンのバージョンがサポートされていること。ほとんどの場合は、「Engine/Source/Programmings/UnrealBuiltTools/Platforms」にあるプラットフォームの「UEBuild.cs」ファイルで確認できます。たとえば、Android でサポートされている SDK のバージョンを調べるには、「UEBuildAndroid.cs」ファイルを確認します。
- 必要な Visual Studio 拡張機能またはファイルがインストールされていること。
- デバイスの接続に外部ツールが必要な場合 (コンソールなど) は、外部ツールが適切に動作してデバイスが検出されること。
- エンジンの デバイス マネージャー を使って必要なデバイスを「要求」すること。これにより、そのデバイスがローカル マシンのみで使用可能になることが確実になります。
プロジェクトランチャー
プロジェクト ランチャー では、一つの場所または単一の起動プロファイルから、さまざまなプラットフォームに向けてデプロイすることができます。プロジェクト ランチャーを起動するには、[Platforms] > [Project Launcher] をクリックします。
デプロイ先となるプラットフォームには、それぞれ独自のデフォルト起動プロファイル (メイン ウィンドウに表示されます) が備わっています。 カスタム仕様の起動プロファイルを作成することもできます。これにより、さまざまな詳細設定を使用して、特定の方法でプロジェクトをビルドできるようになります。 これには、コマンドライン引数の適用や、ダウンロード可能なコンテンツ (DLC) およびパッチ リリースのテストなどがあります。

詳細については、「プロジェクト ランチャー」リファレンス ページを参照してください。
カスタム仕様の起動プロファイル
プロジェクト ランチャーでは、すべてのプラットフォームまたは特定のプラットフォームで使用可能な カスタム仕様の起動プロファイル を作成できます。カスタム仕様のプロファイルを使用することで、実行可能なビルド操作を使ったクック、パッケージ化、デプロイの方法を設定して、コンテンツを特定の方法でビルドすることができます。
独自のカスタム仕様の起動プロファイルを追加するには、ウィンドウの右側にある [+ Add (+ 追加)] ボタンをクリックします。

ボタンをクリックすると、カスタム仕様の起動プロファイルがすぐに開きます。後で見つけやすいように、名前 と 説明 を加えます。

コマンドライン
Automation ツール を使用すると、コマンドラインを使ってゲームをクックおよびパッケージ化することができます。すべてのビルド操作は UAT で実行されるので、「RunUAT.bat」ファイルを使って、UAT を有効な引数とともにコマンドラインで直接実行することができます。
RunUAT ファイルは Engine/Build/BatchFiles
にあります。 Windows には「RunUAT.bat」ファイル、Mac/Linux には「RunUAT.sh」を使用します。
基本的なクックは、「UnrealEditor.exe」または「UnrealEditor-cmd.exe」ファイルのいずれかの後に以下のコマンドライン引数を加えることで実行できます。
UnrealEditor.exe [GameName or .uproject]-run=cook -targetplatform=[Platform] -cookonthefly -map=[Map Name]
コマンドレットは -run=cook で指定する必要があります。また、クック対象のプラットフォームも指定する必要があります。これで、指定したプラットフォーム向けにクックされたデータが生成されて、以下の場所に保存されます。
[UnrealEditor Project]/Saved/Sandboxes/Cooked-[Platform]
手動でのコマンドライン引数の指定は複雑になりがちで、誤ってエラーを起こす可能性も高くなります。そのため、カスタム仕様の起動プロファイル を使ってビルド用のコマンドラインを正確に生成することを推奨します。カスタム仕様の起動プロファイルに入力したパラメータによってコマンドラインが自動的に生成されて、プロジェクトのクックおよびビルドで使用される際に [Output Log (出力ログ)] ウィンドウに表示されます。BuildCookRun に続くテキストは、「RunUAT.bat」を使ってコマンドライン引数として直接パスすることができます。
以下は、プロジェクト ランチャーで生成された出力と、「RunUAT.bat」で使用するために手動で作成した同等のコマンドラインから生成された出力の例です。
-
プロジェクト ランチャーのログ ウィンドウ
Automation.ParseCommandLine: Parsing Command Line: -ScriptsForProject=MyProject.uproject BuildCookRun -project=MyProject.uproject -clientconfig=Development
-
手動での作成
[UnrealEngineRoot]/Engine/Build/BatchFiles/RunUAT.bat BuildCookRun -project=MyProject.uproject -clientconfig=Development
詳細については「コンテンツのクック処理」ページを参照してください。
コンテンツのクック
UE では、コンテンツはサポートされている特定の形式 (テクスチャ データは PNG、オーディオは WAV など) で格納されますが、このコンテンツが目的のターゲット プラットフォームで使用可能な形式であるとは限りません。クック とは、UE で使用していた アセット を、デプロイ対象のプラットフォーム上で読み取り可能なアセットに変換する処理を指します。場合によっては、クック済みコンテンツが、特定のプラットフォームのみで読み取り可能な独自のプロプライエタリ形式 (コンソールなど) に変換されることがあります。
さまざまなプラットフォームに向けてコンテンツをクックするには、コマンドライン を使用するか、プロジェクト ランチャー とその UE インターフェースを使用します。プラットフォームによっては、コンテンツをデバイス上で正しく機能させるために、すべてのコンテンツを事前にクックしておく必要があります。このような場合は、対象のプラットフォームについて確認する必要があります。
プロジェクトのコンテンツは、By the book (バイザブック) と On the fly (オンザフライ) という 2 つの方法でクックできます。

By the Book によるクック
By the book によるクック (CBTB) では、クック プロセス全体を事前に実行して、レベルをプレイしながら (クック サーバーを使用している場合)、クック済みのアセットを必要に応じてではなく、すべて一度にビルドでデプロイすることができます。これは、個々のアセット上で反復作業を行わないデベロッパーや、必要なクック済みのコンテンツがサーバーから配信されるのを待たずに、ゲームをフルスピードで実行したいと考えるデベロッパーに便利なオプションです。通常、この方法はパフォーマンス テスティングとプレイテストで使用されます。
CBTB を実行する場合は、ビルドに追加の設定を行う必要ありません。プロジェクト ランチャーを使って カスタム仕様の起動プロファイルを作成 し、[Cook (クック)] セクションのドロップダウン メニューで [By the book (バイザブック)] を選択します。

ゲーム固有のコマンドラインを追加するには、[Advanced Settings (詳細設定)] を展開して、その引数を [Additional Cooker Options (追加のクッカ オプション)] に追加します。

次に例を示します。
-nomcp
このクック方法と利用可能な設定の詳細については、「プロジェクト ランチャー」リファレンス ページを参照してください。
On the Fly によるクック

On the fly によるクック (COTF) を選んだ場合は、ゲームがプラットフォームにデプロイされてからコンテンツがクックされます。実行ファイルとその他の基本ファイルのみがインストールされ、コンテンツが必要になると、それらが クック サーバー とのネットワーク通信を使ってオンデマンド リクエストを行います。COTF を使用することで、定期的にコンテンツを変更したり、ゲームの一部のみを検証したりするデベロッパーは、反復作業をより迅速に行うことができるようになります。
On the fly でクックするには、まずプロジェクト全体にアクセス可能なマシン上でクック サーバーを起動する必要があります。これは、クックを実行するローカル マシンかリモート サーバーのいずれかになります。クック サーバーは、以下の引数を「UnrealEditor-cmd.exe」とともに使用して、UE をコマンドライン モードで起動することで実行できます。
UnrealEditor-cmd.exe [FullAbsolutePathToProject.uproject]-run=cook -targetplatform=Windows -cookonthefly
デベロッパーのローカル マシンで、プロジェクト ランチャーから カスタム仕様の起動プロファイル にアクセスし、その [Deploy (デプロイ)] セクションでデプロイ方法を [File Server (ファイル サーバー)] に設定します。任意で、[Default Deploy Platform (デフォルトのデプロイ プラットフォーム)] を使って単一のプラットフォームを選択したり、各トグルを使って複数のプラットフォームにビルドおよびデプロイしたりすることもできます。

実行可能ファイルでコンテンツのロード元を特定できるようにするには、クック サーバーを実行するマシンの IP アドレスをそのファイルに知らせる必要があります。 そのためには、以下のコマンドライン引数をクライアントのコマンドライン上でパスする必要があります ( x.x.x.x はホストの IP)。
-filehostip=123.456.78.90
この引数は、カスタム仕様の起動プロファイルの [Launch (起動)] セクションにある [Additional Command Line Parameters (追加コマンドラインパラメータ)] テキスト ボックスで指定できます。IP アドレスを未指定のままにすると、ビルドは既存のローカル ファイルからロードして、クック サーバーには接続しようとしません。

このクック方法と利用可能な設定の詳細については、「プロジェクト ランチャー」リファレンス ページを参照してください。
ビルドをデプロイする
プロジェクト ランチャーからビルドをデプロイするには、クック済みでパッケージ化されたプロジェクトが必要です。このようなビルドをプラットフォームにデプロイするには、いくつかの方法があります。カスタム仕様の起動プロファイル の [Deploy] セクションで、ビルドのデプロイ方法を設定します。

- File Server (ファイル サーバー): デバイスでコンテンツが必要になった際に、そのコンテンツをランタイム時にクックしてデプロイします。
- Copy to Device (デバイスにコピー): クック済みのビルド全体をデバイスにコピーします。
- Do Not Deploy (デプロイしない): クックとパッケージ化が完了しても、ビルドはデバイスにデプロイされません。
- Copy Repository (リポジトリをコピー): 指定したファイルの場所からビルドをコピーして、任意のデバイスにデプロイします。
このデプロイ方法と利用可能な設定の詳細については、「プロジェクト ランチャー」リファレンス ページを参照してください。