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

[File] メニューの [Package Project] から以下のアクションを実行することができます。
- プロジェクトを選択した プラットフォーム 用にビルドする
- ビルド コンフィギュレーションを [Development] と [Shipping] から選択する
- [Project Settings] の [Packaging Settings] と [Support Platforms] へアクセスする
Launch ボタンを使う
メイン ツールバーの [Launch] ボタンを使うと、現在のレベルをテスト用にビルドおよびデプロイし、すぐにタイトルをテストすることができます。

[Launch] ボタンの隣の矢印をクリックすると、ビルドのデプロイに必要なデバイスのリストがドロップダウンで表示されます。ここから選択することができます。

クリックすると、起動処理によって必要なコンテンツのクック、コードのビルド、選択したプラットフォームの起動を実行します。このビルド方法と使うと、プロジェクト全体のコンパイルや実行せずに、開発活動中の機能性を素早くテストすることができます。
プラットフォームの選択
デプロイしたプラットフォームが表示されない場合、またはメニューでグレーアウトされている場合は、次の点を確認してください。
- そのプラットフォームに対して正しい SDK がインストールされていること (必要な場合)、そして現在使用している英語版に対応していること。これは、ほとんどの場合、Engine/Source/Programmings/UnrealBuiltTools/Platforms の中のプラットフォームの「UEBuild.cs」ファイルで確認することができます。たとえば、Android に対応している SDK を確認したい場合は「UEBuildAndroid.cs」ファイルを調べます。
- Visual Studio 拡張機能または必要なファイルがインストールされていること。
- デバイスの接続に外部のツールを必要とするプラットフォームの場合 (コンソールなど)、外部のツールが適切に動作し、デバイスが確実に検知されること。
- UE4 の デバイス マネージャー を使って必要なデバイスを要求することで、ローカル マシンのみに使用されるようになります。
プロジェクト ランチャー
プロジェクト ランチャー を使うと、1 つの場所から様々なターゲット プラットフォームへのデプロイが可能になります。単一の起動プロファイルからも可能です。
デプロイ先となるプラットフォームにはそれぞれデフォルトのローンチ プロファイルが付いています (メイン ウィンドウに一覧表示されています)。カスタム ローンチ プロファイルの作成も可能です。いろいろな詳細設定を使った特殊な方法でタイトルをビルドすることができます。たとえば、コマンドライン引数の適用、DLC (ダウンローダブルなコンテンツ) やパッチ リリースのテストなどです。

詳細については、「プロジェクト ランチャーのリファレンス」を参照してください。
カスタム ローンチ プロファイル
プロジェクト ランチャーを使って、すべてのプラットフォームまたは特定のプラットフォームで使用可能な カスタム ローンチ プロファイル (Custom Launch Profile) を作成することができます。ビルド作業で行うクック、パッケージ、デプロイの方法を設定して、特別な方法でコンテンツをビルドすることができます。
ウィンドウの右側の プラス (+) 記号をクリックすれば、独自のカスタム ローンチ プロファイルの追加も可能です。

カスタム ローンチ プロファイルがすぐに開きます。後から簡単に認識できるように 名前 と 説明 を付けておきましょう。

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

Cook by the book
Cook by the book によるクックでは、すべて事前にクックしておきます。そのため、レベルをプレイしながら必要に応じてデプロイするのではなく、ビルドはクックされたアセットを一度にデプロイすることができます (クック サーバーを使用している場合)。個々のアセット上でイタレートをしない、または必要なクック済みのコンテンツがサーバーから配信されるのを待たずにフルスピードでゲームを実行したいデベロッパーに有用な方法です。通常、パフォーマンス テストとプレイテストで使われる方法です。
Cook by the book を実行する場合、ビルドに追加の設定は必要ありません。プロジェクト ランチャーを使って Custom Launch Profile を作成 し、[Cook] セクションのドロップダウン メニューで [by the book] を選択します。

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

例えば、
-nomcp
Cook by the book の詳細と使用できる設定については「プロジェクト ランチャーのリファレンス」を参照してください。
Cook on the fly

On the fly (COTF) でコンテンツをクックする場合、ゲームがプラットフォームにデプロイされるまでクックが遅くなります。実行ファイルとその他の基本ファイルのみがインストールされ、コンテンツが必要な時にそれらが Cook Server とのネットワーク通信を使ってオンデマンド リクエストを行います。COTF は、定期的にコンテンツを変更したり、ゲームのセクションを検証するだけのデベロッパーは、Cook on the fly を使うことでイタレーションを速く行うことができます。
このメソッドを使うには、まずプロジェクト全体が利用できるマシン上で Cook Server を起動する必要があります。クックはローカル マシン、あるいはリモート サーバーのいずれかで実行することができます。Cook Server は、以下の引数を UE4Editor-cmd.exe と一緒に使ってコマンドライン モードでエディタを起動すると動作します。
UE4Editor-cmd.exe [FullAbsolutePathToProject.uproject]-run=cook -targetplatform=Windows -cookonthefly
デベロッパーのローカル マシンで、プロジェクト ランチャーと [Deploy] セクションで Custom Launch Profile にアクセスしてメソッドを [File Server] に設定します。または、Default Deploy Platform を使って単一のプラットフォームを選択したり、トグルを使って複数のプラットフォームのビルドやデプロイすることもできます。

実行ファイルがコンテンツのロード元を知るためには、Cook Server を実行しているマシンの IP アドレスを知らせる必要があります。そのためには、以下のコマンドライン引数をクライアント コマンドライン上でパスする必要があります ( x.x.x.x はホストの IP)。
-filehostip=123.456.78.90
Custom Launch Profile の [Launch] セクションの中の [Additional Command Line Parameters] テキスト ボックスで指定できます。IP アドレスを指定しないと、ビルドはは既存のローカル ファイルからロードし、Cook Server へ接続しようとしません。

Cook on the fly の詳細と使用できる設定については「プロジェクト ランチャーのリファレンス」を参照してください。
ビルドをデプロイする
プロジェクト ランチャーからビルドをデプロイするには、プロジェクトのクックとパッケージ化を完了させておかなければなりません。このタイプのビルドをプラットフォームにデプロイする方法がいくつかあります。Custom Launch Profile の [Deploy] セクションで、ビルドのデプロイ方法を設定します。

- [File Server] は実行時にコンテンツのクックおよびデプロイを行います。
- [Copy to Device] は、クック済みビルド全体をデバイスにコピーします。
- [Do Not Deploy] は、クックとパッケージ化が完了すると、ビルドをデバイスには一切デプロイしません。
- [Copy Repository] は、指定したファイル位置からどんなデバイスへもビルドをコピーします。
デプロイ方法の詳細、および使用可能な設定については「プロジェクト ランチャーのリファレンス」を参照してください。