用途:对所有生成的 PNG 资源施加统一调色板约束,使每个精灵、图块、背景共享同一组枚举颜色,避免同一游戏的资源看起来像来自不同游戏。在没有这一步时,GPT Image 2 会返回任意颜色。
主要能力:提供五种调色板——sweetie-16(16 色,默认)、pico8(16 色,醒目复古,适合射击/平台游戏)、endesga-32(32 色,适合 RPG、地牢探索与丰富细节)、gameboy(4 色,最大约束、单色主题游戏)、nes(16 色,经典 NES 风格)。
使用方式:应在所有美术生成(sprite-artist、tile-artist、bg-artist)之后、codesmith 之前运行;用户说“让美术更统一”或“统一调色板”时也可运行。通过 --palette <id> 参数指定调色板,或按类型自动选择:platformer / action-platformer 与 shoot-em-up 用 pico8,top-down-rpg / dungeon-crawler 用 endesga-32,默认用 sweetie-16。命令为 scripts/enforce_palette.mjs <project-dir> [--palette <id>]。
输出契约:public/assets/ 中所有 PNG 被原地覆盖为调色板量化版本;game-state.json 新增 state.style.palette,值为所选调色板 ID;alpha < 128 的透明像素保留,仅不透明像素被量化;洋红色键控背景(#FF00FF)保持原样,留待运行时去除。调色板定义含十六进制颜色数组,位于 references/palettes.json。
限制:仅处理 public/assets/ 下的 PNG;颜色数量受所选调色板限制;透明像素与色键背景不参与量化;其余收费、价格、平台等信息资料未提供。