ChunkDownloader のマニフェストとアセットをホスティングする

ローカルホスト ウェブサイトをセットアップする

前提トピック

このページは以下のトピックへの知識があることを前提にしています。まず以下のトピックの内容についてご確認をお願いします。

Unreal EngineChunkDownloader パッチ適用ソリューションでは、パッケージ ファイルをウェブ サーバーへ配布し、マニフェスト ファイル を作成する必要があります。マニフェスト ファイルは、ユーザーがダウンロードを期待するすべてのファイルと、それぞれの予測されるファイル サイズのリストを含むテキスト ファイルです。

パッチ適用プロセスの開始時に、ChunkDownloader が最初にユーザーのデバイスにダウンロードするものがマニフェストです。マニフェストはこの情報を使用して パッケージ ファイルを 1 つずつリクエストしてダウンロードします。予測されるファイル サイズにより、システムはファイルごとの進捗度を認識することができます。

1. 必要な設定

このガイドでは、「チャンク用のアセットを準備する」と「チャンク用のアセットを準備する」で準備したプロジェクトを使用します。

リファレンス ガイドで記述されているように、次の手順に従います。

  1. Blank テンプレート をベースにして C++ プロジェクト を作成します。このプロジェクトに「PatchingDemo」という名前を付けます。

  2. [Plugins (プラグイン)] メニューで ChunkDownloader プラグインを 有効にします。

  3. [Project Settings (プロジェクト設定)] > [Project (プロジェクト)] > [Packaging (パッケージ化)] で [Use Pak File (pak ファイルを使用)] と [Generate Chunks (チャンクの生成)] を有効にします。

  4. Visual Studio でプロジェクトの「[ProjectName]Build.cs」を編集します。

  5. Visual Studio プロジェクト ファイルを生成します。

  6. Visual Studio でプロジェクトをビルドします。

  7. BorisCrunchKhaimeraParagon のアセットをこのプロジェクトに追加します。

  8. 追加した各アセットの プライマリ アセット ラベル に基づいて データ アセット を調節します。

2.マニフェスト ファイルを作成する

マニフェスト ファイルを作成するには、次の手順に従います。

  1. プロジェクトのベース ディレクトリ内にフォルダを作成し、「PatchingDemoKey」という名前を付けます。この例では、このフォルダのパスは「PatchingDemo/PatchingDemoKey」です。

  2. BuildManifest-Windows.txt」というファイルを新たに作成します。

    ManifestFileWindows.png

  3. このファイルをテキスト エディタで開きます。最初の行に $NUM_ENTRIES フィールドを追加し、その値を追跡するパッケージ ファイルの数と同じに設定します。この例では 9 となります。

    BuildManifest-Windows.txt

    $NUM_ENTRIES = 9
  4. 新しく $BUILD_ID フィールドの行を追加し、値を「PatchingDemoKey」に設定します。この値は、マニフェスト ファイルを配置したフォルダ名と同じでなければなりません。

    BuildManifest-Windows.txt

    $BUILD_ID = PatchingDemoKey
  5. 次の行には、ダウンロードが必要なパッケージ ファイルの情報が書かれているはずです。各行には、各パッケージ ファイルについて、以下の情報を記述しています。

    • ファイル名

    • ファイル サイズ (バイト)。.pak ファイルを右クリックして プロパティ を表示すると見つかります。

      pakproperties.png

      ディスク上のサイズ ではなく ファイル サイズ を使用するようにしてください。

    • バージョン。これは任意の文字列に設定することができます。

    • インデックス。これは、プライマリ ラベル アセットに使用した チャンク インデックス の値と一致する必要があります。

    • ファイルのパス、マニフェスト ファイルが配置される場所との相対パスです。

    各フィールドは、タブ区切りで同じ行にある必要があります。そうでない場合、正しく解析されません。たとえば、pakchunk1001 の行は次のようになります。

    BuildManifest-Windows.txt

    pakchunk1001-Windows.ucas   462081824   ver01   1001    /Windows/pakchunk1001-Windows.ucas
  6. パッケージ ファイルを「/Windows/PatchingDemo/Content/Paks/」から「PatchingDemoKey」フォルダのマニフェストと一緒に並んでいる「Windows」という名前のサブフォルダ内にコピーします。

    PatchingDemoKeyFolder.png

このプロセスは、プロジェクトをパッケージ化するたびに、またはユーザーに提供するファイルの変更が必要となるたびに繰り返す必要があります。このサンプルにおける最終的なマニフェスト ファイルは、次のとおりです。

BuildManifest-Windows.txt

$NUM_ENTRIES = 9
$BUILD_ID = PatchingDemoKey
pakchunk1001-Windows.ucas   462081824   ver01   1001    /Windows/pakchunk1001-Windows.ucas
pakchunk1002-Windows.ucas   928512432   ver01   1002    /Windows/pakchunk1002-Windows.ucas
pakchunk1003-Windows.ucas   944181856   ver01   1003    /Windows/pakchunk1003-Windows.ucas
pakchunk1001-Windows.utoc   426692  ver01   1001    /Windows/pakchunk1001-Windows.utoc
pakchunk1002-Windows.utoc   606278  ver01   1002    /Windows/pakchunk1002-Windows.utoc
pakchunk1003-Windows.utoc   581683  ver01   1003    /Windows/pakchunk1003-Windows.utoc
pakchunk1001-Windows.pak    339 ver01   1001    /Windows/pakchunk1001-Windows.pak
pakchunk1002-Windows.pak    339 ver01   1002    /Windows/pakchunk1002-Windows.pak
pakchunk1003-Windows.pak    339 ver01   1003    /Windows/pakchunk1003-Windows.pak

チャンク インデックス 0 のファイルも「[Build_Folder]/Windows/PatchingDemo/Content/Paks」に配置されています。マニフェストファイルにそれらの情報を追加し、PatchingDemoKey にコピーする必要はありません。

3.ファイルをローカル テスト サーバーでホスティングする

ファイルをパッケージ化したので、ゲームがファイルをダウンロードできるようにサーバー上でホスティングする必要があります。また、ChunkDownloader に、サーバーの場所を指示する必要があります。デモンストレーション用に、この例では簡単なローカル ウェブサイトの設定方法を示します。

  1. Windows エクスプローラーで [Start Menu] を開き、[Turn Windows Features on or off (Windows の機能の有効化または無効化)] を検索して開きます。

    StartMenuWindowsFeatures.png

  2. [Windows Features] メニューで、[Internet Information Services (インターネット情報サービス)] を有効にして [OK] をクリックします。

    WindowsInternetInformationServices.png

  3. [Internet Information Services Manager (IIS Manager)] を開いて [Directory Browsing (ディレクトリをブラウズ)] を有効にします。

    WindowsDirectoryBrowsing.png

  4. ウィンドウの左側にある [Connections] メニューで、PC-[User] をクリックします。

    ConnectionsDefaultWebSite.png

  5. PC-[User] メニューで、[MIME Types] をダブルクリックします。

    IISMimeTypes.png

  6. [MIME Types] メニューで [Add] をクリックします。

    AddMimeType.png

  7. [Add MIME Type] ウィンドウで [File Name extension].pak に設定し、[MIME type] を「application/octet-stream」に設定します。.ucas.utoc にも同様の操作をします。

    AddMimeType2.png

    これにより、IIS はリクエストされると、ただファイルをダウンロードします。

    AddMimeType3.png

    1. [Default Web Site] フォルダに移動します。デフォルトでは「C:\inetpub\wwwroot」です。フォルダを作成し、「PatchingDemoCDN」という名前を付けます。

    DefaultWebSiteFolder.png

  8. PatchingDemoKey」フォルダを「PatchingDemoCDN」にコピーします。

    CopyPatchingDemoKey.png

  9. プロジェクトの DefaultGame.ini ファイルを開き、次の情報を追加して CDN Base URL を定義します。

    DefaultGame.ini

    [/Script/Plugins.ChunkDownloader PatchingDemoLive]
    +CdnBaseUrls=127.0.0.1/PatchingDemoCDN

    この URL は、ファイルが配置されているウェブサイトを ChunkDownloader に示しています。PatchingDemoLive 修飾子により、ターゲットのプラットフォームに応じて様々な CDN デプロイ コンフィギュレーションを使用できます。

このサンプルで使用している URL は、前述の手順で設定したローカル ウェブサイトのみを示しています。ローカル エリア ネットワークやリモート CDN を使用してサーバーに接続しようとする場合は、追加のコンフィギュレーションやセキュリティが必要になります。

最終結果

アセットをパッケージ ファイルに分割し、ローカル ウェブサイトにステージングできたので、Unreal Engine でパッチ適用ソリューションを使用してアクセスすることができるようになりました。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル