Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add DwDestiny/codex-visual-asset-skills --skill sprite-animation-assetsgit clone --depth 1 https://github.com/DwDestiny/codex-visual-asset-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/dwdestiny/codex-visual-asset-skills/sprite-animation-assets)<a href="https://agentmods.dev/skills/dwdestiny/codex-visual-asset-skills/sprite-animation-assets"><img src="https://agentmods.dev/badge/skills/dwdestiny/codex-visual-asset-skills/sprite-animation-assets/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/dwdestiny/codex-visual-asset-skills/sprite-animation-assets"><img src="https://agentmods.dev/badge/skills/dwdestiny/codex-visual-asset-skills/sprite-animation-assets.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00055 | $0.00878 |
| Opus 5 | $0.00028 | $0.00439 |
| Sonnet 5 | $0.00011 | $0.00176 |
| Haiku 4.5 | $0.00006 | $0.00088 |
Grade A, and why
sprite-animation-assets scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 86 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Sprite Animation Assets
核心判断
动画素材的关键不是“单张图好看”,而是同一个角色或物体在每一帧里保持身份一致、尺寸一致、背景透明、动作能循环。先定义帧规格和状态,再逐组生图,最后用脚本组装和验收。
适合输出:连续帧 PNG、单状态 GIF、透明 spritesheet、固定网格 atlas、网页/游戏动画素材。
不适合输出:单张透明素材;这类转给 $transparent-visual-assets。
工作流
- 定义规格:状态名、每个状态帧数、画布尺寸、输出格式。
- 生成或确认一张 canonical base image,作为所有帧的身份锚点。
- 分状态生成连续帧;每组帧都要使用同一角色参考和同一纯色背景或透明背景策略。
- 目视 QA:身份一致、动作连贯、无漂浮杂点、无文字、无阴影地面、无裁切。
- 如需要,先用
$transparent-visual-assets把每帧处理成透明 PNG。 - 用
scripts/compose_sprite_set.py组合 atlas,并可导出每个状态的 GIF 预览。 - 检查
sprite-set-report.json,再打开 atlas/GIF 做最终验收。
生图提示词要点
每组动画都要锁定身份:
Create <frame_count> separated frames of the same <subject> for a looping sprite animation.
Keep the same silhouette, proportions, face, palette, outline style, and accessories in every frame.
Use a flat removable background color <background_color>, with no shadows, text, scenery, motion trails, frame numbers, grid lines, or detached decorative effects.
Each pose must be fully visible, separated from the next pose, and safe to crop into a transparent frame.
Action: <state_action>.
如果需要兼容 Codex 自定义宠物的 atlas 规格,先读 references/sprite-atlas-layouts.md,使用官方 hatch-pet 拆出的 8x9、192x208、9 行状态口径。
组装脚本
准备 manifest:
{
"cell_width": 192,
"cell_height": 208,
"columns": 8,
"states": [
{
"name": "idle",
"row": 0,
"frames": ["idle_000.png", "idle_001.png"],
"durations_ms": [120, 120]
}
]
}
运行:
python "${CODEX_HOME:-$HOME/.codex}/skills/sprite-animation-assets/scripts/compose_sprite_set.py" \
--manifest /absolute/path/manifest.json \
--frames-dir /absolute/path/frames \
--output-atlas /absolute/path/spritesheet.png \
--output-dir /absolute/path/qa \
--gif
脚本会:
- 把每帧居中放入固定 cell。
- 保持未使用 cell 全透明。
- 输出
sprite-set-report.json。 - 使用
--gif时,为每个状态导出一个 GIF 预览。
验收标准
- 每个状态帧数符合 manifest。
- 同一角色/物体在所有帧里保持同一身份,不变物种、不变脸、不变配色。
- 所有帧都是透明背景或可干净抠透明背景。
- 动作能循环,首尾不明显跳变。
- spritesheet 未使用格子必须完全透明。
- GIF 只是预览;最终网页/游戏素材优先交付 PNG 帧或透明 atlas。
What ships with it
3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 12d ago First seen · 86 lines · 55 tokens per session scan A 42965982d7ab
sprite-animation-assets is a skill published in the GitHub repository DwDestiny/codex-visual-asset-skills (60 stars, last pushed 4mo ago), licensed MIT. It adds 55 tokens to every session and 878 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
2dimg2motion
Use when a user provides one baseline image and requests game animation frames, sprite sequences, attack/walk/idle/hit/death/casting motion, transparent PNG frames, a spritesheet, keyframe prompts, or consistent whole-character pose animation.
img2mo-learn
Learn reusable 2D motion-generation knowledge from user-specified action resources with /img2mo-learn . Use when the user provides videos, extracted frame sequences, spritesheets, Spine assets, generated outputs, failed attempts, or reference motion folders and wants to summarize animation timing, pose beats, style…
gameobject-component-destroy
Destroy one or more Components from a target GameObject. Missing (null) components are skipped — they cannot be destroyed. Use 'gameobject-find' and 'gameobject-component-get' to identify the components first.
unity-version-split
Split a C# file into Unity 6.5+ and pre-Unity 6.5 variants. Use when a file needs different implementations for different Unity versions due to API changes (e.g., EntityId vs int, GetEntityId vs GetInstanceID).
godot-signals-groups
Build event-driven, decoupled Godot 4.7 gameplay with signals and node groups: declare and emit custom signals, connect with Callables (incl. bind/one-shot), and broadcast to many nodes via groups and callgroup. Use when wiring node communication in a Godot project, replacing tight references with signals…
motion
How an agent turns a character mesh into a usable animated FBX — and how to judge whether the result is shippable.