用途 该技能用于 SpriteCook 精灵图生成或背景移除后的检查与边缘修整,针对轮廓断裂或过淡、边缘像素缺失、光晕和背景杂点等问题。建议与 spritecook-workflow-essentials 配合使用,并在交付、切片或制作动画前完成检查。若轮廓与透明度已良好,可保持原样。
主要能力 一是检查资产 alpha 编辑信息:调用 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 scripts/compare_alpha.py --metadata asset.json --source preserved.png --current current.png --output-dir alpha-comparison
脚本无网络请求、不消耗积分、不修改 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 大于等于阈值时置为 255,否则为 0;阈值范围 0 到 255,普通清理应避免 0(会把完全透明像素也变为不透明)。辅助脚本保持源尺寸,不缩放或裁剪候选 PNG,preview_crop 仅影响比较视图;保存使用完整保留源图,集成到游戏前需检查输出尺寸。动画源为水平 PNG 精灵表,需符合声明的 frame_count、frame_width 和 frame_height,各帧使用同一阈值;脚本拒绝布局不匹配和动画预览文件。tileset_color_tolerance_v1 使用背景色容差而非 alpha 阈值,脚本会拒绝处理,应改用专门的图块边缘清理编辑器。多对象精灵表宜在切片前修整,已上传或切片衍生资产可能缺少原始软 alpha 源;表修整好后切片,再用现有上传与动画技能逐一处理。本地候选在调用保存工具前不会上传;仅在用户需要独立副本时单独上传,且该上传不继承原资产的可编辑源图。
适用场景与限制 适用于 SpriteCook 生成或背景移除后的静帧、精灵表和动画精灵图的边缘检查与阈值优化,以及小范围轮廓缺口修复。限制包括:阈值无法重建保留源图中不存在的像素,也无法修复生成错误的形状;仅含 alpha 0 和 255 的已处理 PNG 通常没有可恢复的中间 alpha;应始终基于保留源图而非反复使用已阈值化的预览;有意半透明效果应保持半透明,除非用户要求硬像素边。