DerivedDataCache/Contentを生成するアセットや設定について

お世話になります。

DerivedDataCacheのContentフォルダの有無は、どのようなアセットの特性、あるいはどこの設定で決まるのでしょうか。

新しいプロジェクトでDerivedDataCacheが十分機能しているか判断に迷っています。

弊社がUE5.2で制作していたプロジェクトAではエンジンフォルダのEngine\DerivedDataCache\Contentにかなりのデータができました。

現在UE5.5で別のプロジェクトBを立ち上げ様子をみていますが、Engine\DerivedDataCache\Contentが作られません。

実際には1度DerivedDataCacheが空の状態から共有DDCを充填させたところContentが十分納得いくサイズでできましたが、

その状態の共有DDCを利用する設定で同じレベルにいってもローカルにキャッシュされるのは、

DerivedDataCache\TestDataだけでDerivedDataCache\Contentはローカルには来ませんでした。

どちらのプロジェクトのDDCも、主要なレベルを立ち上げて、生成させています。

プロジェクトBについて比較でプロジェクト全体に対してコマンドレットからDDC.ddpを作ると十分大きなファイルになりましたが、

いくつかレベルを起動してみてもDerivedDataCacheには1MBに満たないデータ(Content以外)しか作られなかったです。

(たまたま?一度共有DDCで充填されたContentフォルダは300MB程度ありました)

プロジェクトAでは同じ方法で大量のデータが(とくにEngine\DerivedDataCache\Contentに)生成されることを確認しています。

この差が何から来るものなのか、新しいプロジェクト側で何か設定に問題があるのか、

それともプロジェクトで使っている技術の特性からくるものか、見極めたいと思います。

共有DDCでContentができたり、できなかったり、共有DDCにContentがあっても同じ手順でレベルを動かしても

ローカルにContentがコピーされてこないのは何故でしょうか。

こちらで見比べたところでは、以下のようになっています。

プロジェクトBはまだ最初期なのでテストしているデータが少ないのは確かですが、Contentフォルダがなく一つもファイルがない状態です。ローカルDDCにはTestDataとVTがあります(VTがないこともあります)。共有DDCにはBucketsがあり逆にVTはないです。Contentについてはどちらにもありません。

プロジェクトAではだいぶ初期からでもContentにデータがあり、DDCの有無がエディタの起動速度に明確に影響を与えていました。

ProjectSettingsやEditorPreferencesで、DDCやDerived Data Cacheで検索する限り、両プロジェクトでのDDCの設定は同じようです。

両プロジェクトの違いとしては、プロジェクトAではベイクしていてワールドパーティションは使っていませんが、

プロジェクトBではベイクはしておらずワールドパーティションを使うレベルもあります(そうでない小さなサンプルのようなレベルもある)。

以上、よろしくお願いします。

お世話になっております。

UE5.4からZen Serverが有効になったことでDDCフォルダ配下にキャッシュデータが作成されなくなりました。今まではファイルベースのキャッシュデータをDDCフォルダに保存していましたが、UE5.4以降では ​Zen Server というPC上で動作するアプリケーションのメモリ上にキャッシュデータが保持されるようになります。これにより、ファイルシステムのアクセスからアプリケーションベースのデータとのやり取りでDDCを扱うことができるようになり、アクセスが高速化されるようになりました。

これらの情報については以下のドキュメント等をご確認ください。

https://portal.productboard.com/epicgames/1\-unreal\-engine\-public\-roadmap/c/838\-unreal\-zen\-storage\-as\-local\-ddc

https://dev.epicgames.com/documentation/en\-us/unreal\-engine/set\-up\-zen\-storage\-server\-as\-shared\-ddc\-for\-unreal\-engine

説明ありがとうございます

DDCのタイプをUnreal Zen Store Clientにしないで以前からあるFileSystemにしていれば、

ZenServerは関係ないと思っていたのですが、そうではないのですね

Contentフォルダが以前同様に作成されたこともあるのですが、

ZenServerがうまく機能しない起動時があったのでしょうか

ZenServerについて勉強しなおしてから確認しようと思います

すみませんが、こちらの都合でその対応が少し後になります

数週間空いてしまうかもしれませんが、こちらの質問はこのままにさせていただきます

はい、ご自由にコメントを追加して頂けますと再度スレッドを継続できますので、もし追加のご質問がありましたらコメントを追加して頂けますと幸いです。

お世話になります。

初歩的な質問ですみませんが、そもそもZenという名前で見つかる、Zen Io Sotre, Zen Storage, Zen Server (あるいはそれらの組合せZen Storage Serverなど)は、すべて同じ技術を指していると考えてよろしいでしょうか?

(正式サービスになる前の)バージョンによる違いなのか、同じ技術を根幹とするものの役割の違うサービスを指しているのか、教えてください。​

こちらのUE5.5のプロジェクトの設定で、Project - Packaging - Use Zen Server as cooked output store​ は未チェックです。

弊社の「作業PC」と、「従来のファイルベースでの共有DDCをアップロードしているつもりのPC」を調べましたがどちらも、

Zen Dashboardで見るサーバーステータスは​Stoppedで、データの置き場所であるユーザーAppDataのUnrealEngine/Common/Zen/Dataはフォルダは存在せず、ZenフォルダにはInstallのフォルダのみがありました。

これを見る限り、​やはりZenに関する機能が働いているようには見えません。

DDCの公式ドキュメントから、Zenを使わずに従来のファイルベースのものも同じ設定で使えると期待します。

上記チェックボックスがチェックされてなくZenが動いていなければ、

以前(UE5.2以前)と同じ設定​でファイル共有ベースの共有DDCが機能すると思われますが、

そうはいかないものでしょうか。

なおその後の弊社の「従来設定での共有DDCのContent」ですが、

一度あがったデータが期限が切れたのか減っていき、

更新されるデータも少しはあるのですが、置き換えていると実感するほどの数はなく、

やはり動作しているのか怪しい感じではあります。​

実際、共有DDCのContentフォルダに​ファイルがあげられたときに、

それを参照するほかのマシンで同じレベルを動作させてみても、

ローカルにContentのデータが作られなかったです(共有DDCからコピーされることも、ローカルで作られることもなく)​

UE5.2以前は大量のファイルがContentにあがり共有されていましたので、ファイル一個単位までは​みていませんが、

共有DDCで作られたContentがそれを利用するローカルにコピーされている感じはありました。​

引き続きZenについて情報収集しますが、何かお気づきの点があればご指摘いただけると助かります。​

以上、よろしくお願いします。​

お世話になっております。

>そもそもZenという名前で見つかる、Zen Io Sotre, Zen Storage, Zen Server (あるいはそれらの組合せZen Storage Serverなど)は、すべて同じ技術を指していると考えてよろしいでしょうか?

これらの用語は混乱しやすいのですが、詳しく説明すると以下の通りです。

Zen Io Store : 厳密には IoStore だけの用語ですが、IoStoreはパッケージング時に.utocファイルにファイルの保存に関する情報を保存(FileIOに関する情報を保存)する機能です。この機能が有効になることで、従来のアセットを1つにまとめるシングルパックファイルが .pak から .ucasに変わりますが、これによって従来のパックファイルからのファイルアクセスがより効率的になり、高速なロードを実現します。

Zen Server : これはファイルアクセスを高速化するために利用されている アプリケーションです。Unreal Editorとは別プロセスで動作するサーバーアプリケーションで、主にDDCやクック済みファイルのデータをZen Storageと呼ばれるストレージに保存し、Unreal Editorとストレージのデータを仲介する働きがあります。

Zen Storage : Zen Server が保持するデータの格納場所のことを示します。ここにはDDCやクック済ファイルのデータを保持されます。

> Project - Packaging - Use Zen Server as cooked output store は未チェック

この設定は、クック済みファイルデータを Zen Server経由でStoreに保存するかどうか、を指定するものであって、DDCとは関係がないものとなります。

> DDCの公式ドキュメントから、Zenを使わずに従来のファイルベースのものも同じ設定で使えると期待します。

UE5.4 以降では、従来のファイルシステムベースのDDCは廃止されて、Zen Serverが利用されます。

用語解説ありがとうございます。助かります。

踏まえましてDDCおよびZenのドキュメント、動作について教えてください。

> UE5.4 以降では、従来のファイルシステムベースのDDCは廃止されて、Zen Serverが利用されます。

5.5ドキュメント以下にある

https://dev.epicgames.com/documentation/ja\-jp/unreal\-engine/using\-derived\-data\-cache\-in\-unreal\-engine

を参考に設定していましたが、

こちらにあるファイルシステムタイプ(Type=FileSystem)は、機能していない、ということでしょうか

5.5にあるBaseEngine.iniを見ますと、ローカルと共有のDDCが、次のようにそのFileSystemで定義されています。

Local=(Type=FileSystem, DeleteOnly=true, UnusedFileAge=8, Path=%ENGINEDIR%DerivedDataCache, EnvPathOverride=UE-LocalDataCachePath, EditorOverrideSetting=LocalDerivedDataCache, CommandLineOverride=LocalDataCachePath)

Shared=(Type=FileSystem, UnusedFileAge=10, FoldersToClean=10, ConsiderSlowAt=70, Path=?EpicDDC, EnvPathOverride=UE-SharedDataCachePath, EditorOverrideSetting=SharedDerivedDataCache, CommandLineOverride=SharedDataCachePath)

プロジェクトでは、このSharedをもとに置き場所を弊社が利用するストレージに変更している(※)わけですが、

このデフォルトの設定からして、LocalとSharedはもはや無効なものである、と認識して良いですか

(BaseEngine.iniにあるのはまだ良いとして、FileSystemのままプロジェクトで上書きして使うものではない)

※の設定で5.5ベースのエンジンを使っていますが、

依然としてDerivedDataCacheフォルダが存在し、そこにファイルがあります。

一方、ZenServerのアプリは動いている様子がありません。

上記ドキュメントには

実験的機能: ローカルの Zen Storage Server

とありますが、こちらのみが現在は動作しているもので、

BaseEngine.iniにあるZenLocalがそれにあたるでしょうか。

ただ書きましたように、各マシンではZen Dashboardで見るサーバーステータスはStoppedで、データの置き場所であるユーザーAppDataのUnrealEngine/Common/Zen/Dataはフォルダは存在せず、ZenフォルダにはInstallのフォルダのみとなっています。ZenServerがローカルでも動いているように見えません。こちらを稼働状態にするために、必要な設定はどちらになりますか。Sharedに関連してサーバーでの実行が書かれているzenserver.exe –installやタスクの設定を各作業PCで行わなければ、ZenLocalは機能しないのでしょうか。

ZenShare(Zenの方式での共有DDC)については、ZenLocalが確認できたら、改めて調査したいと思います。

以上、よろしくお願いします。

回答ありがとうございます。ファイルシステムタイプも使えると理解しました。

また確かにこちらでもLauncher版の5.5.4では、ダッシュボードでみるとZenが稼働していて、上記写真のようなDataフォルダができて中にファイルができていることを確認できました。

しかしその状態でソースビルドしたエンジンでのプロジェクトを開いてみても、Zen DashboardのStatusはStoppedのままです。

DataフォルダはLauncher版で確認したフォルダが指定されるようになっていました。

ソースビルドしたエンジンのフォルダ内にあるZenDashboard.exeを実行したまま、

Launcher版で作ったプロジェクトを立ち上げるとRunningになるのを確認でき、

そのプロジェクトを閉じるとStoppedになります。

そのままソースビルド版で作ったプロジェクト​を立ち上げてもStoppedのままです。

引き続きこちらでも調査しますが、ZenのStatusをStoppedにしてしまう条件がわかりましたら、教えていただけると助かります。

またファイルシステムタイプも使えるそうですが、やはりUE5.2のときと同様の設定でDDCのフォルダ内にContentができない状態です。(一度Contentが作られましたが、時間経過とともにいつのまにか消えていました)こちらにつきましてもContentが作られない条件がありましたら、教えていただけると助かります。

以上、よろしくお願いします。

お世話になります。ひとつ気づいたことがあるので報告しておきます。

Zenが動作していないソースビルドのプロジェクト起動時のログを見ていたら、

[2025.06.12-08.20.36:812][ 0]LogZenServiceInstance: Found Zen config default=C:/Users/<アカウント名>/AppData/Local/<弊社名>/UnrealEngine/Common/Zen/Data

のようにDataPathがLauncher版と異なるようでした。(※)

確かにその場所にもZen/Dataがあり、ファイルのタイムスタンプを見ると、こちらにアクセスしている形跡はありました。

しかしZenDashboard.exeで出てくるDataPathは、この<弊社名>がないLauncher版と同じパスになります。

このあたりの不一致が気になりますが、これは問題でしょうか。

正しい挙動と設定方法はわかりますか。

起動時のDDCまわりのログを添付します。(固有名を置換しています)

デフォルトのZenLocalと、プロジェクトで設定しているファイルシステムタイプの共有DDCを使う設定で起動しています。

※このパスは、Engine\Saved\Config\WindowsEditor\EditorSettings.iniに、

[/Script/UnrealEd.ZenServerSettings]

InUseDefaultDataPath=C:/Users/<アカウント名>/AppData/Local/<弊社名>/UnrealEngine/Common/Zen/Data

として定義されていました。

自ら設定したつもりはなく、どこから<弊社名>が取られたかもわかっていません。

この設定から<弊社名>を取り除けば、動作するのではと期待しますが、起動させると設定が上書きされてまた<弊社名>が入ってしまうようです。

以上、よろしくお願いします。

お世話になります。Zenの動作不良については、前回の回答をもとに調査したところ、こちらの問題とわかりました。

セーブデータの置き場所を会社のフォルダに変更するためUserSettingsDirを加工していますが、

ZenのDataPathもそこを参照して作られるため、パスが変わっていました。

こちらの改造を取り下げたところ、期待したDataPathになり、Zenの動作を確認できました。

お騒がせしました。こちらの問題で、すみません。

こちらですが、Shipping(製品リリース)時には、Windows版といえども、Zenは動作しないで大丈夫という認識でよいでしょうか?(つまりこちらが入れていた改造についてShipping時は認めてZenが動かなくても大丈夫か)

これでZenの挙動は解決しましたが、もともとの疑問である従来のファイルシステムタイプでのDDCのContentが作られない問題は解決していません。Zenの挙動変化を受けてファイルシステムタイプのContentも変わりがあるか注視したいと思います。

引き続きContentの生成条件について情報があれば、よろしくお願いします。

お世話になります。

Zenが正常動作しているはずの環境で共有DDCを充填したところ、

Contentフォルダに想定されるような大きなサイズになる大量のファイルが格納されました。

ファイルシステムタイプが正常に動作するには、ZenLocalが正常に動作するか、

あるいはZenと同様にセーブデータのパスが想定外のものに改造されてないかなど、

が必要な条件になっていたのかもしれません。

Contentはその後の動作で変動して消失したケースもありますので、

この状態でもうしばらく様子を見たいと思います。

以上、よろしくお願いします。

>Shipping(製品リリース)時には、Windows版といえども、Zenは動作しないで大丈夫という認識でよいでしょうか?

はい、パッケージアプリケーションには一切影響しない機能です。

おそらく一番簡単にFileSystemを利用するのは、"-ddc=NoZenLocalFallback"の引数を追加してエディタを起動することです。これでZenを利用せずにファイルシステムでのDDCが作成されます。この場合、DDCはEngineディレクトリに作成されるので、以下のようにGameDirに変更することで、プロジェクトの中のDerivedDataCacheフォルダにキャッシュを作成できます。DDCを1から再生成することになるので、お試しになられる際には大量のシェーダーコンパイル等が実行されるなど、時間がかかることがあるのでご注意ください。

[NoZenLocalFallback] Root=(Type=Hierarchical, Inner=Pak, Inner=EnginePak, Inner=Local, Inner=ZenShared, Inner=Shared, Inner=Cloud) ;Local=(Type=FileSystem, UnusedFileAge=34, PromptIfMissing=true, Path=%ENGINEDIR%DerivedDataCache, EnvPathOverride=UE-LocalDataCachePath, EditorOverrideSetting=LocalDerivedDataCache, CommandLineOverride=LocalDataCachePath) Local=(Type=FileSystem, UnusedFileAge=34, PromptIfMissing=true, Path=%GAMEDIR%DerivedDataCache, EnvPathOverride=UE-LocalDataCachePath, EditorOverrideSetting=LocalDerivedDataCache, CommandLineOverride=LocalDataCachePath) Shared=(Type=FileSystem, UnusedFileAge=10, FoldersToClean=10, ConsiderSlowAt=70, Path=?EpicDDC, EnvPathOverride=UE-SharedDataCachePath, EditorOverrideSetting=SharedDerivedDataCache, CommandLineOverride=SharedDataCachePath) Cloud=(Type=Cloud, ServerID=Cloud, EnvHostOverride=UE-CloudDataCacheHost, CommandLineHostOverride=CloudDataCacheHost, CommandLineOAuthSecretOverride="CloudDataCacheOAuthSecret", OAuthAccessTokenEnvOverride="UE-CloudDataCacheAccessToken", EnvHttpVersionOverride="UE-CloudDataCacheHttpVersion", CommandLineHttpVersionOverride="CloudDataCacheHttpVersion", EnvOAuthProviderIdentifierOverride="UE-CloudDataCacheOAuthProviderIdentifier", CommandLineOAuthProviderIdentifierOverride="CloudDataCacheOAuthProviderIdentifier") Pak=(Type=ReadPak, Filename="%GAMEDIR%DerivedDataCache/DDC.ddp") EnginePak=(Type=ReadPak, Filename="%ENGINEDIR%DerivedDataCache/DDC.ddp") ZenShared=(Type=Zen, ServerID=Shared)

お世話になります。

Shipping時の挙動が期待通りのようで安心しました。

その後のSharedDDC(FileSystem)とZenLocalの動作状況をみてますが、ストレージの増え方からみて問題なさそうです。

エディタ上でのDDCの統計情報でも両方とも稼働していました。​(数日稼働後の状況でみて、プロジェクト側のアセット更新はまだそれほど頻繁ではないですが、最新データ取得後の1日最初の起動時に、ZenLocalのヒット率が99.9%、Sharedのヒット率が12.5%となっていました)

またZenSharedやCloudの仕様や設定も念のため読み返しましたが、こちらは誤解なかったと思います。

そして弊社環境では現状利用できないので稼働させていません。​

ZenLocalと​Shared(FileSystem)それぞれについては良さそうですが、それらの連携について確認したいです。

Shared(FileSystem)とLocal(FileSystem)のときは、

1.Sharedのデータを参照することによってローカルで(再)変換が起きないので高速

2.一度アクセスしたSharedの内容がLocalにコピーされることで、​2回目以降はローカルのみの挙動で高速

という二つの効果が期待されたと認識しています。

LocalのみがFileSystemからZenになっても(Sharead​がZenでなくFileSystemであっても)、

この1,2の効果が期待できると考えてよろしいでしょうか。​

それともSharedとLocalの連携効果はあくまでZen同士、FileSystem同士であり、

Sharedに引き続きFileSystemを使う場合は、前回お知らせいただいたNoZenLocalFallbackで、

ZenLocalでなくLocal(FileSystem)を継続して使わなければ高速化の恩恵はないものでしょうか?​

以上、よろしくお願いします。​

基本的にFileSystemとZenの組み合わせによるDDCの併用は想定していないため、あくまで利用したい状況に応じてFileSystemかZenのご利用を切り替えて頂くことをお勧めします。UE5.4からはLocalDDCに関してはデフォルトでZen​が設定されていることもあり、Zenの利用を推奨しています(これはファイルシステムよりも高速であるため)。自身で.iniファイルを設定して頂いたら必ずしもNoZenLocalFallbackの設定をご利用いただく必要はありませんが、もしFileSystemを利用する場合はLocal/Shared共にFileSystemにすることをおすすめします。

そうなりますと、ZenでSharedとCloudが​利用できない場合は、

1.ZenLocal のみ利用(共有DDCは使わない)

2.ZenLocalの利用をやめて従来のLocalのみが動作するようにして共有DDCともどもFileSystemで使う

のいずれかを選択することになりそうですが

(どちらを選んでも定期的にパック形式を作って挟んで共有するかもしれませんけれど)​

そもそも新規のデータについて変換が必要でしょうが、その速さ自体はZenでもFileSystemでも同様ですか。

(変換結果からくる)ストレージ消費は同程度とどこかで読みましたが。

そうであれば​新規のデータが日々エディタの起動時間が気になるほど多い場合は2が良いが、

そうでもなければローカルが速くなる1の方が良いという判断になるでしょうか。​​

​以上、よろしくお願いします。

FileSystemベースの共有DDCが利用できるのであれば Zen Shared DDCも利用できるのではないかと推測しますが、

いずれにしてもZenかFIleSystemかを統一して利用することになるかと思われます。

DDCの共有は差分ベースのため、データが存在していない場合は新規データとしてDDCのコピー処理は発生します。

どちらをご利用頂くかは環境によりますが、基本的にはZenの方が早いという想定で考えられております。

この2つの大きな違いは、FileSystemの場合はディスクスペースを占有し、Zenの場合はディスクスペースよりもメモリを占有します。

起動時間がどこで遅くなっているかはプロファイルを見てみないと判断できませんが、より良い方をご選択いただけますと幸いです。

ここまでいただいたアドバイスをもとに調整したいと思います。

リモート環境でFilsSystemベースの共有DDCを​使うために、認証されたクラウドストレージとそのローカルキャッシュを使う形で運用しています。

(作業タイミングによりますが、うまくずらすと通信も隠蔽​して、キャッシュのローカルSSDからエンジン・プロジェクトのDDCフォルダのローカルSSDへのコピーなので高速です)

LAN内ではありませんし、利用できるサービスはストレージの共有だけのため、サーバー側のデータベースアクセス(アプリ実行)はできませんので、今のところZenのSharedやCloudは使えない状態です。

当面大きなデータが頻繁に回ることはないと思うので、しばらくZenLocalのみの運用でいきつつ、

重くなるまでにZen Cloudが使えるよう社内調整し、もし間に合わない場合は全てをFileSystemベースにしてしのいでみようと思います。

本件は、解決としてクローズいただいて大丈夫です。​​ありがとうございます。

ご連絡が遅くなりまして申し訳ございません。

>こちらにあるファイルシステムタイプ(Type=FileSystem)は、機能していない、ということでしょうか

そしてこちら誤りがありまして申し訳ございません。このTypeの設定はまだ機能しています。FileSystemが旧来のファイルシステムタイプの設定で、Zenに置き換えることでZen Serverでの管理となります。

> このデフォルトの設定からして、LocalとSharedはもはや無効なものである、と認識して良いですか

この設定はプロジェクト側の.iniから上書きして利用することが可能、想定されたものです。

> 上記ドキュメントには「実験的機能: ローカルの Zen Storage Server」とありますが、こちらのみが現在は動作しているもので、

はい、それがZen ServerをローカルDDCとして利用するのものです。デフォルトで特に設定変更の必要などもないはずです。例えばLauncher版の環境で起動すると以下のようにRunningとなっているはずですが、デフォルトで有効に動作するものと思われます。

[Image Removed]