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.
Install
npx skills add https://github.com/roble3/cc-blender-skill --skill texture-state-animationSKILL.md
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
- Register states first: crop, scale, align, and color-normalize all source states into one canvas and one semantic mask.
- Classify pixels/layers:
- avatar surface/base;
- facial decal/features;
- glow/emission accents;
- background/aura/context;
- HUD/circle elements.
- 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.
- 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.
- 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.pycreates a transition plan from source states and flags risky whole-frame crossfades.
Related skills
frontend-designanthropics932KGuidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.prototypemattpocock852KBuild a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.hyperframes-animationheygen-com569KAll animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreographyhyperframes-creativeheygen-com539KNon-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.