バーチャル アセット システムは、アセットのバルク データ ペイロードを、通常はソース コントロール リポジトリ、派生データ キャッシュ (DDC)、または他の何らかの形態のリモート ストレージといったバックエンドに格納します。ユーザーがバーチャル アセットを編集する必要がある場合、このシステムはバルク データをバックエンドから取り出し、それをコンピュータ上にロードします。ただし、すべてのバックエンド ソリューションには、速度、ストレージ容量、信頼性、および実用性に関する独自のバランスがあります。
あらゆる可能なソリューションの長所を生かすために、バーチャル アセット システムは バックエンド グラフ を使用して、複数のバックエンドにあるファイルを見つけます。タイプが異なるストレージに対してそれぞれ異なるタイプのバックエンドが使用されます。高速なバックエンドは頻繁に使用されるファイルの一時的なキャッシュとして利用され、低速なバックエンドは長期的な永続ストレージに利用されることがあります。このガイドは、取り出しを行う処理が最適化されるようにプロジェクトでのバーチャル アセットの使用をカスタマイズできるように、バックエンド グラフを個別のプロジェクト用に設定する方法についての参考になります。
概要
バックエンド グラフは、バルク データの取り出し元としてどのバックエンドを利用できるかを定義し、どのバックエンドから最初に取り出すべきかを判断するときにバーチャル アセット システムが使用する優先順位を定義している、*Engine.ini
ファイル内のパラメータのグループです。
ストレージのリスト
各バックエンド グラフは、主に CacheStorageHierarchy と PersistentStorageHierarchy という 2 つのリストを中心に構築されています。
PersistentStorageHierarchy は、低速であるが信頼性に優れたバックエンドのリストです。**プロジェクトのすべてのファイルは常に、永続ストレージ バックエンド内で取得できます。永続ストレージ バックエンドの典型的な例として、Perforce などのソース コントロール リポジトリがあります。これは、チームのすべてのファイルに永続的で一元化されたストレージ ソリューションを提供しますが、個々のユーザーのインターネット接続の状況によってパフォーマンスが変化することがあります。
CacheStorageHierarchy は、取り出しを迅速化するために使用される、高速であるが信頼性が劣るバックエンドのリストです。特に、頻繁に使用されるファイルのキャッシュに使用されます。キャッシュ ストレージの典型的な例として、共有派生データ キャッシュ (DDC) があります。これは、組織の職場内に設置されている共有ネットワーク ドライブ上に配置されます。そのドライブはローカル ネットワーク内にあるため、DDC はより高速です。ただし、チームが分散している場合や、リモートのチーム メンバーが多数いる場合には、このようなローカル リソースを利用できないメンバーがいることになるため、このシステムを他のバックエンドにフォールバックするか、独自の代替手段を準備する必要があります。
優先順位
バーチャル アセット システムはバルク データを取り出そうとするときに、まずキャッシュ ストレージ リストに記載されているバックエンドを見て、必要なファイルが見つからなければ、永続ストレージにフォールバックします。いずれかのリストを見るときに、記載されている順序で各バックエンドを見ていくため、最も高速なものから最も低速なものへの順序でバックエンドを記述するようにします。
バックエンド グラフの使用方法
バックエンド グラフを作成する
バックエンド グラフを作成するには、DefaultEngine.ini
ファイルを開き、バックエンド グラフの名前で新しいカテゴリを作成します。利便性を考慮して、Core.ContentVirtualization
の近くに記載することをお勧めします。
バックエンド グラフには以下のエントリが必要です。
-
CacheStorageHierarchy=(Entry=[Name of Cache])
-
PersistentStorageHierarchy=(Entry=[Name of Persistent Storage])
-
名前、タイプ、およびバックエンドのパスを見つけるために必要な情報 (該当する場合) が指定されている、使用する各バックエンドのエントリ
バックエンドを定義する
バックエンドは、名前と、その後に続く、そのバックエンドを見つけるために必要なデータが入っているエントリで定義されます。その定義によって、ストレージ階層リストで使用されるエイリアスが与えられます。各エントリには以下の情報が入っています。
パラメータ | 説明 |
---|---|
Type | 現在のエイリアスで使用されるバックエンドのタイプを記述します。Type では次のいずれかを指定できます。
|
DepotRoot | P4SourceControl タイプを使用している場合、これはデポのルート パスです。 |
Path | FileSystem タイプを使用している場合、これはペイロードが格納されているルート フォルダです。 |
ストレージ リストにバックエンドを追加する
ストレージ リストの各エントリでは、Entry=[BackendName]
の形式を使用します。[BackendName] は、定義されているいずれかのバックエンドで置き換えます。複数のバックエンドを記述する場合は、カンマで区切る必要があります。その例を以下に示します。
CacheStorageHierarchy=(Entry=DDCCache1, Entry=DDCCache2, Entry=DDCCache3)
PersistentStorageHierarchy=(Entry=SourceControlCache)
システムがこの情報をパースする場合、記載されている順序で各バックエンドを見ていくため、最も高速なものから最も低速なものへの順序でバックエンドを記述します。
例
プレースホルダー名を使用したバックエンド グラフの例を以下に示します。
[VABackendGraph_Name]
CacheStorageHierarchy=(Entry=DDCCache)
PersistentStorageHierarchy=(Entry=SourceControlCache)
DDCCache=(Type=DDCBackend)
SourceControlCache=(Type=P4SourceControl, DepotRoot="XXX" )
この情報は DefaultEngine.ini
ファイルに追加されています。ヘッダはバックエンド グラフの名前であり、どのバックエンド グラフが利用可能であるかを定義するエイリアスのリストが入っています。たとえば、DDCCache
は共有 DCC を指しており、SourceControlCache
はプロジェクトで使用されるソース コントロールを指しています。これらの名前は任意の文字列であり、必要に応じて変更できます。これらのエントリを定義したら、それらを CacheStorageHierarchy
リストと PersistentStorageHierarchy
リストに挿入します。
プロジェクトで使用するバックエンド グラフを選択する
バックエンド グラフを作成したら、バーチャル アセット システムの使用時に、いずれかのバックエンドを使用するようにプロジェクトを設定する必要があります。
コンフィギュレーション ファイルでバックエンド グラフを選択する
DefaultEngine.ini
ファイル内にある Core.VirtualizationModule
セクションを見つけます。デフォルトでは、BackendGraph パラメータは ContentVirtualizationBackendGraph_None
に設定されています。
[Core.VirtualizationModule]
BackendGraph=ContentVirtualizationBackendGraph_None
ContentVirtualizationBackendGraph_None
を、自分で作成したバックエンド グラフの名前に変更します。そうすると、プロジェクトでそのバックエンド グラフが使用されます。
コマンドラインでバックエンド グラフをオーバーライドする
コマンドラインでバックエンド グラフをオーバーライドするには、次のコマンドを使用します。
-VABackendGraph=[GraphName]
[GraphName] は、使用するバックエンド グラフの名前を表す変数です。このグラフに関する問題をトラブルシューティングできるように、コンフィギュレーション ファイルに記載されているグラフの名前、コマンドラインでそれをオーバーライドしているグラフの名前、およびマウントされているグラフの名前がログに記録されます。
推奨されるバックエンド グラフ設定
プロジェクトのソース コントロールを永続ストレージ ソリューションとして使用し、共有 DCC をキャッシュ ストレージとして使用することをお勧めします。組織での必要に応じてもっと複雑なスキームを作り出すこともできますが、推奨される構成ではパフォーマンスと単純さの最適なバランスを取ることができます。