このガイドでは、小さなサンプル プロジェクトまたはテスト プロジェクトを仮想化する方法について説明します。
1. 必要な設定
このガイドは、特定のプラットフォームやテンプレート プロジェクトを必要としません。どのような Unreal Engine プロジェクトでもこのガイドに沿って進めることができます。ただし、Perforce をソース コントロールとして使用するようにプロジェクトを設定する必要があり、エディタ内のチェックイン ワークフロー を設定する必要があります。Perforce セットアップの詳細については、「ソース コントロールとして Perforce を使用する」および「Unreal Editor 内のソース コントロール」を参照してください。
また、プロジェクトが高速キャッシュ ストレージとして機能するように、共有の派生データ キャッシュ (DDC) を設定する必要があります。詳細については、「派生データのキャッシュ」を参照してください。
2. コンフィグ ファイルの設定
プロジェクトの「DefaultEngine.ini
」ファイルを開き、次のテキストを追加します。
[Core.ContentVirtualization]
SystemName=Default
[Core.VirtualizationModule]
BackendGraph=VABackendGraph_Example
[VABackendGraph_Example]
PersistentStorageHierarchy=(Entry=SourceControlCache)
CacheStorageHierarchy=(Entry=DDCCache)
SourceControlCache=(Type=p4SourceControl, DepotRoot="...")
DDCCache=(Type=DDCBackend)
これにより、現在サポートされているすべてのアセットの仮想化が可能になります。これらには、下記の設定があります。
-
VABackendGraph_Filesystem は、バックエンド グラフを定義します。
-
SourceControlCache は、Perforce ソース コントロール システムを仮想化ペイロードのバックエンドとして定義し、それを参照するためのエイリアスを提供します。DepotRoot 値をプロジェクトのルート ディレクトリに変更します。
-
DDCCache は、共有 DDC を仮想化ペイロードのバックエンドとして定義し、それを参照するためのエイリアスを提供します。
-
CacheStorageHierarchy は、DDCCache を高速キャッシュ ストレージ バックエンドとして設定します。プロジェクトがここでバルク データ ペイロードを発見した場合、そのデータの取得はこのソースからのものを優先します。
-
PersistentStorageHierarchy は、SourceControlCache を永続ストレージ バックエンドとして設定します。他のすべてのバックエンドが失敗した場合、プロジェクトはここで必ずバルク データ ペイロードを発見できます。
プロジェクトのバックエンドを定義する方法の詳細については、「バックエンド グラフ」ページを参照してください。
3. パッケージを仮想化する
仮想化アセットを有効にした後は、プロジェクトのエディタから送信するパッケージは送信時に仮想化する必要があります。これは、どのエディタにあるどの送信方法でも同じです。
Unreal Virtualization Tool は、変更リストを送信することもできます。Unreal Virtualization Tool のソース コードは Engine\Source\Programs\UnrealVirtualizationTool\
にあります。これを使用するには、ツールをコンパイルしてから、次の引数を指定してコマンドラインで実行します。
-ClientSpecName=[WorkspaceName] -Mode=Changelist -Changelist=[Changelist]
コマンド | 説明 |
---|---|
ClientSpecName | 送信元のワークスペースの名前。 |
Changelist | 仮想化して送信を行うチェンジリスト。 |
通常、アセットを提出せずに仮想化することはありません。しかし、このツールで -NoSubmit
をコマンドラインに追加するとそれが可能になります。チェンジリスト内のパッケージは仮想化されますが、チェンジリスト自体は送信されません。
4. 仮想化されたパッケージを検証する
パッケージが正常に仮想化されたかどうかを判断するには、コンテンツ ブラウザでアセットの上にマウスを置き、[Has Virtualized Data (仮想化データを含む)] エントリを確認します。

または、アセットのファイル サイズを確認します。「.uasset
」ファイルが仮想化前よりも大幅に小さい場合、バルク データは .uasset
から分離され、「Saved/VirtualizedPayloads」ディレクトリに含まれるようになりました。
パッケージ ファイルの内容を調べるには、コンテンツ ブラウザ でアセットを右クリックし、[Copy File Path (ファイル パスをコピー)] をクリックして、コンソールに次のコマンドを入力します。
DumpPackagePayloadInfo [ファイル パス]
「[ファイル パス]
」をコンテンツ ブラウザからコピーしたファイル パスに置き換えます。
このコンソール コマンドでは、フル パスまたはパッケージ パスのいずれかを指定できます。また、これにより出力ウィンドウにペイロードの概要が書き込まれます。出力には、ローカルに保存されたペイロードのリストと、それに続く仮想化されたペイロードのリストが表示されます。DumpPackagePayloadInfo
は、アセット レジストリなどのキャッシュされた情報は使用しません。その代わり、使用するたびにパッケージの情報を再解析することから、常に最新の情報が提供されます。
プロジェクトの仮想化アセットを構成する
これで仮想化アセットの基本的な実装方法がわかったので、プロジェクトのニーズに合わせて構成が可能になったと思います。下記のページでは、設定をカスタマイズする方法について詳しく説明しています。
-
仮想アセットの概要 には、プロジェクトで仮想化アセットのサポートを構成およびデプロイする方法に関するガイドラインがあります。
-
バーチャル アセットのバックエンド グラフ には、仮想グラフの設定に関する情報が記載されています。
-
仮想化アセットをデバッグする では、トラブルシューティングやデバッグを行うために仮想化アセットに関する情報を出力する方法について説明しています。