用途
本技能针对 three.js 项目的运行时图片资源做手动优化,目标是在保持视觉质量、运行时行为和渠道兼容性的前提下压缩运行时图片体积,并给出可复现的优化报告。它属于显式触发的资源领域任务,只有在用户显式调用 $threejs-game-image-optimization 时才提出任务;显式调用只触发提案,不等于授权写入。
控制面与副作用边界
可提议、可审查、可在当前用户任务的 Work Item 范围内修改,且必须回到 $threejs-game-workflow-control 审计和状态迁移。A0-A3 写入直接依据当前任务范围;仅涉及外部写入、付费、真机、破坏性或外部删除、发布副作用的 A4-A6 操作才请求精确批准。本 Skill 不拥有全局状态或审批,不得旁路 diff 审计与证据门,也不得自动加入构建脚本、Git 钩子或 CI,或由发布状态隐式触发。
处理范围
默认只处理项目内被运行时代码、资源清单或加载配置引用的 PNG、JPEG 和 WebP。设计源文件、参考图、审核证据、截图、测试夹具、构建产物、缓存以及未被运行时引用的素材不在范围内。GIF、APNG、纹理图集、法线图、像素画、九宫格和带特殊色彩空间的图片属于高风险资源,需保留其帧、像素网格、通道、边界和元数据语义,只在相应验证可执行时处理。
使用方式与主要流程
确定用户指定的目录、目标渠道、允许格式、画质底线和体积目标;未指定目录时从资源加载代码、资源清单和构建入口反查实际运行时图片。建立压缩前基线,逐文件记录路径、引用位置、格式、字节数、宽高、透明通道、动画或图集属性并汇总总大小;用内容哈希识别重复文件,但未经引用分析不得合并或删除。在独立候选目录生成结果,禁止直接覆盖原文件,记录工具、固定版本、完整参数和退出状态,优先复用项目已有工具。
默认保持原格式、尺寸、方向和文件名:PNG 优先执行无损元数据清理与无损压缩,仅当画质底线允许且相关验证齐全时才使用有损调色板量化;JPEG 仅处理不依赖透明度的图片,使用受控质量的渐进式压缩并移除非必要元数据,不改变 EXIF 方向呈现;WebP 先判断是否已接近最优,重复有损编码无明确收益时保留原文件。仅当用户允许格式迁移,且目标渠道、ThreeJS 加载器和降级策略均已验证时,才转换为 WebP 或 AVIF,并同步修改引用、资源清单和加载配置,不保留无引用的双份运行时资源。精灵表、纹理图集、九宫格和像素画不得缩放、裁切、补边、重排或改变帧坐标,只允许压缩其图像容器。
验证与替换
对每个候选执行结构与画质验证:解码成功;宽高、方向、透明度、帧数和图集坐标保持一致;无损候选比较解码后像素;有损候选检查透明边缘、渐变、文字、细线、像素网格和代表性放大差异;证据不足时保留原文件并标记“未验证”。在 ThreeJS 中实际加载受影响资源并验证至少一个引用场景,涉及图集、九宫格、像素画或动画时验证对应运行状态,随后运行受影响测试和生产构建,确认无加载错误、路径错误、采样异常或候选文件误入构建。只有候选体积更小且全部适用验证通过时才替换原文件,否则保留原文件;替换后再次核对引用与版本控制差异,确保修改范围仅包含获准资源及必要引用。
结果报告
在用户指定位置或项目既有证据目录写入报告;两者都不存在时直接在任务结果中提交,不擅自创建长期流程文档。报告至少包含:优化范围、排除项、目标渠道、工具版本与参数;每个文件的原始大小、优化后大小、节省字节数与比例及保留或拒绝原因;总体积前后对比,分别列出源资源与生产构建中的实际变化;结构、画质、ThreeJS 运行、测试和生产构建证据;格式迁移产生的引用修改、未验证项、剩余风险和回退方式。不得用“命令成功”代替画质与运行验证,也不得在缺少压缩前基线时声称已节省体积。
适用场景
适用于用户明确要求优化 three.js 项目运行时位图资源的场景,包括盘点引用图片、生成压缩候选、验证兼容性并在受控范围内替换资源。不适用于设计源文件处理、非运行时素材清理、未触发时的自动优化等情形。