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.
Pro scans all 2 files and shows the line behind each finding
Scanned 9/22/2026
npx -y skills add MAX-786/claude-3d-harness --skill texture-state-animation --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Texture State Animation?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/max-786-texture-state-animation)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
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.
when_to_use: 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.
allowed-tools: Read Bash Glob Grep mcp__blender__execute_blender_code mcp__blender__get_scene_info mcp__blender__get_object_info
---
# 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.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!