UsdAssetCacheのプロジェクト管理の推奨方法について

UsdAssetCacheの運用にあたり、以下の2点について仕様確認とベストプラクティスをご教示ください。

  1. 共有手段の有無について UsdAssetCacheはShared DDCの仕組みには含まれず、現状プロジェクト全体でキャッシュを共有する標準機能はないという認識で正しいでしょうか。各ユーザーがローカル環境で個別に生成する運用が標準的なフローとなるでしょうか。
  2. 単一アセットファイル管理リスクについて 管理の便宜上、キャッシュの保存先をプロジェクト内の単独ディレクトリ(例: Saved/UsdCache/に固定し、.p4ignore で除外する運用を検討しています。この際、複数アセットからの同時書き込みによる競合や破損、あるいはファイルシステム上のI/Oボトルネックなど、既知の懸念事項はありますでしょうか。

大規模チームにおけるUSDキャッシュ管理の推奨フローがあれば、併せてアドバイスをいただけますと幸いです。

[Attachment Removed]

再現手順[Attachment Removed]

(下記リンクは、Epic Games のサポートが内部的に使用するリンクですので、ユーザーの方に下記リンクを利用して頂く必要はございません。回答はこの日本語スレッドに日本語として表示されることになります。)

[UsdAssetCache Management and [Content removed]

[Attachment Removed]

[mention removed] 様

(以下は、サポート担当の Carysforth Antony によるコメントを翻訳したものです。回答に時間を要してしまい、誠に申し訳ございません。)

1) プロジェクト設定の「Default Asset Cache」プロパティを設定すると、そのコンピュータ上のすべてのインポートで USD Asset Cache が共有できるようになります。新しい UsdStageActor はそれをデフォルト値として使用することになりますが、各 UsdStageActor がどのキャッシュを使用するかは、アクタの Details パネルで個別に選択して制御することも可能です。

DDC のようにネットワーク越しで UsdAssetCache を共有したいということがご質問の意図なのでしたら、そのような仕組みはございません。プロジェクト内の複数ユーザー間で UsdAssetCache を共有したいということでしたら、キャッシュおよびそれによって生成されるアセットを通常どおりソース管理に含めることができます。UsdAssetCache は非常にシンプルなアセットです。基本的にはアセット ハッシュと特定のアセットとのマッピングをもっているだけなのです。たとえばあらゆるものを Perforce で管理している場合、プロジェクトに携わる各ユーザーは、同一内容の、キャッシュのローカル コピーを使用することになります。

2) 同時書き込みによる問題は、おそらく発生しないはずです。と申しますのも、UsdAssetCache は USD インポート時に使用されるものであり、その USD インポート処理自体が、すでに多くの処理を非同期タスク内で並列実行しているからです (つまり、USD インポート処理自体が、すでに多数の処理を非同期タスクで並列実行する構造になっているため、並行処理に起因する問題は基本的には発生しないはずです) 。

ご質問のように .p4ignore のフォルダにキャッシュを配置する運用についても問題ありません。ただし、その場合各ユーザーは、そのキャッシュおよびキャッシュ済みアセットのコピーを保持することになります。その結果、特殊なケースのインポート条件によっては、同一の Prim (Primitive) に対して異なるアセットが何の警告もなくキャッシュされてしまう可能性があります。そうは言っても、同じファイルをインポートしている限り、そのような問題は発生しないはずです。

> 大規模チームにおけるUSDキャッシュ管理の推奨フローがあれば、併せてアドバイスをいただけますと幸いです。

大規模チームで USD キャッシュを利用する際、現時点では、特に確立された推奨ワークフローは存在しないと思います。ただし、そこまで注意すべきものでもないと考えております。前述の通り、これは比較的シンプルなアセットだからです。

生成されたアセットを保存する場合、それらはディスク上に保持されることになりますが、保存しなければセッション終了時に破棄されることになります。また、USD からインポート済みのアセットがキャッシュ フォルダ内に存在していれば、キャッシュはそれらを再検出 (rediscover) できます。必要であれば、キャッシュをダブルクリックして、ハッシュとアセットのマッピングを手動で確認および調整することも可能です。この再検出 (rediscover) 機能があるため、マッピング情報を自由にクリアしても大丈夫です。クリアした場合も、必要なアセットは再生成されるか、既存のディスク上 / セッション上のアセットが再検出されることになります。

[Attachment Removed]