Language:
Page Info
Engine Version:

派生データのキャッシュ

エディタへインポートされて「.uasset」ファイルに保存されるアーティストが作成するソース フォーマットとは対照的に、 Derived Data Cache (DDC) は、エンジンとターゲット プラットフォームが使用するフォーマットで アセットのバージョンを保存します。DDC に保存されるコンテンツは使い捨てですが、 .uasset ファイルに格納されたデータを利用していつでも再生成することができます。外部に派生フォーマットを保存することにより、 ソース アセット ファイルの修正を必要とせずに、エンジンが使用するフォーマットの 追加や変更を簡単に行うことができます。

共有 DDC の使用

スタジオは、特定場所の全ユーザーがアクセス可能な共有 DDC を使用するべきです。この方法で、 派生したアセット フォーマットのビルドはユーザー 1 人のみがビルドし、その後自動的に全ユーザー間で 利用可能となります。時には、アセットの処理が必要な時に遅延が生じる場合もあります。 ただし、結果は記憶され共有されます。少人数の開発者の場合、ほとんどの開発者は影響を受けていることに気づきません。

DDC 全体をインターネット上へ絶対にコピーしないでください。 DDC をバックアップ、またはバックアップから DDC を復元してください。これは特に問題は生じませんが、 DDC に保存されたデータの移行は、ローカルでゼロから生成するよりも一般的にかなり時間がかかるため、 時間の無駄となります。

共有 DDC を設定するには、ゲームの DefaultEngine.ini でセクションを宣言して、[InstalledDerivedDataBackendGraph] または [DerivedDataBackendGraph] (エピック ゲームズのランチャーからバイナリをインストールしてそれを使うか、ソースからコンパイルしたかに応じて変わります) のパスをオーバーライドします。このセクションは本来は BaseEngine.ini で宣言されます。 パスが Epic の内部 DDC 共有に設定される場所です。セクションを再び宣言して、パスを ネットワーク上の共有 DDC へポイントさせるため変更します (例: Path=\\mystudio.net\DDC) :

インストール方法を選択してください。

Epic Games Launcher

ソースからコンパイルする

[InstalledDerivedDataBackendGraph]
MinimumDaysToKeepFile=7
Root=(Type=KeyLength, Length=120, Inner=AsyncPut)
AsyncPut=(Type=AsyncPut, Inner=Hierarchy)
Hierarchy=(Type=Hierarchical, Inner=Boot, Inner=Pak, Inner=EnginePak, Inner=Local, Inner=Shared)
Boot=(Type=Boot, Filename=%GAMEDIR%DerivedDataCache/Boot.ddc, MaxCacheSize=256)
Local=(Type=FileSystem, ReadOnly=false, Clean=false, Flush=false, PurgeTransient=true, DeleteUnused=true, UnusedFileAge=17, FoldersToClean=-1, Path=../../../Engine/DerivedDataCache)
Shared=(Type=FileSystem, ReadOnly=false, Clean=false, Flush=false, DeleteUnused=true, UnusedFileAge=19, FoldersToClean=-1, Path=\\mystudio.net\DDC, EnvPathOverride=UE-SharedDataCachePath)
AltShared=(Type=FileSystem, ReadOnly=true, Clean=false, Flush=false, DeleteUnused=true, UnusedFileAge=19, FoldersToClean=-1, Path=\\mystudio.net\DDC2, EnvPathOverride=UE-SharedDataCachePath2)
Pak=(Type=ReadPak, Filename=%GAMEDIR%DerivedDataCache/DDC.ddp)
EnginePak=(Type=ReadPak, Filename=../../../Engine/DerivedDataCache/DDC.ddp)
[DerivedDataBackendGraph]
MinimumDaysToKeepFile=7
Root=(Type=KeyLength, Length=120, Inner=AsyncPut)
AsyncPut=(Type=AsyncPut, Inner=Hierarchy)
Hierarchy=(Type=Hierarchical, Inner=Boot, Inner=Pak, Inner=EnginePak, Inner=Local, Inner=Shared)
Boot=(Type=Boot, Filename=%GAMEDIR%DerivedDataCache/Boot.ddc, MaxCacheSize=256)
Local=(Type=FileSystem, ReadOnly=false, Clean=false, Flush=false, PurgeTransient=true, DeleteUnused=true, UnusedFileAge=17, FoldersToClean=-1, Path=../../../Engine/DerivedDataCache)
Shared=(Type=FileSystem, ReadOnly=false, Clean=false, Flush=false, DeleteUnused=true, UnusedFileAge=19, FoldersToClean=-1, Path=\\mystudio.net\DDC, EnvPathOverride=UE-SharedDataCachePath)
AltShared=(Type=FileSystem, ReadOnly=true, Clean=false, Flush=false, DeleteUnused=true, UnusedFileAge=19, FoldersToClean=-1, Path=\\mystudio.net\DDC2, EnvPathOverride=UE-SharedDataCachePath2)
Pak=(Type=ReadPak, Filename=%GAMEDIR%DerivedDataCache/DDC.ddp)
EnginePak=(Type=ReadPak, Filename=../../../Engine/DerivedDataCache/DDC.ddp)

単一の共有コードをベースに作業を進めているサテライト オフィスは、パスに UE-SharedDataCachePath 環境変数を 各ロケーションの全ユーザーが読み書きできるパスに設定することができます。この設定によって、各ロケーションは 独自の共有 DDC を持つことができます。

例:

UE-SharedDataCachePath=\\mystudio.net\DDC

ローカル DDC の使用

単独またはリモートで作業を行っている開発者は、大抵はローカル DDC のみを使用します。以下の手法のいずれかで、 エンジンが共有 DDC を使用しないよう指示します。

  • コマンドラインで -ddc=noshared を渡します。

  • ローカルのハードドライブに環境変数を設定します。

    UE-SharedDataCachePath=c:\DDC

派生データのビルド

一般的に、アセットをインポートする開発者がエンジンでアセットを使用したりテストをする可能性が高いため、 そのユーザーが派生データのビルドを行います。しかし、場合によっては新アセットの 処理が必要となります。これは必要に応じて自然に発生し、高速のハードウェアで実行時には大した影響を及ぼしませんが、 ときおり遅延が生じるかもしれません。

以下の引数を実行ファイルへ引き渡すことによって、いつでも派生したデータキャッシュへ書き込むことができます。

UE4\Engine\Binaries\Win64\UE4Editor.exe MyGame -run=DerivedDataCache -fill 

DDC の事前準備を常に整えるため、この作業は毎夜行っていますが、 自動キャッシュが機能するため通常は必要ありません。

DDC の配布

クックされたビルドは DDC は不要または使用しないため、ゲームのパッケージングには一般的にクックが推奨メソッドです。しかし、 必要に応じて DDC を配布用にパッケージングすることも出来ます。

DDC のパッケージング

  1. UE4/Engine/Binaries/Win64 ディレクトリから UE4Editor.exe を実行して、以下の引数を渡します。

    UE4Editor.exe [GameName] -run=DerivedDataCache -fill -DDC=CreatePak
  2. UE4[GameName]\DerivedDataCache に DDC.ddp ファイルを作成します。

  3. エンジンは .ddp ファイルを自動的に検出して使用します。