関連ブログ
- [UE4][UE5]開発環境の容量を少しでも減らす 2024.08.14UE
- [UE5] PushModel型のReplicationを使い、ネットワーク最適化を図る 2024.05.29UE
- [UE5]マテリアルでメッシュをスケールする方法 2024.01.17UE
CATEGORY
2018.06.09UE4
プロジェクト、エンジンフォルダにいつの間にかDerived Data Cacheというフォルダが作成されています。
このDDCですが、主にアセットのシェーダーコンパイルした情報が格納されます。なのでDDCフォルダを削除した後にエディタを起動するとシェーダーコンパイルが走っちゃいます。エディタ起動時に毎回シェーダコンパイルの必要がなかったのはこのファイルのおかげでした!プロジェクト一式をそのまま渡す際にはDDCも含めてあげると無駄にシェーダーコンパイルが起こらなくなく便利です。
デフォルトの状態だとローカル環境でしか更新されないため、チーム制作などでチームメンバーの誰かがマテリアルを編集したりするとエディタ起動やレベルを開いたときなどそのマテリアルが参照されたタイミングでシェーダーコンパイルが走ってしまいます。小さい規模であれば変更したアセットも多くなくそこまで気にならないのかもしれませんが、開発が大きくなってくるとシェーダーコンパイルを待つ時間が多くなったり、エディタの起動が遅くなったりとストレスがたまってしまいます…。
DDCが共有できるとマテリアルなどのアセットファイル編集者がシェーダーコンパイルした結果をそのまま別の人でも使用できます。なんてすばらしいんでしょう!ストレスフリーですね!
では早速方法を見てみましょう。
といっても方法はとっても簡単です。[ProjectPath]/Config/DefaultEngine.iniの最後に以下のコード追加するだけでOKです!
1 2 3 4 5 6 7 8 9 10 |
[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) Pak=(Type=ReadPak, Filename=%GAMEDIR%DerivedDataCache/DDC.ddp) EnginePak=(Type=ReadPak, Filename=../../../Engine/DerivedDataCache/DDC.ddp) |
色々何か書いてありますが、変更する場所は
(※見やすいように、中間のコマンドは省略しています!)
のみです。=の後に共有先のDDCのパスを設定してください。
これでエディタを起動しなおすと指定したパスにDDCファイルが作成されると思います。
お手軽に重そうなエレメンタルで起動確認してみましたが、DDCを消した状態でエディタの起動からシェーダーコンパイルが終了するまでに15分以上はかかっていたところ、共有設定をし、あらかじめDDCを共有先に作成して起動したエレメンタルでは1分ほどですぐエディタ起動が行えました!超快適!
コード自体は何しているのか自分もはっきりといえるほど理解はしていないですが(申し訳ないです…)、お手軽に開発の高速化が行えるのでぜひお試しください!