texture-state-animation
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseTexture 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.
- 在无关的裁剪/合成内容之间使用全帧交叉渐变。
- 在需要导出/运行时支持的情况下,仅使用Python帧处理程序作为播放机制。
- 在进行装饰性动画的同时,切换纹理并改变轮廓、相机裁剪范围或缩放比例。
- 将光晕/背景/HUD像素混入角色表面纹理(除非这是预期效果)。
- 变形动画违反既定的几何约束(如恒定深度)。
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.
- 先注册状态:将所有源状态进行裁剪、缩放、对齐和颜色归一化处理,整合到一个画布和一个语义蒙版中。
- 对像素/图层进行分类:
- 角色表面/基底;
- 面部贴花/特征;
- 发光/自发光装饰;
- 背景/光晕/环境;
- HUD/圆形元素。
- 为每个图层选择过渡类型,而非使用全局混合:
- 角色表面:保持、微光、细微的明度/粗糙度脉冲或蒙版溶解;
- 面部特征:保持或短时间透明度渐变;
- 发光装饰:自发光脉冲 / 移动高光;
- 光晕/HUD:独立的轨道/虚线/点动画;
- 背景:使用单独的平面/合成器,除非有要求,否则绝不烘焙到角色纹理中。
- 必要时使用兼容导出的通道:
- 关键帧化的材质参数、透明度、UV变换、形状键、对象变换;
- 仅在目标平台支持时使用图像序列;
- 最终导出GLB时避免使用Blender Python处理程序,除非目标运行时会重新实现这些逻辑。
- 在确认动画合格前,渲染联系表和闪烁报告。
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
脚本
- creates a transition plan from source states and flags risky whole-frame crossfades.
scripts/texture_transition_plan.py
- :根据源状态生成过渡方案,并标记存在风险的全帧交叉渐变。
scripts/texture_transition_plan.py