尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
一张图集换遍所有配色:sprite-gen Recolor 确定性变色与骨骼图层合成完全指南
一张图集换遍所有配色sprite-gen Recolor 确定性变色与骨骼图层合成完全指南【免费下载链接】sprite-genGenerate clean 2D game sprites animation atlases — component-row pipeline: state rows, alpha cleanup, frame extraction, runtime atlases. Codex/Claude skill.项目地址: https://gitcode.com/gh_mirrors/sp/sprite-gensprite-gen是开源的 2D 游戏精灵与动画图集生成工具它的Recolor命令能通过调色板映射从一张基础图集确定性地烘焙 N 个配色变体而骨骼图层合成layer tracks则用整数坐标枢轴把角色部件逐层叠加成新动作——两者都保证同一输入必然产出同一输出字节。这篇文章带你从零走完「一张 base 图集 → 一整套配色与组合资产」的完整流程 为什么选择「烘焙」而不是运行时着色点阵像素画的生死线在于色板控制。sprite-gen 的 Recolor 走的是**离线烘焙bake**路线而不是游戏里的着色器实时染色像素级可质检——每张变体图集都是一个真实 PNG可以逐像素 diff⚡渲染零开销——游戏直接加载烘焙好的 PNG不跑任何滤镜契约一致——每个配色变体与 base 图集共用同一份manifest.json.frame_layout引擎换图不改代码确定性——同一输入字节 → 同一输出字节烘焙全程不做浮点重采样只重写 RGB、完整保留 alpha。核心实现位于 sprite_gen/effects/recolor.py完整规则见 docs/recolor.md。第一步起草调色板recolor-palette动手之前先让工具帮你把 base 图集里的颜色「数」出来sprite-gen recolor-palette --base sprite-sheet-alpha.png --out palette.draft.json扫描所有不透明像素默认alpha 8输出按频率降序、十六进制升序排列的颜色列表——全序保证重复执行结果一致--max-colors N只保留前 N 种颜色并明确报告丢掉了多少像素绝不静默截断不加--out时 JSON 直接打印到终端。草稿的kind是sprite-gen-palette它只是创作脚手架把这份 hex 列表手工编辑成下一节的 recolor spec就能进入真正的变色环节。第二步编写 recolor spec一条命令烘焙全部配色spec 是一个 JSON 文件每个变体给出「源色 → 目标色」映射{ version: 1, kind: sprite-gen-recolor, match: exact, tolerance: 0, variants: [ { name: moss, map: { #b42828: #3a7a3a, #f0c000: #c8a040 } }, { name: azure, map: { #b42828: #2850b4, #f0c000: #80c0e0 } } ] }然后一条命令烘焙所有配色sprite-gen recolor --run-dir run-dir --spec recolor.spec.json输出落在run-dir/variants/下variants/ moss.png azure.png moss.manifest.json # 每个变体一份运行时 manifest azure.manifest.json recolor.report.json # 「这次烘焙到底做了什么」的唯一事实来源两种匹配模式在 spec 的match字段声明模式行为适用场景exact默认像素 RGB 必须与源色完全相等才替换点阵像素画的安全默认抗锯齿边缘像素绝不被触碰tolerance在切比雪夫距离tolerance内的不透明像素也替换最近源色胜出软边插画纯整数运算依然确定性exact却写了非零tolerance会被直接拒绝——一个行为不允许有两条真相 ⚖️报告契约没有静默回退。recolor.report.json逐变体记录substituted_pixels重写的总像素数、substitutions[]每条映射的命中数pixels: 0意味着源色拼错了、unused_sources[]零命中的映射条目、passthrough_colors[]映射没覆盖而被原样保留的颜色点名加计数。落在映射之外的任何颜色都不可能悄悄溜走而不被点名——修好映射而不是糊弄过去。第三步在 Curation 视图里闪对比、一键采纳烘焙完成后打开常规 curation 视图sprite-gen curation --run-dir run-dir/api/run会附带recolor数据块界面实现见 sprite_gen/serve/curator/src/recolor.js提供三样东西一个堆叠舞台——所有变体图集占据同一位置悬停列表行就原地切换当前显示的图blink 闪对比。并排对比要靠眼睛来回扫容易漏掉细微的色板差异闪对比不会帧格缩略图——从manifest.frame_layout裁出第一帧做小图配色差异一目了然Adopt 按钮——把选中的变体名写进 curation 侧车{ version: 1, kind: sprite-gen-curation, recolor: { picked: moss } }一个值得玩味的设计细节选择以变体名而非帧索引为键。配色是「颜色决策」不是「帧生成」——重新烘焙不会让已采纳的moss变成陈旧状态。即使某次烘焙不再产出这个名字旧选择也会被保留并显示pickedKnown: false横幅绝不静默清除。骨骼图层合成标记点枢轴 整数平移的确定性叠加「一张图集」不止能换配色还能换骨架。sprite-gen 的 layer tracks 让一个 run 声明rig——角色类型 profilehumanoid_biped/quadruped/blob_or_tentacle/prop 每帧的整数坐标标记点landmarks如root枢轴、crown头顶、hand_r右手。声明在哪些帧上缺失、坐标落在格外都会被拒绝——绝不从几何形状里猜track——每行声明轨道角色轨道画什么base完整身体action_overlay盖在 base 之上的局部动作prop_effect挂在标记点上的道具/特效如一把浇水壶full_body_override整体替换 base双手挥砍这类无法拆分的动作layers 组合——指定堆叠顺序列表从底到顶与每层如何对齐到身体行的标记点上。文档示例就是「行走的下半身 握在hand_r标记点上的浇水壶」组合成down_walk_watering。合成合同是纯确定性的整数平移 alpha 混合没有旋转、缩放或重采样——所以同一输入必然产出同一字节验证方法就是组合两遍比对 SHA-256。旋转缩放早在 curation 阶段就烧进源帧里了。烘焙命令sprite-gen compose-layers --run-dir run-dir行为规则很硬核所有组合先在内存中全部完成任何一处违例 → 整体失败、列出全部诊断、一个文件都不写成功后输出layers/name.pnglayers/name.manifest.jsonlayers/layers.report.json记录每层的偏移量、裁剪像素数、源行 revision发布是一个事务——所有文件先写成临时文件再原子换入中途磁盘写满也不会留下半成品。实现见 sprite_gen/compose/layers.py声明校验SSoT与 sprite_gen/compose/compose_layers.py合成烘焙契约全文见 docs/layer-tracks.md。收尾一条流水线一套可交付资产base 图集 ──recolor──▶ variants/N 个配色 报告 │ └─compose-layers─▶ layers/骨骼组合图集 报告最终交付variants/picked.png及其兄弟 manifest、layers/下的组合图集、外加运行时直接可读的frame_layout。base 图集始终是几何事实来源SSoT配色与组合都只是它确定性的延伸。延伸阅读 官方文档总索引docs/README.md Recolor 参考docs/recolor.md 图层轨道契约docs/layer-tracks.md️ Curation 侧车与视图docs/curation.md 行为总纲SKILL.md【免费下载链接】sprite-genGenerate clean 2D game sprites animation atlases — component-row pipeline: state rows, alpha cleanup, frame extraction, runtime atlases. Codex/Claude skill.项目地址: https://gitcode.com/gh_mirrors/sp/sprite-gen创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

PyCharm项目迁移后依赖包丢失与解释器配置实战指南

PyCharm项目迁移后依赖包丢失与解释器配置实战指南

最近一周,我连续帮两个同事收拾了同一种烂摊子:项目从旧电脑整个拷到新电脑,或者在U盘里转了一圈再拷回来,打开PyCharm后满屏红色波浪线,import pandas直接报ModuleNotFoundError,甚至有人连pip都找不到了。…

📅 2026/10/7 2:57:05
AI写作怎么去除AI味?从原理到实操的降痕指南

AI写作怎么去除AI味?从原理到实操的降痕指南

AI写作工具能写出“低AI痕迹”文章?这个需求背后,其实是很多写作者正在经历的真实焦虑:AI生成的初稿效率是高,但读起来总有一股“机器味”——排比句堆叠、总结式结尾、生怕说不清楚所以每句话都解释三遍。这种文字一开始或许能应…

📅 2026/10/7 2:52:04
上海美容美发卫生检测:整改复测为什么不能只把旧报告换日期

上海美容美发卫生检测:整改复测为什么不能只把旧报告换日期

上海美容美发场所安排公共卫生检测复测,应把原报告的问题和实际整改逐项连接,再确认需要重新采样的对象。空气、用品与空调系统不是同一类任务;旧样品或旧数据也不能直接证明整改后的状态。先区分可比复查和新增调查,才能让新报告…

📅 2026/10/7 2:52:04
MORE NEWS

更多资讯

📰

DeepSeek Harness桌面端深度解析:工作区、插件与多模型路由实战

1. 桌面端来了,为什么这件事比想象中重要DeepSeek Harness 出官方桌面端这件事,我在圈子里看到消息的第一反应不是“终于有 GUI 了”,而是“工作流终于能收敛到一个入口了”。过去一段时间,围绕 DeepSeek 的使用方式基本是三足鼎立…

📰

Javaweb校园志愿者管理系统:可运行、可修改、可上线的三层架构实战

简介:本资源是一套高分(95分以上)JavaWeb课程设计实战项目——校园志愿者管理系统源码与数据库,面向高校计算机专业学生及JavaWeb初学者,聚焦角色权限控制、志愿活动全流程管理与数据统计分析等核心教学难点。压缩包含…

📰

AI Native研发范式落地手册:从项目宪法到多Agent编排的工程实践

1. 从"人肉驱动"到"AI Native":研发范式到底变了什么这两年"AI Native"这个词被喊得震天响,但真正落到团队日常开发里,大多数团队其实还停留在"给 IDE 装个补全插件"的阶段。我见过不少团队号称自己…

📰

AI生成PPT如何验收?位置、内容、版式三维度拆解全指南

先说个真实感受:让办公 Agent 代做 PPT 早就不是新鲜事,真正难的是验收。很多人拿到 Agent 吐出来的文件,先截图看一眼整体效果,觉得"还行"就提交了,结果汇报现场发现某个数据是旧的、某页标题被文本框裁掉半…

📰

Godot编辑器移植鸿蒙PC:难度、路线与可行性解析

三月初,我在群里看到一个特别实际的问题:鸿蒙 PC 发布之后,做独立游戏的能不能直接在它上面跑 Godot 编辑器开发项目?底下答什么的都有,有说用网页版的,有说等官方适配的,还有说干脆装虚拟机的。…

📰

JavaWeb学生信息管理系统毕业设计实战:从环境搭建到代码拆解

简介:这是一份面向Java初学者与课程设计、毕业设计学生的学生信息管理系统简单版源码,围绕学生、班级、院系、课程、成绩等核心业务提供基础管理功能,适合用来理解分层架构与数据库表设计的入门实践。压缩包共44个文件,约9.54MB&a…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬