资源去重工具

资源去重工具(Asset Deduplicator)可以查找当前关卡中可用与共享资源匹配的链接替换的资源。它通过将重复的文件替换为 .link 文件来减小关卡体积,并确保关卡中的资源引用依然可以通过引擎的链接文件系统被正常加载。

当一个关卡中已经存在本地拷贝的资源,而这些资源在共享文件夹(如 /assets//art/)、预置关卡或其他已扫描内容中也已存在时,建议使用此工具进行去重。

你可以在世界编辑器窗口的菜单栏,通过 资产 > 资源去重工具 打开该工具。

执行“应用”操作会移除所选重复文件,并在其位置生成 .link 文件。在应用更改前请仔细检查预览,并备份未打包的关卡或模组内容。该工具仅适用于可以直接修改文件的未打包内容。

缓存生成

当工具打开时,会在 /temp/assetdeduplicator.cache.json 路径下构建或加载一个缓存。该缓存包含共享资源文件夹、内置和模组关卡、以及当前关卡的资源信息。

缓存的作用是避免每次检测都需要重新扫描所有资源文件夹。它会记录当前游戏版本和所加载关卡的扫描结果。如果游戏版本、缓存版本或当前关卡数据发生变化,工具可能会重建相关缓存部分。

如果缓存过期,可使用以下操作:

  • 重置当前关卡资源缓存:仅清除当前关卡的数据,以便重新扫描。
  • 深度清理资源缓存:清除完整缓存,强制所有资源组重新建立缓存。

在关卡内部添加、删除、重命名或移动文件后,请重置当前关卡缓存。当共享资源已变更,或显示结果与实际磁盘文件不符时,请使用深度清理。

比较模式

工具支持两种资源比对模式:

  • 文件哈希对比:对内容完全一致的文件进行匹配。这是最安全的方式,因为匹配到的资源在字节级别完全一致。
  • 文件名对比:通过文件名进行匹配。这会找到更多的候选项,但同名文件内容可能不同,因此需要进行人工审核。

允许链接到模组资源 选项可让链接指向模组内的资源。在开发时有时非常有用,但同时风险更高,因为目标模组可能未安装或会被独立修改。

通常建议在日常清理时优先使用文件哈希对比。只有在明确需要查找潜在重复项并准备好检查目标文件时,才使用文件名对比

对于必须避免特定模组依赖的内容,请保持“允许链接到模组资源”处于关闭状态。

重复资源检测

  1. 选择对比模式。
  2. 决定是否启用允许链接到模组资源选项。
  3. 点击 运行检测
  4. 等待检测完成。

当检测到重复候选项时,工具会显示可移除的文件数量以及可节省的关卡空间大小。

检测过程中,工具会将当前关卡文件与缓存的资源组进行对比,并搜索合适的链接目标。优先选择共享资源位置作为目标,因为这些位置比本地副本更为稳定。

预览和应用

点击 预览并应用 打开候选文件列表。预览中会显示原始文件和即将替换它的链接目标。

在预览界面:

  • 可使用 全选全部清除 来管理候选列表。
  • 如果支持预览,点击某一行可将图片资源进行并排对比。
  • 应用前请仔细检查建议的链接目标,特别是在使用文件名对比模式时。
  • 仅当选中文件列表无误时再点击 接受

点击接受后,工具会移除每个选中的重复文件,并写入一个指向目标资源的 .link 文件。

对于图片资源,点击某行可以打开并排比较视图。建议在接受基于文件名的匹配前使用此功能,因为即使文件名相同,两张贴图也可能存在分辨率、颜色数据、压缩方式或透明度的不同。

链接输出

对于每个被接受的候选项,原始文件会被移除,并在原路径加 .link 扩展名后生成一个 .link 文件。链接文件存储了选中的目标路径,告知引擎加载共享资源,而不是保留单独的本地副本。

例如,一个重复的本地贴图可以被链接到 /assets/ 目录下的贴图。关卡仍引用本地路径,但其实通过链接重定向到共享目标。

如果链接失败,工具会报告对应的文件及错误。常见原因包括打包后的模组、只读文件、缺失文件权限,或缓存生成后文件发生变化。

安全使用检查清单

执行操作前:

  1. 除非有特殊需要进行文件名匹配,否则请优先使用哈希对比。
  2. 在预览中仔细检查已选候选项。
  3. 确认链接目标为稳定的共享资源。
  4. 除非明确需要依赖,否则请保持模组链接关闭。
  5. 应用前请备份解包内容或提交最新工作进度。

操作完成后,重新加载关卡,并使用 资源检查器 确认贴图、模型和材质等资源依然能够正确解析。

相关工具

上一次修订: 六月 22, 2026

还有其他问题?

加入我们的 Discord 服务器
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.