关于 spritecook-polish-sprites
用于在交付、切片或制作动画前整理精灵图透明度与轮廓的工作流技能。它指导本地比较 Alpha 阈值并进行针对性修补,同时保留原始资源。
主要功能
- 01在本地比较 Alpha 阈值候选
- 02以原尺寸和放大视图检查精灵图
- 03为资源应用选定阈值
- 04指导针对性轮廓修补
- 05检查动画各帧边缘
适用场景
- 01恢复较淡的轮廓像素
- 02减少光晕或背景杂点
- 03切片前检查精灵图
- 04修补生成后缺失的轮廓
MCP 相关
它说明如何使用已连接服务提供的 SpriteCook 资源元数据和阈值工具。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ spritecook/ skills --skill spritecook-polish-sprites安装后在 Claude Code 中输入/spritecook-polish-sprites确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
.gitignorescripts/compare_alpha.pytest_compare_alpha.py详细介绍
SpriteCook 润色精灵图
与 spritecook-workflow-essentials 配合使用。交付、切片或制作动画前,请以精灵图的预期尺寸和最近邻缩放后的尺寸检查已完成的精灵图。如果轮廓和透明度看起来已经不错,就保留原样。边缘清理可能改善效果时,请使用此工作流。
轮廓为何会看起来破损
背景移除会估算每个像素属于主体的程度。即使细线轮廓、低对比度边缘、头发、把手和其他精细细节属于精灵图,它们也可能被赋予部分透明度。通过阈值将这种柔和的 Alpha 转为不透明或透明像素,可能会丢弃这些边缘。后续的侵蚀等清理操作也可能移除像素。
对于受支持的素材,SpriteCook 会保留 Alpha 清理前的图像。较低的阈值可以找回该源图像中仍存在的微弱轮廓像素;较高的阈值则可以去除光晕和背景杂点。Basic 和 Pro 的结果都值得检查。Pro 并不能保证每条边缘都得以保留。
阈值处理无法重建保留源图像中不存在的像素,也无法修复生成错误的形状。只有 Alpha 值 0 和 255 的已处理 PNG 通常不含可恢复的中间 Alpha 值。务必使用保留的源图像,而不要反复处理已经阈值化的预览图。除非用户想要硬朗的像素边缘,否则应让有意设计为半透明的效果保持半透明。
如果保留的源图像本身只有 Alpha 值 0 和 255,那么所有大于零的阈值都会产生相同的透明效果。由于后续侵蚀可能移除了像素,该结果仍可能与保存的输出不同,因此请先与保存的图像进行比较,再作判断。
仅检查一次,在本地比较,仅保存一次
-
调用
get_asset_metadata(asset_id)并检查alpha_editing。该字段会报告available、current_cutoff、provider、processing、source_url、其过期时间,以及预览/动画布局。如果缺少此字段或set_asset_alpha_cutoff,说明已连接的服务尚未提供此工作流。不要臆造工具,也不要悄悄改为运行需要付费的背景移除。 -
如果
available=false,请说明此资源没有可保留的源图。可能需要重新移除背景或进行有针对性的图像编辑;请遵循用户指定的范围和额度预算。停止此阈值工作流。 -
对于
processing="binary_alpha_v1",使用共享的安全下载工作流下载一次source_url。还要下载当前的sprite_url(静态图)或spritesheet_url(动画),以便比较实际保存的结果。URL 会过期;必要时刷新元数据。不要将签名 URL 放入清单或提交的文件中。 -
在本地保存元数据 JSON,并在具备 Python 和 Pillow 的环境中运行捆绑的辅助脚本:
python scripts/compare_alpha.py --metadata asset.json --source preserved.png --current current.png --output-dir alpha-comparison相对于此技能所在目录定位脚本。尽可能使用项目的 Python 环境。必要时将 Pillow 安装到该环境中。辅助脚本不会进行网络调用、不会消耗额度,也不会修改 SpriteCook 资源。它会输出
comparison.png、全尺寸候选 PNG,以及comparison.json。它会从接近已保存阈值的位置开始;使用--cutoffs 48 72 96 120 144可选择其他候选值。每次比较都使用新的输出目录。 -
在浅色和深色背景上检查比较结果,然后以原生尺寸检查有希望的全尺寸候选。留意轮廓是否连续、细小部件是否保留、物体之间是否出现不必要的连接、是否有光晕或零散残留、以及有意设置的透明区域是否丢失。对于动画,检查每一帧的边缘是否闪烁。选择综合效果最佳的候选;仅凭像素数量无法判断质量。应与实际保存的输出进行比较,因为最初的清理也可能应用了腐蚀或其他处理。
-
如有需要,在最佳候选值附近再进行一次本地比较。出现明显改善或没有可用的恢复效果时就停止。不要反复运行需要付费的生成或移除任务来调整此数值。
-
如果某个候选能改善结果,调用一次
set_asset_alpha_cutoff(asset_id, cutoff)。它会更新现有资源、保存阈值、保留源图,且不消耗额度。下载返回的输出,并确认它与所选候选一致。在本地资源清单中记录资源 ID 和所选阈值。如果没有候选能改善结果,则保留已保存的资源。
针对性轮廓修复
若背景移除留下了无法通过调整阈值修复的缺口,为了最大程度保真,请在生成后进行有针对性的手动或脚本像素修复。条件允许时,与移除背景前的原始图像进行比较:从原图恢复缺失的轮廓像素,或使用相邻的轮廓颜色和现有轮廓,重建细小且明确的缺口。可使用本地图像编辑器,或编写带有明确修复遮罩的小脚本。保留精灵图的剪影、轮廓粗细、调色板和有意留出的开口;避免加粗整个轮廓,或自动填充所有透明孔洞。
在浅色和深色背景上以原生尺寸和最近邻放大检查修复结果。对于动画,检查各帧的修复是否一致,边缘有无闪烁。保留原图,并另存一份修复后的 PNG。set_asset_alpha_cutoff 只会保存阈值更改,不会保存自定义像素编辑;如果要在 SpriteCook 中重用修复后的图像,请使用 spritecook-upload-assets 上传,然后对新资源 ID 进行动画处理或引用。在本地清单中记录它与原资源的关系。
处理详情与限制
binary_alpha_v1会保留 RGB;当源图像的 alpha 大于或等于截止值时,将 alpha 设为 255,否则设为 0。截止值范围为 0 到 255。日常清理时避免使用 0:这会让完全透明的像素也变为不透明。- 此辅助工具会保留源图像尺寸,不会调整候选 PNG 的大小或裁剪。
preview_crop只影响对比视图。保存时会使用完整保留的源图像,与应用中的行为一致;将其集成到游戏前,请检查输出尺寸。 - 动画源使用水平 PNG 精灵图,包含标示的
frame_count、frame_width和frame_height。所有帧使用相同的截止值。此辅助工具会拒绝布局不匹配的文件和动画预览文件。 tileset_color_tolerance_v1使用背景颜色容差,而非 alpha 阈值。此辅助工具会有意拒绝该模式;请使用专用的 tileset 边缘清理编辑器,不要将其截止值当作二值 alpha 阈值。- 尽可能先润色包含多个对象的图集,再进行切片。上传或切片后的衍生图可能不包含原始的柔和 alpha 源图像。图集效果满意后,再对其切片,并使用现有的上传和动画技能分别为提取出的素材制作动画。
- 调用保存工具前,本地候选素材会一直保留在本地。只有当用户需要独立副本时,才单独上传候选素材。单独上传的素材不会继承原始素材中可编辑的源图像。