“贴图不要太大”“命名应当规范”“无用资源需要清理”——这些要求很容易写进文档。但当资产数量增加,靠每个人记住每一条要求,就很难持续得到一致的结果。

资产检测工具要做的一件事,就是把这些描述变成可以重复执行的判断。设计规则时,我更关注规则能否被理解、定位和维护,而不只是能否输出一个红色的错误。

先把一句话拆开

以一个虚构要求为例:“演示目录中的二维贴图,最大边长不超过 2,048 像素。”至少有三个部分需要独立表达。

组成需要回答的问题示例
范围 Scope哪些对象参加检查?演示目录内的二维贴图
条件 Condition怎样算符合要求?宽、高的较大值 ≤ 2,048
响应 Response发现问题后如何处理?记录对象、实际值与期望值

这里还有一个容易忽略的问题:“边长”究竟指源图尺寸,还是某个平台和配置下使用的尺寸?同一句自然语言可以对应不同检查。规则必须明确数值的来源,报告也应展示这一口径。

下面是独立编写的概念伪代码,用来说明结构,不是 ResourceToolkit 的实际配置格式,也不能直接导入插件。
scope:   DemoTextures / Texture2D
measure: max(SourceWidth, SourceHeight)
expect:  value <= 2048
report:  asset + measuredValue + expectedValue
action:  review

让结果携带足够的证据

“贴图不符合规范”不足以帮助使用者处理问题。更有用的结果是:“T_DemoStone_BC 的源图最大边长为 4,096,本规则要求不超过 2,048。”这给出了对象、实际值与预期值,使用者无需重新猜测检测逻辑。

检查结果还应区分“符合”“不符合”与“未能检查”。如果对象没有成功读取,或所需信息当前不可用,就不能把缺少结果当成通过。跳过检查也应留下原因,避免报告看起来一切正常,却漏掉了关键对象。

把检查与修改分开设计

发现问题,并不代表工具已经知道唯一正确的修改方式。贴图尺寸超出阈值,可能需要调整使用策略,也可能需要重新制作源图。自动处理应只覆盖目的明确、影响范围可理解的情况。

一个可维护的处理流程,可以先显示目标对象与拟修改内容,再执行动作,最后重新检查。只有复检符合条件,才能说明这个问题在当前检查口径下得到解决。动作执行完成,与检查结果通过,是两个不同的信息。

对于不适合自动处理的问题,清晰的定位和解释本身就有价值。不要为了让每条规则都有修复按钮,隐去需要制作人员判断的部分。

把规则当作持续维护的内容

规范会变化,目录和资产类别也会变化。规则应有稳定的标识、明确的适用范围,以及能够解释例外的记录。调整阈值后,用少量符合、不符合和信息缺失的样例重新检查,比只观察报错数量更有意义。

这也是我介绍 ResourceToolkit 时希望先讲清楚的设计方向:让规范有明确的表达,让结果有可追溯的依据,让处理后的状态能够再次验证。规则数量可以逐步增加,使用者对结果的信任需要从第一条规则开始建立。

首页的交互示例展示了阈值、判断与复检之间的关系。它只修改浏览器里的虚构数据,不代表 UE 中的真实资产处理行为。