UE4/UE5 DDC缓存迁移指南:解放C盘空间,优化开发环境

发布时间:2026/8/6 8:17:11
UE4/UE5 DDC缓存迁移指南:解放C盘空间,优化开发环境 1. 项目概述当C盘亮起红灯你的UE项目还好吗如果你是一名UE4或UE5的开发者那么对C盘空间“神不知鬼不觉”地被吞噬一定深有体会。明明项目文件都放在D盘或E盘但C盘可用空间却像开了闸的洪水一样飞速减少。罪魁祸首十有八九就是那个名为“DerivedDataCache”派生数据缓存简称DDC的文件夹。它默认就盘踞在你的系统盘通常是C盘用户目录下随着你导入的每一个高精度模型、每一张贴图、每一个材质它都会忠实地生成并存储海量的中间数据以便下次打开项目时能快速加载无需重新编译。这本是提升开发效率的贴心设计但对于动辄256GB甚至512GB的C盘来说几十上百GB的DDC缓存无疑是沉重的负担。我见过太多同行因为C盘爆满导致编辑器启动失败、编译卡死甚至系统运行都变得异常缓慢。手动清理固然能解一时之急但下次打开项目漫长的着色器编译等待又会让效率大打折扣。最根本的解决方案就是将这个“数据怪兽”从寸土寸金的C盘迁移到空间更充裕的其他硬盘分区。这不仅仅是移动一个文件夹那么简单它涉及到UE引擎配置的核心逻辑。网上教程虽多但要么语焉不详要么只讲其一不讲其二特别是对于不同版本的UE尤其是UE5.3之后引入的Zen存储架构操作细节差异巨大一步走错就可能导致编辑器无法启动或缓存失效。今天我就以一个踩过无数坑的“老司机”身份为你带来一份真正保姆级的DDC缓存迁移指南。我们将从原理讲起手把手教你如何安全、彻底地将DDC迁移到其他盘并深入解读关键的配置文件BaseEngine.ini让你不仅知其然更知其所以然。无论你是UE4用户还是已经升级到UE5甚至是正在体验最新版本这篇文章都能帮你一劳永逸地解决C盘空间危机。2. DDC缓存深度解析它是什么为何如此“膨胀”在动手迁移之前我们必须先搞清楚对手的底细。盲目操作配置文件就像在不看地图的情况下闯入迷宫。2.1 DDC的本质引擎的“速记本”你可以把DDC想象成UE引擎的一个巨型“速记本”。当你把原始资源如.fbx模型、.png贴图、材质蓝图导入项目时引擎并不能直接使用它们。它需要对这些资源进行一系列复杂的“翻译”和“预处理”工作着色器编译将材质节点网络转换为GPU能理解的机器代码。纹理转换将源图片转换为游戏运行时所需的特定格式如BC压缩格式和不同尺寸的Mipmap链。几何体处理对静态网格体进行优化可能生成碰撞体数据、光照贴图UV等。音频编码将.wav等源文件编码为游戏内使用的格式。这些处理过程非常耗时。DDC的作用就是把这些处理好的“成品”或“半成品”数据缓存起来。下次你或你的团队成员打开项目、加载关卡时引擎会优先检查DDC里有没有现成的缓存数据。如果有就直接读取瞬间完成加载如果没有才需要现场重新处理。2.2 DDC的存储位置与版本变迁DDC的默认存储路径因操作系统和UE版本而异这是导致混乱的第一个源头。对于UE4以及UE5.3及更早版本默认的本地DDC路径通常是Windows:C:\Users\[你的用户名]\AppData\Local\UnrealEngine\Common\DerivedDataCacheMac:/Users/[你的用户名]/Library/Caches/Unreal Engine/Linux:/home/[你的用户名]/.local/share/UnrealEngine/Common/DerivedDataCache这是一个典型的“文件系统Filesystem”型DDC里面是成千上万个按哈希值命名的文件夹和文件。你项目里用到的每一个资源其派生数据都以文件形式散落在这里。对于UE5.4及更新版本重大变化Epic引入了名为“Unreal Zen Storage”简称ZenServer的新后端来管理本地DDC。这是一个运行在后台的服务将缓存数据存储在一个更高效、更集中的数据库中而不是海量小文件。默认路径如果未自定义C:\ProgramData\Epic\Zen\Data\行为变化旧的文件系统DDC文件夹上面提到的那个并不会被立即删除而是会被设置为“只删除”模式。ZenServer会从中读取已有数据并转换到自己的存储中并在约8天后清理旧文件夹中的未使用数据。这意味着在迁移初期你的磁盘上可能会存在两份数据占用双倍空间这是很多人在升级UE5后感觉C盘空间被“偷袭”的主要原因。注意即使你使用的是UE5.4引擎仍然兼容并通过环境变量或配置来支持旧的文件系统路径。我们的迁移操作本质上就是通过配置将这个存储路径无论是文件系统还是Zen指向一个新的、非系统盘的位置。2.3 为何DDC会变得如此巨大项目规模一个中型以上的游戏项目资源量是惊人的。4K/8K纹理、数百万面的模型其派生数据轻松突破百GB。多平台支持DDC会为不同的目标平台Windows、Android、iOS等存储不同的缓存数据。为Windows编译的着色器与为Android编译的完全不同。版本迭代当你修改一个材质并保存时引擎会为这个新版本生成全新的缓存数据而旧版本的缓存可能不会立即被清理。引擎内容即使是空项目引擎自带的那些基础材质、模型、贴图的派生数据也会被缓存这部分也不小。理解了这些你就会明白迁移DDC不是简单的“剪切-粘贴”而是需要通知引擎“嘿以后你的速记本换到D盘去写了”。这就需要修改它的“工作习惯”——配置文件。3. 迁移前的关键准备与方案选择磨刀不误砍柴工。直接修改系统文件是危险的在开始前请务必完成以下准备工作。3.1 确认你的UE版本与DDC类型这是最重要的一步决定了你后续的操作方法。打开Epic Games启动器或你的UE安装目录确认你使用的是UE4还是UE5如果是UE5具体是哪个小版本如5.2 5.3 5.4。导航到默认的DDC路径见上一节查看文件夹状态。如果里面是FileSystemCache之类的文件夹和大量散乱文件你用的是传统文件系统DDC。如果这个文件夹看起来很久没更新或者你同时在C:\ProgramData\Epic\Zen\下发现了新文件夹那么你很可能已经在使用Zen Storage DDC。3.2 备份备份备份任何涉及修改配置和移动数据的操作都必须备份。备份现有DDC可选但推荐将整个默认DDC文件夹复制到另一个安全的位置比如你的目标盘。如果迁移过程中出现问题你可以将其移回原位恢复原状。备份配置文件找到你的引擎配置文件BaseEngine.ini。它通常位于[你的UE安装目录]\Engine\Config\下。复制一份重命名为BaseEngine.ini.backup。3.3 选择目标迁移路径选择一个空间充足、性能较好的非系统盘分区。通常D盘或E盘是首选。建议路径格式D:\UE_DDC或E:\UnrealEngine\DerivedDataCache路径命名原则避免使用中文和特殊字符使用简单的英文和数字确保路径中没有空格虽然现代系统大多支持但为避免未知问题最好不用。3.4 方案选择环境变量 vs 修改INI文件有两种主流方法可以改变DDC路径它们各有优劣方法优点缺点适用场景环境变量法1. 不修改引擎原始文件最安全。2. 对所有UE项目全局生效一劳永逸。3. 优先级最高覆盖INI文件设置。1. 需要设置系统或用户环境变量对新手稍有门槛。2. 如果环境变量被意外删除或修改路径会失效。绝大多数个人开发者、小型团队的首选。干净、全局、影响可控。修改INI文件法1. 直接修改配置直观。2. 可以针对特定引擎版本或项目进行精细配置。1. 直接修改BaseEngine.ini升级引擎时可能被覆盖。2. 需要理解INI文件结构容易改错。3. 对全局生效灵活性不如项目级配置。适合需要为特定引擎分支定制路径或进行深度配置研究的用户。我的个人建议对于99%的普通开发者优先使用环境变量法。它更安全更干净也更容易撤销。我们接下来会对两种方法都进行详解但重点推荐环境变量法。4. 保姆级迁移实操两种方法详解我们将从最推荐、最安全的环境变量法开始。4.1 方法一使用环境变量推荐首选这种方法通过设置一个名为UE-LocalDataCachePath的系统环境变量告诉UE引擎将本地DDC存储在哪里。这是Epic官方支持且优先级最高的方式。步骤1创建目标文件夹在你的目标盘例如D盘根目录或你喜欢的路径下创建一个新文件夹。例如D:\UnrealEngine\DerivedDataCache。这个文件夹名称可以自定但建议保持清晰。步骤2设置系统环境变量Windows在Windows搜索栏输入“环境变量”选择“编辑系统环境变量”。在弹出的“系统属性”窗口中点击右下角的“环境变量(N)...”按钮。在“系统变量”区域如果想仅为当前用户设置则在“用户变量”区域点击“新建...”。变量名输入UE-LocalDataCachePath注意大小写和中间的横线必须完全一致。变量值输入你刚才创建的目标文件夹的完整路径例如D:\UnrealEngine\DerivedDataCache。点击“确定”保存所有打开的窗口。步骤3验证与生效重启任何相关的应用程序设置环境变量后你需要关闭并重新打开任何可能读取它的程序。这包括Epic Games启动器Visual Studio / Rider任何已经打开的CMD或PowerShell终端最重要的是如果你正在运行UE编辑器请完全关闭它。启动UE编辑器验证打开一个UE项目。在编辑器内点击菜单栏的“编辑(Edit)” - “编辑器偏好设置(Editor Preferences)”。在左侧导航中找到“常规(General)” - “全局(Global)” - “派生数据缓存(Derived Data Cache)”。查看“本地缓存路径(Local Cache Path)”或类似选项。如果设置成功这里应该显示为你刚才设置的新路径D:\UnrealEngine\DerivedDataCache而不是原来的C盘路径。检查文件夹打开你设置的目标文件夹D:\UnrealEngine\DerivedDataCache。首次启动UE并加载一些资源后这个文件夹内应该开始生成新的缓存文件和目录结构。实操心得环境变量修改后必须重启所有相关进程才能生效。我遇到过最常见的问题就是用户设置了变量但没关Epic启动器就直接开UE导致设置无效。一个彻底的验证方法是打开一个新的CMD窗口输入echo %UE-LocalDataCachePath%如果正确显示你的路径说明变量已生效。4.2 方法二直接修改BaseEngine.ini文件如果你想深入了解引擎配置或者有特殊需求可以直接修改引擎的配置文件。请注意直接修改BaseEngine.ini在引擎升级时可能会被覆盖建议修改前备份。步骤1定位并备份配置文件找到文件[你的UE安装目录]\Engine\Config\BaseEngine.ini。例如D:\Epic Games\UE_5.3\Engine\Config\BaseEngine.ini。先将其复制备份。步骤2理解关键配置段用记事本或VS Code等文本编辑器打开BaseEngine.ini。我们需要关注的是[DerivedDataBackendGraph]这个段Section。在这个段里定义了DDC的后端图Backend Graph即数据缓存的层级和路径。对于UE5.3及之前版本文件系统DDC你会看到类似下面的定义[DerivedDataBackendGraph] ; 其他配置... Local(TypeFileSystem, ReadOnlyfalse, Cleanfalse, Flushfalse, DeleteUnusedtrue, UnusedFileAge34, FoldersToClean10, Path%ENGINEVERSIONAGNOSTICUSERDIR%DerivedDataCache, EnvPathOverrideUE-LocalDataCachePath, EditorOverrideSettingLocalDerivedDataCache)关键参数是Path%ENGINEVERSIONAGNOSTICUSERDIR%DerivedDataCache。这个%ENGINEVERSIONAGNOSTICUSERDIR%是一个变量它解析后通常就指向了C盘的用户目录。对于UE5.4版本Zen DDC配置会更复杂可能引用ZenServer但原理相通最终会有一个指向存储位置的路径或配置。步骤3修改Path参数传统文件系统DDC对于使用传统文件系统DDC的情况最直接的方法是修改Local后端中的Path值。找到Local(TypeFileSystem, ...)这一行。将其中的Path...部分替换为你自定义的绝对路径。例如PathD:\UnrealEngine\DerivedDataCache注意修改后该行可能看起来像这样Local(TypeFileSystem, ReadOnlyfalse, Cleanfalse, Flushfalse, DeleteUnusedtrue, UnusedFileAge34, FoldersToClean10, PathD:\UnrealEngine\DerivedDataCache, EnvPathOverrideUE-LocalDataCachePath, EditorOverrideSettingLocalDerivedDataCache)重要即使你修改了这里的Path后面的EnvPathOverrideUE-LocalDataCachePath依然有效。这意味着如果你同时设置了环境变量环境变量的优先级会高于这里INI文件中的Path设置。这是为了提供更灵活的覆盖机制。步骤4处理Zen Storage DDCUE5.4在UE5.4中默认的本地DDC可能已经指向Zen。此时修改BaseEngine.ini可能不那么直接因为Zen的存储路径由其自身的服务配置管理。更可靠的方法仍然是使用环境变量UE-LocalDataCachePath。 当你设置了这个环境变量ZenServer会尊重这个配置并将其数据存储在[你设置的路径]\Zen\Data\下。例如如果你设置了UE-LocalDataCachePathD:\UE_Cache那么Zen DDC的实际数据将位于D:\UE_Cache\Zen\Data\。步骤5保存并测试保存BaseEngine.ini文件然后启动UE编辑器。同样通过“编辑器偏好设置”中的“派生数据缓存”设置页面验证本地缓存路径是否已更新为你设置的新位置。踩坑警告直接修改BaseEngine.ini时务必注意INI文件的语法。括号、逗号、引号必须配对正确一个多余的逗号或缺失的括号都可能导致整个段解析失败进而可能使编辑器无法启动。修改后建议用编辑器的“验证配置”功能如果有检查一下或者至少能正常启动编辑器。5. 迁移后的优化、验证与故障排查迁移操作完成后并不意味着万事大吉。以下几个步骤能确保你的新缓存系统稳定高效地运行。5.1 清理旧缓存与转移现有数据迁移后你的新DDC文件夹是空的而旧的C盘DDC文件夹里还有几十甚至上百GB的数据。你有两个选择方案A从零开始推荐给追求纯净或旧缓存问题多的用户完全关闭UE编辑器和Epic Games启动器。直接删除旧C盘路径下的整个DerivedDataCache文件夹例如C:\Users\...\DerivedDataCache。启动UE项目引擎会按需在新位置重新生成所有派生数据。首次打开项目可能会经历一次完整的着色器编译耗时较长但之后就会恢复正常。方案B迁移现有数据希望减少首次编译等待完全关闭UE编辑器和Epic Games启动器。将旧C盘DDC文件夹内的所有内容复制到新路径的文件夹内。启动UE项目。引擎会识别并利用这些已存在的缓存数据。我的建议对于大型项目如果旧缓存使用时间很长里面可能堆积了多个资源版本的无效缓存。我通常推荐方案A虽然首次编译痛苦但能获得一个干净、高效的缓存库避免一些因缓存不一致导致的诡异问题如材质显示错误。你可以挑一个不赶进度的下午进行此操作。5.2 验证迁移是否成功通过多种方式交叉验证确保DDC确实跑在了新位置编辑器内验证如前所述在“编辑器偏好设置 - 派生数据缓存”中查看路径。文件系统验证打开你的新目标文件夹如D:\UE_DDC启动UE并打开一个资源较多的关卡。观察该文件夹的大小是否在增长是否有新的文件和文件夹被创建。日志验证最可靠启动UE时可以查看输出日志Output Log。搜索“LogDerivedDataCache”相关的条目。你应该能看到类似这样的信息LogDerivedDataCache: Found environment variable UE-LocalDataCachePathD:\UE_DDC LogDerivedDataCache: Using Local data cache path D:\UE_DDC: Writable这明确显示了引擎正在使用你设置的新路径。5.3 常见问题与解决方案实录即使按照教程操作也可能遇到一些“坑”。以下是我和同事们总结的常见问题及解决方法。问题1设置了环境变量但UE编辑器仍然使用C盘旧路径。可能原因1环境变量设置后没有重启Epic Games启动器和UE编辑器。解决方案彻底关闭所有相关进程再重新打开。可能原因2环境变量名拼写错误。必须是UE-LocalDataCachePath。解决方案仔细检查变量名确保大小写和横线无误。可能原因3设置了“用户变量”但编辑器以系统服务或其他用户身份运行通常不会。解决方案尝试在“系统变量”中也添加同一个变量。诊断命令打开一个新的命令提示符CMD输入set UE然后按Tab键自动补全看是否能列出UE-LocalDataCachePath并显示正确值。问题2迁移后打开项目出现着色器编译错误或材质显示为紫色/黑色。可能原因新旧缓存数据不兼容或者缓存损坏。解决方案尝试在编辑器菜单中选择“着色器(SHADER)” - “编译所有着色器(Compile all shaders)”。如果问题依旧尝试清除缓存关闭UE删除新DDC文件夹下的所有内容然后重新打开项目让引擎完全重新编译。这是最彻底的解决方法。问题3C盘空间并未释放旧DDC文件夹仍然很大。可能原因你只配置了新路径但没有删除或移动旧数据。解决方案确认新路径正常工作后按照5.1节的方法安全地删除旧C盘的DDC文件夹。对于UE5.4的Zen模式旧的FileSystem文件夹可能在8天自动清理期过后才会被删除你可以手动删除它确保编辑器已关闭。问题4使用网络驱动器或速度较慢的机械硬盘作为DDC路径导致编辑器卡顿。可能原因DDC需要频繁的读写操作低速存储会成为瓶颈。解决方案强烈不建议将DDC放在网络驱动器或普通机械硬盘上。应优先选择本地的NVMe SSD或SATA SSD。如果你必须使用较慢的磁盘可以在BaseEngine.ini的DDC配置中调整参数例如增加ConsiderSlowAt的值单位毫秒让引擎对延迟更宽容但这治标不治本。问题5多人协作时如何统一团队的DDC路径个人本地DDC要求每位成员按照本文方法将本地DDC迁移到自己机器的大容量硬盘上。这是个人效率问题。共享DDCShared DDC对于团队可以设置一个共享DDC服务器网络文件共享或ZenServer用于共享核心资源的派生数据避免重复编译。这需要修改项目配置DefaultEngine.ini并设置UE-SharedDataCachePath环境变量或配置。切记共享DDC是团队效率工具不能替代本地DDC它通常与本地DDC配合使用形成缓存层级。6. 高级技巧与深度配置解析对于想要更精细控制DDC行为的高级用户这里有一些额外的配置选项和技巧。6.1 理解BaseEngine.ini中的DDC配置参数在[DerivedDataBackendGraph]段中每个后端如Local, Shared的配置括号内有一系列参数。了解它们有助于你调试和优化Type: 后端类型如FileSystem,Zen。ReadOnly: 是否只读。本地缓存通常是false可写只读Pak缓存是true。Clean: 启动时是否清理。一般设为false。DeleteUnused: 是否删除未使用的文件。设为true可以让DDC自动清理老旧缓存。UnusedFileAge: 文件在被视为“未使用”之前的天数。默认34天。你可以根据磁盘空间情况调低如14天让清理更激进。Path: 存储路径支持环境变量如%UE-LocalDataCachePath%和绝对路径。EnvPathOverride: 指定一个环境变量名来覆盖此路径。这正是UE-LocalDataCachePath起作用的原因。DeactivateAt: 对于Shared DDC尤其有用设置一个延迟阈值毫秒。如果访问该DDC的延迟超过此值引擎会自动禁用该后端。这对于网络不稳定的共享DDC非常有用可以防止编辑器卡死。例如DeactivateAt100。6.2 为不同项目或引擎版本使用不同的DDC路径如果你同时维护多个UE版本如UE4.27, UE5.1, UE5.3或多个大型项目让它们共享同一个DDC路径有时会引起冲突或管理混乱。你可以通过批处理文件或启动脚本动态设置环境变量。例如创建一个名为Launch_UE5.3.bat的批处理文件内容如下echo off set UE-LocalDataCachePathD:\UE_Cache\UE5_3 start D:\Epic Games\UE_5.3\Engine\Binaries\Win64\UnrealEditor.exe而Launch_MyProject.bat可以是echo off set UE-LocalDataCachePathE:\DDC\MyProject start D:\Epic Games\UE_5.2\Engine\Binaries\Win64\UnrealEditor.exe E:\Projects\MyProject\MyProject.uproject这样通过不同的脚本启动就能为不同的工作场景指定独立的DDC缓存位置互不干扰。6.3 监控DDC大小与健康状态定期检查你的DDC文件夹大小是个好习惯。你可以使用诸如TreeSize Free、WizTree这样的磁盘空间分析工具快速查看哪个项目或哪种资源类型占用了最多的缓存空间。如果发现某个项目的DDC异常庞大可以考虑手动清空其对应的缓存子目录在关闭UE的情况下然后重新打开项目编译。有时陈旧的、无效的缓存条目会一直堆积。6.4 关于“共享DDC”与“云DDC”的简要说明本文主要解决个人本地DDC的迁移。对于团队环境共享DDC在局域网内设置一个中心化的文件服务器或ZenServer团队成员将其配置为Shared后端。这能极大减少团队整体的着色器编译时间。配置方法是在项目的DefaultEngine.ini中覆盖[DerivedDataBackendGraph]的Shared设置或设置UE-SharedDataCachePath环境变量指向网络路径。云DDCEpic为分布式团队提供的解决方案数据存储在云端。配置更为复杂需要设置OAuth认证等一般用于大型企业或项目。对于个人开发者和小型团队管理好本地DDC必要时在局域网内搭建一个简单的SMB共享文件夹作为共享DDC已经能获得巨大的效率提升。迁移DDC缓存本质上是一次对UE引擎工作流的深度定制。它不仅能解放你宝贵的C盘空间更能让你对引擎的资源管理机制有更深刻的理解。按照本文的步骤操作你完全可以安全、平稳地完成这次迁移。从此C盘空间告急的警报将与你无关你可以更专注于创造令人惊叹的虚拟世界。如果在操作中遇到任何独特的问题不妨去开发者社区搜索一下日志中的错误关键词通常都能找到解决方案。毕竟每个开发者的机器环境都是一片独特的“战场”而灵活应对正是我们的专业素养。

相关新闻