このページでは、パッケージ化に関する重要なコンセプトの概要、およびクック処理とパッケージ化のチュートリアルを提供します。 チュートリアルまでスキップするには、「コンテンツのクック処理:チュートリアル」および「プロジェクトのパッケージ化:チュートリアル」を参照してください。
パッケージ化とは?
パッケージ化とは、Unreal Engine プロジェクトをスタンドアローンの実行可能ファイル (.exe
) またはアプリケーションに変換するプロセスです。
パッケージ化プロセスでは、プロジェクトのコンテンツを、Windows、iOS、コンソールなどのターゲット プラットフォームで実行可能な形式にコンパイルします。 たとえば、マシンにゲームをダウンロードするとき、受け取る実行可能ファイルとデータ ファイルはパッケージ化され、オペレーティング システムとの互換性が確保されます。
パッケージ化は、開発パイプラインの複数の段階で行われます。
プロダクションおよびテスト
プロダクションおよびテストの間、パッケージ化を使用してプロジェクトの機能を検証することができます。 たとえば、品質保証 (QA) やパッケージ化されたプロジェクトのテストをモバイル プラットフォーム上で実行できます。
配信
配信 (シッピングとも呼ばれる) の間、パッケージ化を使用してリリース用の最終的なビルドを準備します。
ポストプロダクション
ポストプロダクションの間、パッケージ化を使用してダウンロード可能なコンテンツ (DLC) やパッチなどのコンテンツ更新を配布することができます。
最終的なビルドとは、ユーザーやプレイヤー向けの準備が整ったプロジェクトです。
サポートされているターゲット プラットフォーム
ターゲット プラットフォームとは、プロジェクトが実行されるオペレーティング システムまたはコンソールです。 Unreal Engine では以下のターゲット プラットフォームでのパッケージ化がサポートされています。
Windows、macOS、Linux などのデスクトップ プラットフォーム。
iOS、iPadOS、tvOS、Android などのモバイル プラットフォーム。
すべての主要なコンソール。
OpenXR、PSVR2、ARKit、ARCore、visionOS などの XR (エクステンデッド リアリティ) プラットフォーム。
追加のソフトウェア
Windows と macOS 向けの開発とパッケージ化には追加のソフトウェアは必要ありません。
コンソール向けの開発とパッケージ化には Unreal Engine のソース コードのビルドが必要であり、Epic Games Launcher によって取得したプリコンパイル済みのバージョンは使用できません。 ソース コードのビルドは GitHub からダウンロードできます。
Linux、モバイル プラットフォーム、XR プラットフォームなどの一部のターゲット プラットフォーム向けの開発とパッケージ化には、追加のソフトウェア開発キット (SDK) および Unreal Engine のコンポーネントが必要な場合があります。 ターゲット プラットフォーム向けの SDK の詳細については、「プロジェクトの共有とリリース」を参照してください。 Unreal Engine のコンポーネントの詳細については、「Unreal Engine をインストールする」を参照してください。
パッケージ化の仕組み
プロジェクトのパッケージ化とはビルド操作です。 ビルド、クック、ステージは、パッケージ化プロセスに関連するビルド操作です。
ビルド
このフェーズでは、プロジェクトのコード、プラグイン、およびバイナリがターゲット プラットフォーム向けにコンパイルされます。 プロジェクトで C++ を使用している場合、すべてのコードがバイナリにコンパイルされます。
クック
このフェーズでは、プロジェクトのアセット (ジオメトリ、マテリアル、テクスチャ、ブループリント、音声など) がターゲット プラットフォームで実行可能な形式として保存されます。 アセットは、ロードの効率を高めるように最適化されます。
ステージ
このフェーズでは、コンパイル済みコードおよびクック済みコンテンツはステージング ディレクトリにコピーされます。
ステージング ディレクトリとは、開発ディレクトリ外にあるドライブ上の一時フォルダです。パッケージ化プロセス中に指定します。
パッケージ化
このフェーズでは、コンパイル済みコードおよびクック済みコンテンツは、ステージング ディレクトリ内の配布可能なファイル セットにまとめられます。 たとえば、Windows では配布可能なファイルに、インストーラや実行可能ファイル、Pak (
.pak
) ファイルを含むフォルダが含まれています。(任意) デプロイ
プロジェクトは実行するターゲット プラットフォームにプッシュされます。
(任意) 実行
このフェーズでは、ターゲット プラットフォームの Unreal Editor からプロジェクトが起動します。 この操作は、ローカル デスクトップではないデバイスですばやくイテレーションとテストを実行する場合に最適です。
ビルド操作
各ビルド操作はパッケージ化プロセスに寄与する一方で、個別に実行することもできます。
各操作を個別に実行すると、開発のさまざまな段階で独自の有用性を持ちます。 たとえば、クック操作を実行すると、ゲーム レベルですべてのアセットではなく特定のアセットを最適化して保存できます。これは DLC やパッチなどのコンテンツ更新の配布に適しています。
各ビルド操作が有用となる状況の比較については、以下の表で確認してください。
ビルド操作 | 使用例 |
---|---|
ビルド | 開発中のコードのコンパイル。 |
クック | QA テストや配信に備えたプロジェクトの準備。 テストや配信に備えた DLC およびパッチの準備。 |
ステージ | QA テストや配信に備えたプロジェクトの準備。 |
パッケージ化 | QA テストや配信に備えたプロジェクトの準備。 |
デプロイ | コンソールやモバイルなど、ローカル デスクトップ コンピュータではないプラットフォームでのプロジェクトのテスト。 |
実行 | ローカル デスクトップ コンピュータではないプラットフォームでのプロジェクトのテスト。 ターゲット プラットフォームでシッピング済みのプロジェクトを実行するユーザー。 |
コンテンツをクック処理する
クック処理は、ゲーム コンテンツが Unreal Editor 外で実行できるように準備するビルド操作です。 パッケージ化プロセスの一部として実行されますが、個別に実行することもできます。
クック処理は、以下の理由で必要となります。
ゲーム コンテンツが最適化され、ターゲット プラットフォームと互換性があることを確認するため。
モバイルやコンソールなどのデバイスで、最終的なビルドを配信用やテスト用にパッケージ化する前に必要なため。
エディタ専用の形式をランタイム対応の形式に変換するため。
ランタイムとは、プロジェクトがターゲット プラットフォームで実行されている期間を指します。
クック処理プロセス中には以下のタスクが実行されます。
アセット (ジオメトリ、マテリアル、テクスチャ、ブループリント、音声など) がプラットフォーム固有の形式に変換されます。
可能な場合、アセットは圧縮されて最適化されます。
ディスク上のプロジェクトのサイズを縮小してパフォーマンスを向上させるために、未使用のデータは含まれません。
必要に応じて、ブループリントはネイティブ コードにコンパイルされます。
マップとレベルが処理されて最適化されます。
クックされたコンテンツは 1 つまたは複数の Pak (
.pak
) ファイルに格納されます。
クック処理中に最適化することで、プロジェクトのゲーム レベルやコードによって参照されていないコンテンツは削除されます。 たとえば、Unreal Editor のコンテンツ ブラウザに表示されるもののゲーム レベルには表示されないアセットはクックされません。
個別にクックすると、ファイルはステージング ディレクトリではなく、開発ディレクトリにコピーされます。
クック処理プロセスの詳細については、「コンテンツのクック処理」のドキュメントを参照してください。
Pak ファイルと Pak ファイルのチャンク化
Pak (.pak
) ファイルは、Unreal Engine がクックされたコンテンツを格納するために使用するアーカイブ ファイル形式です。 Pak ファイルはデフォルトのファイル タイプですが、プロジェクトのパッケージ化設定で他のアーカイブ ファイル タイプを検討することができます。
Pak ファイルは、チャンクという小さな Pak ファイルにさらに分けることができます。 チャンクを使用する場合は、チャンクに対して特定のアセットをプロジェクトから割り当てることができます。 これは以下のような状況で役立ちます。
完全にパッケージ化されたプロジェクトに入れたくない DLC コンテンツやパッチを分離する場合。
ストリーミング インストールの場合。 チャンクを使用すると、最初にダウンロードされるコンテンツの優先順位をカスタマイズできます。
ストリーミング インストールとは、インストールが終了する前にユーザーがシッピング済みのプロジェクトをインタラクティブに操作できる方法です。 コンソール ゲームに適しており、プレイヤーがすぐにゲームをプレイできます。
Pak ファイルおよび Pak ファイルのチャンク化の詳細については、「クック処理とチャンク化」および「チャンク用のアセットを準備する」を参照してください。
コンテンツのクック処理:チュートリアル
プロジェクトのコンテンツのクック処理には、以下の 2 つの方法があります。
クック処理の方法 | 説明 |
---|---|
バイザブック (デフォルト) |
|
オンザフライ |
|
バイザブックでクック処理する
バイザブックでコンテンツをクックするには、以下の手順に従います。
Unreal Editor のメイン ツールバーから、[Platforms (プラットフォーム)] メニューを開きます。
リストからターゲット プラットフォームを選択します。 これにより、選択したターゲット プラットフォームのコンテンツのみがクックされます。 [Content Management (コンテンツ管理)] の下で [Cook Content (コンテンツをクック)] をクリックします。
[Cook Content] をクリックすると、Unreal Editor の右下にポップアップ ダイアログが表示されます。 ここにはクック処理の進捗状況、完了、失敗の状態が表示されます。
コンテンツのクック中には、ダイアログに Cooking content for [target platform] ([ターゲット プラットフォーム] のコンテンツをクックしています) と表示されます。
クック処理が完了すると、ダイアログに Cooking complete! (クック処理が完了しました。) と表示されます。
オンザフライでクック処理する
オンザフライでのクックを有効にするには、以下の手順に従います。
Unreal Editor のメイン ツールバーから、[Platforms (プラットフォーム)] メニューを開きます。
メニューで [Enable cooking on the fly (オンザフライでのクックを有効にする)] チェックボックスをオンにします。
オンザフライでのクックを有効にすると、「バイザブックでクック処理する」と同じ手順でクック処理を実行できるようになります。
ビルド コンフィギュレーション
プロジェクトをパッケージ化するには、ビルド コンフィギュレーションを選択する必要があります。 ビルド コンフィギュレーションとは、プロジェクトのコンパイル方法、および利用可能なコードとコンテンツを決定するプリセットです。
各コンフィギュレーションは、次に示すように優先する要素が異なるため、開発のどの段階で役立つかも異なります。
Performance (パフォーマンス)
最適化のレベル
プロジェクト ファイルのサイズ
デバッグ ツールへのアクセス
たとえば、Shipping コンフィギュレーションは、プレイヤーがゲームを壊してしまうコンソール コマンドへのアクセス権を持つべきではないゲームを配信する場合に適しています。 Debug および Development はコンソール コマンドを含み、開発中にゲームを最適化およびテストするのに適しています。
すべてのビルド コンフィギュレーションの比較については、以下の表で確認してください。
ビルド コンフィギュレーション | 説明 | 開発段階 | 使用例 |
---|---|---|---|
Debug |
| Development このコンフィギュレーションは配信には適していません。 |
|
DebugGame |
| Development このコンフィギュレーションは配信には適していません。 |
|
Development (デフォルト) |
| Development このコンフィギュレーションは配信には適していません。 |
|
Test |
| デバッグ ツール全体のオーバーヘッドなしでビルドを内部でテストするために使用します。 |
|
Shipping |
| Distribution このコンフィギュレーションは開発には適していません。 |
|
ビルド コンフィギュレーションの詳細については、「ビルド コンフィギュレーションのリファレンス」を参照してください。
[Packaging (パッケージ化)] 設定
パッケージ化プロセスをカスタマイズするためのビルド コンフィギュレーションなどのプリセット、その他多くのオプションは、[Project Settings (プロジェクト設定)] > [Packaging (パッケージ化)] にあります。
このウィンドウには Unreal Editor 内の 2 つの場所からアクセスできます。
エディタのメイン ツールバーから、[Platforms] メニューをクリックします。 次に [Packaging Settings (パッケージ化設定)] をクリックします。
エディタのメニュー バーから、[Edit (編集)] > [Project Settings] をクリックします。 [Project Settings] ウィンドウが開きます。 左側のナビゲーション メニューで、[Packaging] をクリックします。
[Packaging] セクションには以下のオプションが含まれますが、これらのみに限定されません。
カスタム ビルド プリセット
ビルド コンフィギュレーション
ビルド ターゲット
デバッグ シンボル
実行可能ファイル
Localization (ローカライゼーション)
圧縮
クック
コンフィギュレーション ファイル (
.ini
)シェーダー
アーカイブ ファイル タイプ (Pak、チャンク、Utoc、Ucas)
ムービー (たとえば、ゲームプレイ前に再生されるプリレンダリング ムービー)
パッケージ化で使用可能なオプションの詳細な説明については、「プロジェクト」の「パッケージ化」セクションを参照してください。
プロジェクトのパッケージ化:チュートリアル
このチュートリアルでは、Package ビルド操作と Development ビルド コンフィギュレーションを使用して Windows 向けのプロジェクトをパッケージ化する方法について説明します。
以下のタスクを完了すると、前のセクションで学んだ理論を実践することができます。
チュートリアルの終了時には、実行、テスト、終了を行うことができるゲームの実行可能ファイルが完成します。 このワークフローは、プロダクション中に Unreal Engine のゲームにテストを実施する場合の状況を模倣しています。
このチュートリアルを完了するには、以下のものが必要となります。
Windows を実行するマシン
Unreal Engine
アリーナ シューター バリアントでファースト パーソン テンプレートを使用する Unreal Engine プロジェクト
開始する前に
Unreal Editor でプロジェクトを開きます。
ゲームのデフォルト マップを設定する
ゲームのデフォルト マップとは、パッケージ化されたプロジェクトを起動するときにロードされるマップです。 パッケージ化の前にすべてのプロジェクトにゲームのデフォルト マップを設定する必要があります。設定しないと、ランタイム時にプロジェクトが何もロードしません。
ゲームのデフォルト マップが設定されていない場合、プロジェクトの起動時に黒い画面が表示されます。 この規則の例外として、プロジェクト テンプレートを使用するとゲームのデフォルト マップが自動的に設定されます。
以下の手順でマップを変更します。
エディタのメニュー バーから、[Edit (編集)] > [Project Settings] をクリックします。
[Project Settings] ウィンドウの左側のナビゲーション メニューにある [Project (プロジェクト)] 見出しの下の [Maps & Modes (マップ & モード)] をクリックします。
[Default Maps (デフォルト マップ)] 見出しを展開して、[Game Default Map (ゲームのデフォルト マップ)] ドロップダウン メニューをクリックします。
[Lvl_ArenaShooter]
を検索して選択します。
コンテンツ ブラウザでマップを選択してから [Project Settings] ウィンドウで [Use Selected Asset from Content Browser (コンテンツ ブラウザから選択したアセットを使用する)] アイコンをクリックしてマップを設定することもできます。
ビルド コンフィギュレーションを設定する
ビルド コンフィギュレーションによってプロジェクトのコンパイル方法が決まります。 パッケージ化する前にすべてのプロジェクトのビルド コンフィギュレーションを設定する必要があります。 Unreal Engine では、変更しない限り Development コンフィギュレーションがデフォルトに設定されています。
[Project Settings] ウィンドウを表示したままで、左側のナビゲーション メニューから [Packaging] をクリックします。
[Project] 見出しを展開します。 [Build Configuration (ビルドコンフィギュレーション)] が [Development] に設定されていることを確認します。 設定されていない場合は、ドロップダウン メニューをクリックして [Development] に設定します。
Development コンフィギュレーションを使用すると、ランタイム中にインゲームのコンソールにアクセスできます。 このチュートリアルの後半ではインゲームのコンソールを使用してコンソール コマンドを実行します。
インゲームのコンソールとは、ランタイム中のエンジンとの通信を可能にするコマンド ライン インターフェースです。
パッケージ化したプロジェクトを作成する
パッケージ化により、Unreal Engine プロジェクトからスタンドアローンの実行可能ファイルやアプリケーションが作成されます。 この例では、ターゲット プラットフォームの Windows 向けにパッケージ化し、このチュートリアルの後半で起動する実行可能ファイルを作成します。
プロジェクトをパッケージ化するには、以下の手順に従います。
エディタのメイン ツールバーで、[Platforms] メニューをクリックします。 [Content/SDK/Device Management (コンテンツ/SDK/デバイス管理)] の下にはプラットフォームのリストが表示されています。 このチュートリアルでは、[Windows] を選択します。
開発しているプラットフォームやインストール済みの SDK に応じて、[Content/SDK/Device Management] の下にリストされるプラットフォームは異なります。
[Binary Configuration (バイナリコンフィギュレーション)] の下の新しいコンテキスト メニューで、[Use Project Setting (Development) (プロジェクト設定を使用 (Development))] が選択されていることを確認します。 括弧は、現在パッケージ化設定で選択されているビルド コンフィギュレーションを示します。
[Project Settings] に戻らずに、[Platforms] メニューからビルド コンフィギュレーションを素早く変更することができます。
[Content Management] の下で、[Package Project (プロジェクトをパッケージ化)] を選択します。
[Package project] ダイアログで、ドライブ上のステージング ディレクトリとして使用するフォルダを選択または作成します。プロジェクトのパッケージ化されたファイルはステージング ディレクトリに保存されます。 [Select Folder (フォルダを選択)] をクリックしてステージング ディレクトリを確定し、パッケージ化プロセスを開始します。
プロセスが開始すると、[Packaging project for [selected target platform] ([選択したターゲット プラットフォーム] のプロジェクトをパッケージ化しています)] というポップアップ ダイアログが Unreal Editor の右下に表示されます。
パッケージ化プロセス中にいつでも、ポップアップ ダイアログの [Show Output Log (出力ログを表示)] リンクをクリックして、[Output Log (出力ログ)] を開くことができます。 ログ ウィンドウには、ログ記録のエラーも含めて、パッケージ化プロセス中にエンジンが実行するタスクが表示されます。
プロセスが完了すると、パッケージ化が完了したか、失敗したかを示す次のいずれかのメッセージが表示されます。
(任意) パッケージ化プロセスをキャンセルする
ポップアップ ダイアログの [Cancel (キャンセル)] ボタンをクリックすることで、いつでもパッケージ化プロセスを停止できます。
キャンセルが正常に終了すると、Unreal Editor の右下に以下のメッセージが表示されます。
(任意) パッケージ化エラーをデバッグする
出力ログとメッセージ ログの両方にパッケージ化のエラーが表示されます。 パッケージ化プロセス中、ポップアップ ダイアログの [Show Output Log] リンクをクリックして、[Output Log] を開くことができます。
これらのログのいずれかには、エディタのメニュー バーの [Window (ウィンドウ)] > [Message Log (メッセージ ログ)] または [Window] > [Output Log] をクリックすることでも、いつでもアクセスできます。
出力ログ
出力ログとは、デバッグ情報、コンパイラのメッセージ、警告、エラー メッセージ、イベントとアセットのロードの詳細を表示する、エンジンからのリアルタイム メッセージのログです。
リアルタイムのログが表示されるため、パッケージ化の実行前、実行中、実行後の状況に関する追加のコンテキストの手がかりとなります。
メッセージ ログ
メッセージ ログには、エラーや警告などの重要なメッセージが格納されます。 デバッグの調査を開始する場所を特定するのに役立ちます。 左側のナビゲーション メニューの [Packaging Results (パッケージ化の結果)] 見出しの下を見て、対処する必要があるエラーや警告がリストされているかどうかを確認できます。
Running and Exiting Your Executable
プロジェクトをパッケージ化したら、以下の手順に従ってプロジェクトを実行、テスト、終了します。
パッケージ化されたプロジェクト ファイルを保存するステージング ディレクトリとして指定したフォルダに移動します。
このガイドで前述した Pak ファイルは、[Project Name (プロジェクト名)] > [Content (コンテンツ)] > [Paks (Pak)] の下のステージング ディレクトリにあります。
実行可能 (
.exe
) ファイルをダブルクリックしてプロジェクトを実行します。 実行可能ファイルは Unreal Engine プロジェクトと同じ名前になります。プロジェクトをロードすると、ゲームのデフォルト マップのウィンドウ表示バージョンが表示されます。 レベル内で移動してピックアップとインタラクトすることで、実行可能ファイルをテストできるようになりました。
実行可能ファイルを終了するには、バッククォート (`) キーを押してインゲームのコンソールのコマンド ラインを開きます。 コマンド ラインに次のいずれかのコンソール コマンドを入力し、Enter キーを押します。
quit
exit
実行可能ファイルの実行を終了する方法は、使用するビルド コンフィギュレーションのタイプによって異なります。 たとえば、Shipping コンフィギュレーション (インゲームのコンソールへのアクセス権がない) を使用する場合、アプリケーション内から終了するには、プロジェクトにボタンなどのユーザー インターフェース オプションを含める必要があります。
Unreal Engine のコンソール コマンドの詳細については、「コンソール コマンドのリファレンス」を参照してください。
Unreal Automation Tool を使用する
Unreal Automation Tool (UAT) は、Unreal Engine プロジェクトを操作できるホスト プログラムと一連のユーティリティ スクリプト ライブラリです。
たとえば、プロジェクトをパッケージ化すると Automation Tool がコマンド BuildCookRun
(すべてのビルド操作の基盤となるスクリプト) を実行します。 プロジェクトをパッケージ化するチュートリアルを完了すると、その手順中に Automation Tool が導入されます。
Automation Tool は、継続的インテグレーション (CI) パイプラインに対する自動化テストのクック処理や実行など、C# での無人プロセスのスクリプティングに役立ちます。
UAT の詳細については、「AutomationTool の概要」を参照してください。
プロジェクト ランチャーを使用する
プロジェクト ランチャーは、カスタム起動プロファイルの作成に使用するツールです。 カスタム起動プロファイルを使用すると、複数のプラットフォームに対するビルド、クック、パッケージ化、デプロイの各操作を 1 つの場所で自動的に制御できます。 これにより、開発およびテスト中の効率化とイテレーションを実現できます。
Unreal Engine のプロジェクト ランチャーにアクセスするには、エディタのメイン ツールバーの [Platforms] ボタンをクリックします。 [Options and Settings (オプションおよび設定)] の下の [Project Launcher (プロジェクトランチャー)] をクリックします。
プロジェクト ランチャーの使用方法の詳細については、「プロジェクト ランチャー」を参照してください。
プロジェクト配信
配信 (シッピング) とは、デジタル配信プラットフォーム上でユーザー向けにプロジェクトをリリースすることを指し、開発パイプラインの最終付近で行われます。
開発しているターゲット プラットフォームに応じて、多数のデジタル配信プラットフォームを利用できます。 たとえば、デスクトップ プラットフォーム向けのプロジェクトは Epic Games Store または Steam で配信できます。 または、iOS および Android 向けのプロジェクトは、App Store または Google Play Store で配信できます。
各デジタル配信プラットフォームでは、プロジェクトのシッピングに対して独自のワークフロー、要件、法的契約があります。 Unreal Engine プロジェクトを Epic Games Store にシッピングするとメリットがあります。 Epic Games Store へのシッピングの詳細については、「Epic Games で配信」を参照してください。
ターゲット プラットフォームおよび関連するデジタル配信プラットフォームの詳細については、「プロジェクトの共有とリリース」を参照してください。