sprite-pipeline — Codex skill for sprites and installation
Creates and normalizes 2D animation strips from an approved frame. Use it when game sprites need consistent scale and alignment before review.
npx skills add openai/plugins --skill sprite-pipeline -a codexWhat sprite-pipeline does
Start with an approved in-game frame. The skill builds a transparent editing canvas around it, then asks for the full animation strip in one edit request. This helps keep the frames consistent; generating them separately is an option only if you accept more variation.
Scripts build the canvas, normalize the strip into fixed-size frames with a shared scale and anchor, and render a preview sheet. You can lock the first frame to the shipped sprite. Inspect the animation in-engine before approval. Image generation uses the installed imagegen skill. This workflow is for 2D sprites, not 3D characters, meshes, or materials. Install it when you have a source frame and need a reviewable animation strip.
What it helps with
- create an animation strip from an approved game sprite
- align frame scale and anchor across a strip
- render a preview sheet for animation review
- match the first frame to the shipped sprite
Example prompts for the agent
- Create a 4-frame hurt animation strip from `output/sprites/idle-01.png`.
- Normalize `output/sprites/hurt-raw.png` with one shared anchor and lock frame 1.
- Render a preview sheet from `output/sprites/hurt`.
How to install sprite-pipeline
1Skills CLI (Vercel)
npx skills add openai/plugins --skill sprite-pipeline -a codex2Manually: put the files in place
.agents/skills/sprite-pipeline/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add openai/plugins --skill sprite-pipeline -a claude-code2Manually: put the files in place
~/.claude/skills/sprite-pipeline/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/sprite-pipeline/
Manually: put the files in place
.cursor/skills/sprite-pipeline/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install openai/plugins sprite-pipeline2Manually: put the files in place
.github/skills/sprite-pipeline/SKILL.mdPlatform CLI
gemini skills install https://github.com/openai/plugins --path plugins/game-studio/skills/sprite-pipelineManually: put the files in place
.devin/skills/sprite-pipeline/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set201
The whole set →Similar
Questions about sprite-pipeline
How do I install sprite-pipeline in Codex?
Run npx skills add openai/plugins --skill sprite-pipeline. To specify the agent, run npx skills add openai/plugins --skill sprite-pipeline -a codex.
What does sprite-pipeline do?
It guides creation of a 2D animation strip from an approved frame, normalizes the frames, and renders a preview sheet.
Can sprite-pipeline handle 3D models?
No. The workflow is for 2D sprites; for 3D characters, meshes, or materials, the source points to ../game-studio/SKILL.md.
Source text
SKILL.md · MIT
--- name: sprite-pipeline description: Generate and normalize 2D sprite animations. Use when the user asks for full-strip generation from approved source frames, consistent anchor and scale normalization, or preview assets for browser-game animation. --- # Sprite Pipeline ## Overview Use this skill for 2D sprite generation and normalization. This workflow is intentionally anchored around one approved frame and a whole-strip generation pass because frame-by-frame generation drifts too easily. This skill is 2D-specific. If the request is for 3D characters, meshes, or materials, route back through `../game-studio/SKILL.md`. ## Core Workflow 1. Start from an approved in-game seed frame. - The seed frame should already reflect the right silhouette, palette, costume, and proportions. 2. Build a larger transparent reference canvas around that frame. - Use `../../scripts/build_sprite_edit_canvas.py`. 3. Ask for the full animation strip in one edit request. - Do not generate each frame independently unless the user explicitly accepts lower consistency. 4. Normalize the result into fixed-size game frames. - Use `../../scripts/normalize_sprite_strip.py`. - Use one shared scale across the whole strip. - Align frames with one shared anchor, typically bottom-center. 5. Optionally lock frame 01 back to the shipped seed frame. - Do this when the animation should begin from the exact idle or base pose already in game. 6. Render a preview sheet and inspect the animation in-engine before approving it. - Use `../../scripts/render_sprite_preview_sheet.py`. ## Prompting Rules Always preserve these invariants in the prompt: - same character - same facing direction - same palette family - same silhouette family - same readable face or key features - same outfit proportions - transparent background - exact frame count and slot layout Always ask for: - one strip at once - a transparent canvas - no scenery, labels, or poster composition - crisp pixel-art clusters for pixel work - production asset tone, not concept art ## Using Image Generation For live asset generation or edits, use the installed `imagegen` skill in this workspace. This skill defines the game-specific process; `imagegen` handles the API-backed generation or edit execution. ## Script Recipes Create a reference canvas: ```bash python3 scripts/build_sprite_edit_canvas.py \ --seed output/sprites/idle-01.png \ --out output/sprites/hurt-edit-canvas.png \ --frames 4 \ --slot-size 256 \ --canvas-size 1024 ``` Normalize a raw strip: ```bash python3 scripts/normalize_sprite_strip.py \ --input output/sprites/hurt-raw.png \ --out-dir output/sprites/hurt \ --frames 4 \ --frame-size 64 \ --anchor output/sprites/idle-01.png \ --lock-frame1 ``` Render a preview sheet: ```bash python3 scripts/render_sprite_preview_sheet.py \ --frames-dir output/sprites/hurt \ --out output/sprites/hurt-preview.png \ --columns 4 ``` ## Quality Gates - proportions stay stable across frames - frame-to-frame size does not drift - action reads clearly at game scale - transparency is preserved - frame 01 matches the shipped sprite when lockback is enabled - preview looks correct before any in-engine asset index update ## References - Detailed workflow: `../../references/sprite-pipeline.md` - Shared frontend context: `../game-ui-frontend/SKILL.md`
© OpenAI · MIT · openai/plugins