派生数据缓存

概述采用UE4及其目标平台所用格式的派生数据缓存和资源存储。

Windows
MacOS
Linux

派生数据缓存(DDC)以虚幻引擎在其目标平台上使用的格式存储资源的版本,而不是由艺术家创建,然后导入编辑器并存储在“.uasset”中的源格式。存储在DDC中的内容允许使用后即丢弃,因为它可以随时使用存储在“.uasset”中的数据重新生成。将这些派生格式存储在外部可以轻松地添加或更改引擎使用的格式,而不需要修改源资源文件。

使用共享DDC

Studio应该使用一个所有特定位置的用户都可以访问的共享DDC。这样,只有一个用户需要构建派生的资源格式,而这些格式将自动可供所有其他用户使用。虽然需要处理资源时偶尔会出现停顿,但是结果会被存储和共享。即使在相当小的团队中,以这种方式共享资源处理工作也会大大地减少处理时间。

不建议在Internet上复制整个DDC、备份DDC或从备份还原DDC。虽然上述操作不会造成任何损害,但它们会浪费时间,因为传输存储在DDC中的数据量要比在本地从头生成数据花费更长的时间。

若要设置一个共享的DDC,请通过在您游戏的“DefaultEngine.ini”文件中声明以下部分来覆盖“ [InstalledDerivedDataBackendGraph]”或“[DerivedDataBackendGraph]”的路径(这取决于是使用Epic Games Launcher中的二进制安装还是从源码编译)。此部分最初在“BaseEngine.ini”中声明,其中路径设置为Epic的内部DDC共享。重新声明此部分并更改路径以指向网络上的共享。

  • Windows: (Path=\\mystudio.net\DDC)

  • Mac: (Path=/Volumes/UE4DDC)

选择安装方法:

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

构建派生数据

导入资源的用户是构建派生数据的用户,因为他们最有可能在引擎中使用和测试该资源。但是,有时也可能会出现需要处理新资源的情况。这种情况根据需要自动发生,而且在高速硬件上运行时应当不会造成太大的影响,尽管可能会出现偶尔的停顿。

您可以通过运行以下命令随时填充您的DDC:

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

虽然Epic Games每夜都会执行此操作,以确保DDC始终处于就绪状态,但这项工作并非必做不可,因为常规的自动缓存功能应当即已满足需要。

导入资源的用户是构建派生数据的用户,因为他们最有可能在引擎中使用和测试该资源。但是,有时也可能会出现需要处理新资源的情况。这种情况根据需要自动发生,而且在高速硬件上运行时不会造成太大的影响,尽管可能会出现偶尔的停顿。

您可以通过运行以下命令随时填充您的DDC:

open -a "ProjectName.app" --args -run=DerivedDataCache -fill

虽然Epic Games每夜都会执行此操作,以确保DDC始终处于就绪状态,但这项工作并非必做不可,因为常规的自动缓存功能应当即已满足需要。

加载DDC文件夹

对于在内部网络中使用的DDC,包含DDC的文件夹必须被加载到一个网络驱动器。如果您对该操作不熟悉,请查看以下链接了解详情:

*Map A Network Drive on Windows

使用DDC分配

烘焙是打包游戏的首选方法,因为烘焙的版本不需要(或不使用)DDC。但是,如果需要,可以将DDC打包分发。

若要将DDC打包,请执行以下操作:

  1. 从“UE4/Engine/Binaries/Win64”目录运行“UE4Editor.exe”,传递如下所示的参数:

    UE4Editor.exe ProjectName -run=DerivedDataCache -fill -DDC=CreatePak
  2. 这会在“UE4\ProjectName\DerivedDataCache”目录中创建“DDC.ddp”文件。

  3. 引擎将自动检测和使用“.ddp”文件。

烘焙是打包游戏的首选方法,因为烘焙的版本不需要(或不使用)DDC。但是,如果需要,可以将DDC打包分发。

若要将DDC打包,请执行以下操作:

  1. 从“cd /PathToUE4/Engine/Binaries/Mac”目录运行“UE4Editor.app”,传递如下所示的参数:

    open -a UE4Editor.app --args -run=DerivedDataCache -fill -DDC=CreatePak

  2. 这会在“UE4\ProjectName\DerivedDataCache”目录中创建“DDC.ddp”文件。

  3. 引擎将自动检测和使用“.ddp”文件。

标签

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见