パッチ適用中に、Unreal Engine (UE) により、すべてのポストクック コンテンツが初めてリリースしたクック済みコンテンツと比較され、その結果を基にしてパッチに含める対象が決定されます。コンテンツの最小構成要素はパッケージ (.ulevel
や .uasset
など) で、パッケージ内で何かを変更すると、パッケージ全体がこのパッチに含まれます。パッチの PAK (.pak
) ファイルをユーザーに届けるために使用する方法は、配布プラットフォームで決まりますが、この手順では更新コンテンツを含むだけのかなり小さい PAK ファイルを作成できます。
バージョン付きリリースを使用して、前にリリースしたプロジェクトにパッチを適用できます。以下の点に留意してください。
リリース時にシリアル化コード パスをロック。
リリースしたクック済みコンテンツを保持 (パッチ パッケージ ファイルに含める対象コンテンツを決定するため UnrealPak ツールではこれを使用)。
ランタイム時に、双方の PAK ファイルをマウントし、高優先度のパッチ ファイル内のコンテンツが最初にロードされます。
Unreal Engine で作成されたプロジェクトにパッチを適用する複数の方法があります。ここで使用する方法は、プラットフォーム共通 で、つまり技術的にはどのプラットフォームでも使用できます。ただし、この方式を意図的に使用できるプラットフォームは Windows と Xbox One だけです。他のプラットフォームには個別のパッチ適用方法があります。プラットフォーム固有の方式に関するドキュメントは、開発を計画しているプラットフォームのセクションにあります。
この方法は、結果として大量のデータ ストレージを使用することになります。この方法はすべての古いファイルを保持し、ゲームに対して最新のファイルを示すだけであることがその理由です。多くの場合、プラットフォーム固有の方式は使用するスペースが少なります。
プロジェクト ランチャーを使用してパッチを作成する方法
この例では UE プロジェクトのパッチの作成に関する情報を示します。
パッチ テスト用の起動プロファイルを作成する
プロジェクトのベース ビルドがある場合、[Project Launcher (プロジェクトランチャー)] でパッチの 起動プロファイル を作成できます。パッチのテスト バーションとして起動プロファイルを作成し、実際のパッチ リリース用に別の起動プロファイルを作成することがあります。
プロジェクト ランチャー を開くには、[Platforms (プラットフォーム)] > [Project Launcher (プロジェクトランチャー)] をクリックします。
新しい カスタム起動プロファイル を [+Add (+追加)] ボタンで作成します。この最初の起動プロファイルは、パッチのテスト バーション専用です。[Name (名前)] および、わかりやすい [Description (説明)] を入力します。
プロジェクトランチャーには、起動プロファイルをカスタマイズできる多数の設定があります。さらに各設定をカスタマイズするには、[Show Advanced (詳細設定を表示)] をクリックし、ドロップダウン メニューで [Advance Settings (詳細設定)] を設定します。さらに [Cook (クック)]、[Package (パッケージ)] または [Deploy (デプロイ)] の各セクションの一番上のドロップダウンをクリックして、利用可能なオプションから選択できます。
起動プロファイル セクション名
詳細設定の説明
Project (プロジェクト)
使用する特定プロジェクトをブラウズする、つまり現在のプロジェクトにパッチを適用するため 任意のプロジェクト を使用できます。
Build (ビルド)
オプションとして [DebugGame (デバッグゲーム)]、[Development (開発)] および [Shipping (出荷)] があります。[Advanced Settings (詳細設定)] ドロップダウンをクリックすると、パッチ プロセスの一部として Unreal Automation Tool (UAT) をビルドするように設定できます。
Cook (クック)
ドロップダウンをクリックして、[Cook by the book (バイザブック)] または [Cook on the fly (オンザフライ)] を選択します。[Do Not Cook (クックしない)] も選択できます。[Advanced Settings] ドロップダウンをクリックして、[Only Cook Modified Content (修正済みコンテンツだけをクック)] をオンにできます。[Advanced Settings] の追加オプションとして、[Release/DLC/Patching (リリース、DLC、パッチの設定)] が [Cook by the Book] を選択したときに表示されます。
Package (パッケージ)
オプションとして、[Package and Store Locally (ローカル環境にパッケージ化および格納)]、[Package and Store in Repository (リポジトリにパッケージ化および格納)] または [Do Not Package (パッケージ化しない)] があります。
Archive (アーカイブ)
ビルドのアーカイブを作成する場合は、このセクションのチェックボックスをオンにします。
Deploy (デプロイ)
オプションとして、[Copy to Device (デバイスにコピー)]、[Copy Repository (リポジトリをコピー)]、[File Server (ファイルサーバー)] または [Do Not Deploy (デプロイしない)] があります。
Launch (起動)
オプションとして、[Using Default Role (デフォルトロールを使用)]、[Using Custom Roles (カスタムロールを使用)] および [Do Not Launch (起動しない)] があります。
起動プロファイルをカスタマイズする
新しい起動プロファイルをカスタマイズするには以下の手順に従います。
[Project] セクションで、ドロップダウンをクリックして、対象プロジェクトをブラウズします。
[Build] セクションで、ドロップダウンをクリックして、[Shipping] を選択します。オプションとして必要な場合に、[Advanced Settings] を展開して、パッチ プロセスの一部として Unreal Automation Tool (UAT) をビルドします。これはパッチをビルド マシンで作成しているためです。
[Cook] セクションで、ドロップダウンをクリックして、[By the Book] を選択します。これにより [Cooked Platforms (クックしたプラットフォーム)]、[Cooked Cultures (クックしたカルチャー)] および [Cooked Maps (クックしたマップ)] の各オプションを利用できます。対象プロジェクトのクック設定をオンにします。
クック設定ではパッチでプロジェクト内のどのコンテンツをクックするのかを決定します。さらにそのコンテンツがオリジナルのパッケージ ファイルと比較されます。
矢印アイコンをクリックして、[Release/DLC/Patching Settings] を展開します。
[Release Version This is Based On (これが基づくリリースバージョン)] に、リリース バージョンを入力します。[Generate Patch (パッチを生成)] のチェックボックスをオンにします。
矢印アイコンをクリックして、[Advanced Settings] を展開します。次のチェックボックスがオンであることを確認します。さらに対象の個別プロジェクトの配布方式で必要なオプションも設定します。
Compress Content (コンテンツを圧縮)
Save Packages Without Versions (バージョン情報なしでパッケージを保存する)
Store All Content in a Single File (UnrealPak) (すべての単一ファイル (UnrealPak) に格納)
さらに [Advanced Settings] で、[Cooker Build Configuration (クッカビルド設定)] のドロップダウンをクリックして、[Shipping] を選択します。
[Package] セクションで、ドロップダウンをクリックして、[Package and Store Locally] を選択します。ローカル ディレクトリはデフォルトで指定されています。変更する場合は、[Browse (ブラウズ)] をクリックして、パッケージを格納するディレクトリを選択します。
[Deploy] セクションで、ドロップダウンをクリックして、[Do Not Deploy] を選択します。
パッチをテストするために [Do Not Deploy] を選択します。パッチのテストが完了し、出荷バージョンをビルドする準備ができたら、このセクションの手順を実行して、異なるデプロイ方式を選択します。
パッチのテスト バージョンを起動する
右上隅にある [Back (戻る)] ボタンで、メインのプロファイル ウィンドウに戻ります。
パッチ適用 プロファイルの隣にある起動アイコンをクリックします。
プロジェクト ランチャーによりビルド、クック、パッケージ化プロセスが順に実行されます。プロジェクトが複雑な場合には、時間がかかることがあります。
処理が完了したら、ウィンドウを閉じる、または [Done (完了)] をクリックします。
パッチの出荷用に起動プロファイルを作成しカスタマイズする
新しいカスタム起動プロファイルを [+ Add] ボタンで作成します。このプロファイルはパッチの出荷用であるため、そのように [Name] とわかりやすい [Description] を入力します。
起動プロファイルをカスタマイズする セクションの手順 1 から 11 を実行します。必要な場合、特に出荷する内容とテスト バージョンが大幅に異なる場合は、カスタム設定を変更します。
[Deploy] セクションで、ドロップダウンをクリックして、使用するデプロイメント オプションを選択します。
出荷用起動プロファイルの作成が完了したら、パッチのテスト バージョンを起動する セクションの手順を実行します。
コマンド ラインでパッチを作成する方法
プロジェクト ランチャーはプロジェクトに対するプラットフォーム共通パッチを作成するための唯一の方法ではありません。コマンドラインから UAT を使用してパッチを作成することもできます。
まずベース ビルドを作成する必要があります。一般にこれは出荷ビルドです。このビルドを作成するときに、コマンド ライン パラメータ -Createreleaseversion=<releasenumber>
を使用する必要があります。これによりプロジェクトのバージョン 1.0 が作成されます。
次に例を示します。
BuildCookRun <normalbuildcookrunarguments> -build -cook -stage -pak -createreleaseversion=1.0
パッチを生成するときに必要な <ProjectPath>\Releases\1.0\
ディレクトリにビルドが保存されます。
バージョン番号付きベース ビルドが準備できたら、この前のビルドをベースにしたパッチを作成できます。このパッチを作成するとき、コマンド ライン パラメータ -basedonreleaseversion=<releasenumber>
を使用する必要があります。
次に例を示します。
BuildCookRun <normalbuildcookrunarguments> -build -cook -stage -pak -generatepatch -basedonreleaseversion=1.0
パッチをインストールする
プラットフォーム共通パッチ適用プロセスでは、[ProjectName]\Saved\StagedBuilds[PlatformName][ProjectName]\Content\Paks
ディレクトリに PAK ファイルを作成します。プロジェクトを作成した対象プラットフォームにより、ユーザーに配布する必要がある新規または変更コンテンツが含まれます。たとえば Windows では、インストーラーを作成し、PAK ファイルをユーザーの [ProjectName]\Releases[VersionNumber][PlatformName]
フォルダ (オリジナルの PAK ファイルの隣) にコピーします。
パッチ PAK ファイルは、FPakPlatformFile::GetPakFolders
に設定された PAK 検索ディレクトリのいずれかで対象デバイスに見つかったときに、自動でマウントされます。パッチの優先度を設定するために、マウント システムはファイル名の末尾にある _p
を使用して、他の PAK ファイルに対する優先度を決定します。名前を変更できますが、ファイル名の末尾に _p.pak
を含める必要があります。
同じリリース バージョンから 2 個のパッチをビルドする場合、両方とも完全なパッチとして生成されます。したがって、2 番目のパッチをインストールするときに、1 番目のパッチを除去する必要があります。