SuperAPI AI 工具集

generating-dot-assets

设计与创作

查看项目

更新于 10-15 10:16

技能介绍

用途

Dot Asset Generator 用于根据自然语言描述的主体和精确的目标像素尺寸(例如 32x32、64x64、96x48),生成透明的像素风物体素材。当用户需要游戏物体、类精灵道具、物品图标、微缩场景物件,或由图像生成得到的透明像素素材时,可使用该技能。

主要能力

  • 从 subject(如 old wooden school desk)和 final size(如 64x64)生成透明像素 PNG。
  • 支持可选样式说明、调色板 JSON、原始输出目录、颜色数量、色键颜色、适配模式(contain 或 stretch)。
  • 内置工作流:提示图像生成工具产出超尺寸源图,去背、像素化、适配画布、校验,并保存提示记录。
  • 默认项目布局:源文件放在 <PROJECT_DIR>/assets/source/,最终透明 PNG 放在 <PROJECT_DIR>/assets/sprites/;工作文件命名如 <stem>.prompt.md、<stem>.raw.png、<stem>.cutout.png、<stem>.pixel.png、<stem>.palette.json。
  • 若最终文件名已存在且未明确要求覆盖,则使用 <stem>_v2.png、_v3 等版本化命名,并同步应用到该次运行的提示、原始、去背、像素和调色板文件。
  • 对于基于角色的游戏素材,会先读取 <PROJECT_DIR>/VISUAL_DESIGN.md 或 README 的视觉方向;若不可用,可使用明确的用户或场景约束,并报告缺失的设计文档、将约束记录到提示文件。若两者都未定义角色颜色,则先定义最小的 Player / Danger / Reward 调色板(或先运行视觉方向流程)。
  • 当不需要精确项目颜色时,可用 --colors <N> 进行探索性或一次性素材生成;当素材需共享项目调色板、匹配角色颜色或保持整套一致时,创建并传入调色板 JSON。

使用方式

环境要求:

  • 一个可从智能体调用的图像生成工具。捆绑工作流假设使用 Codex 内置的 image_gen,并从 $CODEX_HOME/generated_images/... 读取输出。在其他宿主(Claude Code、纯 CLI)上,替换为等效生成器,并将所选图像复制到 <PROJECT_DIR>/assets/source/<stem>.raw.png。
  • 在 Codex CLI 中,即使生成成功,内置 image_gen 输出也可能不出现在 $CODEX_HOME/generated_images 下。若看不到当前输出文件,应在重试生成前从 Codex 会话 JSONL 恢复 PNG;参见 references/imagegen-cli-recovery.md。
  • PATH 中需有 ImageMagick convert。捆绑的 scripts/*.mjs 会调用它;若缺失,应停止并报告依赖,而不是伪造输出。

工作流:

  1. 阅读 references/prompt-patterns.md,然后提示内置 image_gen 生成一张超尺寸源图,图中恰好一个物体,位于所选色键背景上。
  2. 将所选生成图像从 $CODEX_HOME/generated_images/... 复制到项目原始目录。
  3. 运行 scripts/cutout.mjs 去除色键背景。
  4. 运行 scripts/pixelize.mjs 降低细节并应用调色板或颜色限制。
  5. 运行 scripts/fit-canvas.mjs 强制为精确请求的 WxH 透明画布。
  6. 运行 scripts/validate-pixel-asset.mjs,然后应用 references/validation.md 中的自动和视觉验收检查。
  7. 在源目录保存提示记录 <stem>.prompt.md,除非项目有更强的约定。

优先使用项目本地等效工具(若已存在且满足相同契约),否则使用本技能捆绑脚本。

命令示例:

: "${SKILL_DIR:?Set SKILL_DIR to this skill directory}" node "$SKILL_DIR/scripts/cutout.mjs" raw.png tmp/cutout.png --trim --fuzz 8% node "$SKILL_DIR/scripts/pixelize.mjs" tmp/cutout.png tmp/pixel.png --width 96 --colors 24 --dither off node "$SKILL_DIR/scripts/fit-canvas.mjs" tmp/pixel.png final.png --size 64x64 --fit contain --gravity center node "$SKILL_DIR/scripts/validate-pixel-asset.mjs" final.png --size 64x64 --max-colors 24 --transparent-corners

使用调色板时:

: "${SKILL_DIR:?Set SKILL_DIR to this skill directory}" node "$SKILL_DIR/scripts/pixelize.mjs" tmp/cutout.png tmp/pixel.png --width 96 --palette palette.json --dither off

调色板文件必须包含 colors 数组,元素为十六进制颜色:

{ "colors": ["#1b1f3a", "#f04438", "#f97316", "#facc15", "#38bdf8", "#f8fafc"] }

适用场景

  • 游戏开发中需要透明像素风物体、道具、图标或微缩场景物件。
  • 需要按精确像素尺寸(如 32x32、64x64、96x48)产出素材。
  • 需要整套素材共享项目调色板或角色颜色(Player / Danger / Reward)时。
  • 探索性或一次性素材生成,可使用 --colors <N> 而不必提供精确项目颜色。

限制

  • 不依赖图像生成来产出精确像素尺寸。
  • 不把最终尺寸交给 pixelize;始终用 fit-canvas 强制请求的尺寸。
  • 大多数物体素材使用 contain,避免主体被裁剪。
  • 每张图只生成一个物体;批量时每个物体使用一次内置 image_gen 调用。
  • 原始生成图像与最终透明 PNG 分开保存。
  • 除非明确要求,不覆盖已有素材;改用版本化文件名。
  • 不要求每个素材都提供显式调色板;当项目已定义颜色、角色颜色重要,或多个素材需看起来属于同一套时使用。
  • 默认 pixelize 缩放:中间长边约为最终长边的 2 倍。方形或横向素材设置 --width 为 final_width * 2;纵向素材设置 --height 为 final_height * 2。仅当可接受有意的预适配拉伸时,才同时使用 --width 和 --height。

失败处理:

  • 若色键去除留下彩色边缘,用更高的 --fuzz 重试 cutout,或重新生成时增加留白并使用更严格的纯色背景措辞。
  • 若内置 image_gen 看似成功但 $CODEX_HOME/generated_images 下无输出文件,不要假定生成失败;使用 references/imagegen-cli-recovery.md 从 Codex 会话 JSONL 恢复 PNG,然后从原始图像复制步骤继续。
  • 若主体被裁剪,用更强的留白指令重新生成,或使用更大的中间尺寸。
  • 若物体在最终尺寸下不可读,用更简单的形状重新生成,或从细节更少的源图进行像素化。
  • 若 ImageMagick convert 不可用,报告捆绑脚本需要 ImageMagick 并停止。

参考文件:

  • references/prompt-patterns.md — 规范的图像生成提示和关键颜色选择。
  • references/validation.md — 规范的自动和视觉验收检查。
  • references/imagegen-cli-recovery.md — 当看不到生成文件时,恢复成功的 Codex CLI 图像输出。