目录

前言

正文

1. Animator 组件

2. 创建 AnimatorController

3. 创建新状态

4. 状态切换

Has Exit Time: 


前言

Mecanim是Unity提供第一个丰富而复杂的动画系统,提供了:针对人形角色的简易的工作流和动画创建能力Retargeting(运动重定向)功能,即把动画从一个角色模型应用到另一个角色模型上的能力。针对Animations Clips(动画片段)的简易工作流,针对动画片段及他们之间的过度和交互预览能力。一个用于管理动画间复杂交互作用的可视化窗口。通过不同逻辑来控制不同身体部位的运动能力。

下面是简单介绍。

正文

1. Animator 组件

  • Controller:使用的 Animator Controller 文件。
  • Avatar:使用的骨骼文件。
  • Apply Root Motion:绑定该组件的 GameObject 的位置是否可以由动画进行改变(如果存在改变位移的动画)。
  • Update Mode:更新模式:Normal 表示使用 Update 进行更新,Animate Physics 表示使用 FixUpdate 进行更新(一般用在和物体有交互的情况下),Unscale Time 表示无视 timeScale 进行更新(一般用在 UI 动画中)。
  • Culling Mode:剔除模式:Always Animate 表示即使摄像机看不见也要进行动画播放的更新,Cull Update Transform 表示摄像机看不见时停止动画播放但是位置会继续更新,Cull Completely 表示摄像机看不见时停止动画的所有更新。

2. 创建 AnimatorController

默认有三个初始状态:

  • Entry:表示当进入当前状态机时的入口,该状态连接的状态会成为进入状态机后的第一个状态;
  • Any State:表示任意的状态,其作用是其指向的状态是在任意时刻都可以切换过去的状态;
  • Exit:表示退出当前的状态机,如果有任意状态指向该出口,表示可以从指定状态退出当前的状态机;

3. 创建新状态

右键 ➡ Create State ➡ Empty。

可以将该状态设为默认状态,右键 ➡ Set as Layer Default State。


4. 状态切换

右键 ➡ Make Transition。

可以通过参数的变化来进行状态的转换。

  • Float:float 类型的参数,多用于控制状态机内部的浮点型参数;
  • Int:int 类型的参数,多用于控制状态机内部的整型参数;
  • Bool:bool 类型参数,多用于状态切换;
  • Trigger:本质上也是一个 bool 类型的参数,但是其值默认为 false,且设置为 true 后系统会自动将其还原为 false;

Has Exit Time: 

如果我们勾选了该项,在动画转换时会等待当前动画播放完毕才会转换到下一个动画,如果当前动画是循环动画会等待本次播放完毕时转换,所以对于需要立即转换动画的情况时记得要取消勾选。

还有一种情况时,当我当前的动画播放完毕后就自动转换到箭头所指的下一个状态(没有其他跳转条件),此时必须勾选该选项,否则动画播放完毕后就会卡在最后一帧,如果是循环动画就会一直循环播放。

Logo

分享前沿Unity技术干货和开发经验,精彩的Unity活动和社区相关信息

更多推荐