动画状态
概述
AnimationState 表示单个动画资源的实时播放状态,记录当前时间、权重、层级和混合模式,是实现精细动画混合的底层对象。
关键内容
构造与关联
- 可与 AnimatedModel 或 Node 绑定:
AnimationState(model, animation)或AnimationState(node, animation) - 通常通过
AnimationController:GetAnimationState(name)获取,无需手动创建
核心属性
| 属性 | 说明 |
|---|---|
weight |
动画权重 0.0–1.0,控制混合比例 |
time |
当前播放时间(秒) |
looped |
是否循环播放 |
layer |
所属层(char),控制混合优先级 |
blendMode |
AnimationBlendMode,叠加或覆盖混合 |
startBone |
限制影响范围的起始骨骼(Bone*) |
骨骼权重控制
增量操作
AddWeight(delta)/AddTime(delta)— 逐帧累加权重或时间,适合手动驱动
与 AnimationController 的关系
AnimationController 在高层封装了多个 AnimationState 的生命周期管理;直接操作 AnimationState 用于需要精细控制的场景(如程序化动画混合)。
来源
- UrhoX引擎 — engine-docs/api/animation.md,AnimationState 类定义