mcpField
S
spritecook-polish-sprites

spritecook-polish-sprites

github.com/spritecook创意与媒体49125 次安装1 周前更新
代码仓库

关于 spritecook-polish-sprites

用于在交付、切片或制作动画前整理精灵图透明度与轮廓的工作流技能。它指导本地比较 Alpha 阈值并进行针对性修补,同时保留原始资源。

主要功能

  1. 01在本地比较 Alpha 阈值候选
  2. 02以原尺寸和放大视图检查精灵图
  3. 03为资源应用选定阈值
  4. 04指导针对性轮廓修补
  5. 05检查动画各帧边缘

适用场景

  1. 01恢复较淡的轮廓像素
  2. 02减少光晕或背景杂点
  3. 03切片前检查精灵图
  4. 04修补生成后缺失的轮廓

MCP 相关

它说明如何使用已连接服务提供的 SpriteCook 资源元数据和阈值工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/spritecook/skills --skill spritecook-polish-sprites

安装后在 Claude Code 中输入/spritecook-polish-sprites确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

.gitignore
scripts/
compare_alpha.py
test_compare_alpha.py

详细介绍

SpriteCook 润色精灵图

与 spritecook-workflow-essentials 配合使用。交付、切片或制作动画前,请以精灵图的预期尺寸和最近邻缩放后的尺寸检查已完成的精灵图。如果轮廓和透明度看起来已经不错,就保留原样。边缘清理可能改善效果时,请使用此工作流。

轮廓为何会看起来破损

背景移除会估算每个像素属于主体的程度。即使细线轮廓、低对比度边缘、头发、把手和其他精细细节属于精灵图,它们也可能被赋予部分透明度。通过阈值将这种柔和的 Alpha 转为不透明或透明像素,可能会丢弃这些边缘。后续的侵蚀等清理操作也可能移除像素。

对于受支持的素材,SpriteCook 会保留 Alpha 清理前的图像。较低的阈值可以找回该源图像中仍存在的微弱轮廓像素;较高的阈值则可以去除光晕和背景杂点。Basic 和 Pro 的结果都值得检查。Pro 并不能保证每条边缘都得以保留。

阈值处理无法重建保留源图像中不存在的像素,也无法修复生成错误的形状。只有 Alpha 值 0 和 255 的已处理 PNG 通常不含可恢复的中间 Alpha 值。务必使用保留的源图像,而不要反复处理已经阈值化的预览图。除非用户想要硬朗的像素边缘,否则应让有意设计为半透明的效果保持半透明。

如果保留的源图像本身只有 Alpha 值 0 和 255,那么所有大于零的阈值都会产生相同的透明效果。由于后续侵蚀可能移除了像素,该结果仍可能与保存的输出不同,因此请先与保存的图像进行比较,再作判断。

仅检查一次,在本地比较,仅保存一次

  1. 调用 get_asset_metadata(asset_id) 并检查 alpha_editing。该字段会报告 available、current_cutoff、provider、processing、source_url、其过期时间,以及预览/动画布局。如果缺少此字段或 set_asset_alpha_cutoff,说明已连接的服务尚未提供此工作流。不要臆造工具,也不要悄悄改为运行需要付费的背景移除。

  2. 如果 available=false,请说明此资源没有可保留的源图。可能需要重新移除背景或进行有针对性的图像编辑;请遵循用户指定的范围和额度预算。停止此阈值工作流。

  3. 对于 processing="binary_alpha_v1",使用共享的安全下载工作流下载一次 source_url。还要下载当前的 sprite_url(静态图)或 spritesheet_url(动画),以便比较实际保存的结果。URL 会过期;必要时刷新元数据。不要将签名 URL 放入清单或提交的文件中。

  4. 在本地保存元数据 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 可选择其他候选值。每次比较都使用新的输出目录。

  5. 在浅色和深色背景上检查比较结果,然后以原生尺寸检查有希望的全尺寸候选。留意轮廓是否连续、细小部件是否保留、物体之间是否出现不必要的连接、是否有光晕或零散残留、以及有意设置的透明区域是否丢失。对于动画,检查每一帧的边缘是否闪烁。选择综合效果最佳的候选;仅凭像素数量无法判断质量。应与实际保存的输出进行比较,因为最初的清理也可能应用了腐蚀或其他处理。

  6. 如有需要,在最佳候选值附近再进行一次本地比较。出现明显改善或没有可用的恢复效果时就停止。不要反复运行需要付费的生成或移除任务来调整此数值。

  7. 如果某个候选能改善结果,调用一次 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 源图像。图集效果满意后,再对其切片,并使用现有的上传和动画技能分别为提取出的素材制作动画。
  • 调用保存工具前,本地候选素材会一直保留在本地。只有当用户需要独立副本时,才单独上传候选素材。单独上传的素材不会继承原始素材中可编辑的源图像。

评论

支持 Markdown