Unity现存两套动画系统:Legacy动画系统和Mecanim动画系统。
Unity的Mecanim动画系统,是一套基于状态机的动画控制系统,是一个面向动画应用的动画系统
Animator
- Avatar:动画节点导引替身,与动画复用(尤其是人形动画复用)有关,通过配置和应用Avatar,可以实现不同FBX模型之间的动画复用
- Apply Root Motion:是否将动画中的根节点位移,植入到Unity中的物体位移上。
- Culling Mode:剔除模式
- Always Animate:无论物体是否被摄像机可见,总是计算所有节点的运动,完整的进行动画播放
- Cull Update Transforms:当物体不被摄像机可见时,仅计算根节点的位移植入,保证物体位置上的正确
- Cull Completely:当物体不被摄像机可见时,完全终止动画的运行
- 对于玩家操作的主角人物,或者与主角密切相关的,在绝大多数情况下均可见的角色,我们通常使用Always Animate模式
- 对于一些配角,例如怪物,小兵,这些部分情况下可见的角色,不妨使用Cull Update Transform模式来进行优化,这样在摄像机无法看见它们的时候,它们的根节点运动仍然正确
Animator Sub-state machine
- 可以用来优化动画之间的结构,可以理解为windows上文件夹作用
Animator Layer 分层
- 可以控制同时播放多层动画。结合Mask Avatar 可以实现上半身和下半身动画组合。
Animator BlendTree混合树
- 用来控制几个动画进行混合如下图:常规的State只能是和下一个进行切换,而使用了BlendTree可以多个切换,如下设置不同Blend值对应后面4中插值。比如0.25就是POSE02了,这里Blend Type是1D,还可以切换成2D,相当于是x,y坐标插值。
动画IK
- 反向动力学,用来解决模型动作跟随问题。如下图:通过控制左手,实现左手臂整体移动。