动画控制器
概述
AnimationController 是 UrhoX 引擎中挂载在节点上的组件,负责管理多动画的分层播放、淡入淡出和混合,是骨骼动画的核心驱动器。
关键内容
基本播放
Play(name, layer, looped, fadeInTime)— 在指定层播放动画,支持淡入PlayExclusive(name, layer, looped, fadeTime)— 播放并停止同层其他动画Stop(name, fadeOutTime)/StopAll(fadeTime)— 停止动画,支持淡出
权重与混合
Fade(name, targetWeight, fadeTime)— 将指定动画权重渐变至目标值FadeOthers(name, targetWeight, fadeTime)— 将其他动画权重渐变至目标值SetBlendMode(name, mode)— 设置混合模式(AnimationBlendMode)SetWeight(name, weight)/SetSpeed(name, speed)— 直接设置权重和播放速度
分层系统
- 每个动画属于一个
layer(char 类型),同层动画可互斥或叠加 SetStartBone(name, startBoneName)— 限制动画仅影响指定骨骼子树,实现上下半身分离
自动管理
SetAutoFade(name, fadeOutTime)— 动画结束时自动淡出SetRemoveOnCompletion(name, bool)— 播放完成后自动移除
状态查询
IsPlaying(name)/IsFadingIn/IsFadingOut/IsAtEnd— 查询播放状态GetAnimationState(name)— 获取底层 AnimationState 对象进行精细控制
继承关系
AnimationController 继承自 Component,挂载于带 AnimatedModel 的节点上。
来源
- UrhoX引擎 — engine-docs/api/animation.md,AnimationController 类定义