texture-state-animation — Claude Code skill for Blender texture
Plans and checks texture-state transitions in Blender so you avoid whole-image crossfades, popping and morphs that drift out of register.
npx skills add RobLe3/cc-blender-skill --skill texture-state-animation -a claude-codeWhat texture-state-animation does
Reach for this skill when a mascot, logo, lightmap or UI skin swaps textures mid-animation. Instead of blending two full images, it splits the scene into layers: avatar surface, facial decals, glow accents, background and HUD elements. Each layer gets its own transition — hold, a subtle value pulse, a masked dissolve, a traveling highlight.
States get registered first: crop, scale, alignment and colour normalised onto one canvas and one semantic mask. Then the skill checks that the avatar silhouette stays put and that aura or background pixels never end up baked into the character material. For a final GLB it points you at channels the target runtime can replay on its own: keyframed material values, opacity, UV transforms, shape keys. Python frame handlers fail here, because the runtime will not recreate them.
A script, scripts/texture_transition_plan.py, builds a transition plan from your source states and flags risky whole-frame crossfades. Before anyone calls the animation done, the skill asks for a contact sheet and a flicker report. It runs through an MCP server for Blender, so read ../text-to-blender/references/mcp-backends.md before the first call and stick with the backend you picked.
What it helps with
- plan a transition between several source textures without a whole-frame crossfade
- split a scene into layers and pick a transition type per layer
- verify the silhouette and camera crop hold during decorative motion
- pick animation channels the target engine can reproduce on GLB export
- catch risky spots in a transition plan before rendering
Example prompts for the agent
- plan the transition between two mascot texture states, no whole-image crossfade
- build a transition plan from these source states and flag the risky ones
- render a contact sheet and a flicker report for this texture animation
How to install texture-state-animation
1Skills CLI (Vercel)
npx skills add RobLe3/cc-blender-skill --skill texture-state-animation -a claude-code2Manually: put the files in place
~/.claude/skills/texture-state-animation/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/texture-state-animation/
1Skills CLI (Vercel)
npx skills add RobLe3/cc-blender-skill --skill texture-state-animation -a codex2Manually: put the files in place
.agents/skills/texture-state-animation/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add RobLe3/cc-blender-skill --skill texture-state-animation -a cursor2Manually: put the files in place
.cursor/skills/texture-state-animation/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install RobLe3/cc-blender-skill texture-state-animation2Manually: put the files in place
.github/skills/texture-state-animation/SKILL.md1Skills CLI (Vercel)
npx skills add RobLe3/cc-blender-skill --skill texture-state-animation -a gemini-cli2Platform CLI
gemini skills install https://github.com/RobLe3/cc-blender-skill --path plugin/skills/texture-state-animationManually: put the files in place
.devin/skills/texture-state-animation/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add RobLe3/cc-blender-skill --skill texture-state-animation -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about texture-state-animation
How do I install texture-state-animation in Claude?
Run npx skills add RobLe3/cc-blender-skill --skill texture-state-animation -a claude-code. The skill lands at ~/.claude/skills/texture-state-animation/SKILL.md.
What does texture-state-animation do?
It designs and validates texture-state transitions in Blender: registers the states, separates them into layers, and picks a transition type for each one.
What does the skill need to run?
An MCP server for Blender. Before the first call it has you read ../text-to-blender/references/mcp-backends.md and keep the same backend for the whole task.
Source text
SKILL.md · MIT
--- name: texture-state-animation description: Design and validate texture-state transitions for Blender animations without ugly whole-image crossfades, texture popping, misregistered morphs, or target-engine-incompatible Python-only swaps. Use when animating between multiple source textures, mascot/logo states, style states, lightmaps, decals, or UI skins. allowed-tools: Read Bash Glob Grep mcp__blender__execute_blender_code mcp__blender__get_scene_info mcp__blender__get_object_info mcp__blender__get_objects_summary mcp__blender__get_object_detail_summary mcp__blender__render_viewport_to_path mcp__blender__search_api_docs mcp__blender_official__execute_blender_code mcp__blender_official__get_objects_summary mcp__blender_official__get_object_detail_summary mcp__blender_official__render_viewport_to_path mcp__blender_official__search_api_docs --- ## MCP backend Use when: Texture state animation, texture morphs, material state transitions, image sequence planning, masked wipes, glow reveals, texture registration, avoiding bad crossfades, GLB-compatible texture animation planning. Before the first Blender call, read [../text-to-blender/references/mcp-backends.md](../text-to-blender/references/mcp-backends.md). Prefer official MCP for shared capabilities; preserve the selected backend for the whole task. Tool names in recipes are client/legacy examples: map them through that reference and its agent-host guide. # Texture State Animation This skill exists because “crossfade several full images” usually looks bad. Texture animation must be designed like motion graphics: registered states, constrained transition channels, and preview gates. ## Failure modes to avoid - Whole-frame crossfades between unrelated crops/compositions. - Python frame handlers as the only playback mechanism when export/runtime support is needed. - Texture swaps that change silhouette, camera crop, or scale at the same time as decorative motion. - Mixing aura/background/HUD pixels into the avatar surface texture unless that is the intent. - Morph pulses that break accepted geometry constraints such as constant depth. ## Workflow 1. **Register states first**: crop, scale, align, and color-normalize all source states into one canvas and one semantic mask. 2. **Classify pixels/layers**: - avatar surface/base; - facial decal/features; - glow/emission accents; - background/aura/context; - HUD/circle elements. 3. **Choose transition type per layer**, not one global blend: - avatar surface: hold, shimmer, subtle value/roughness pulse, or masked dissolve; - face features: hold or short opacity fade; - glow accents: emission pulse / traveling highlight; - aura/HUD: independent orbit/dash/dot animation; - background: separate plane/compositor, never baked into avatar unless requested. 4. **Use export-compatible channels when needed**: - keyframed material values, opacity, UV transform, shape keys, object transforms; - image sequence only if target supports it; - avoid Blender Python handlers for final GLB unless the target runtime will recreate them. 5. Render a contact sheet and flicker report before calling the animation acceptable. ## Acceptance gates - Each texture state is registered to the same bbox/landmarks. - No full-canvas crossfade is used unless state registration and semantics match. - Avatar silhouette remains stable unless the story explicitly calls for a morph. - Context/aura elements are separate from the avatar material. - The exported format can reproduce the animation, or limitations are documented. ## Scripts - `scripts/texture_transition_plan.py` creates a transition plan from source states and flags risky whole-frame crossfades.
© RobLe3 · MIT · RobLe3/cc-blender-skill