天天看点

Unity游戏开发之动画播放与动画控制器 Animator Controller

配置好Avatar之后把模型加到场景之后会检视面板中可以看到Animator组件。

Unity游戏开发之动画播放与动画控制器 Animator Controller

属性

Controller 控制器 附加到角色的动画控制器

Avatar角色的Avatar

Apply Root Motion 应用根动作 从动画自身来控制角色位置还是通过脚本控制

Animate Physics 动画物理 动画是否涉及物理

Culling Mode 动画剔除

oAlways animate 总是动画 不剔除

oBased on Renderers 基于渲染器  不可见时只有根动作在播放动画,身体其他部分静止。

动画控制器 Animator Controller

创建一个Animator Controller,(Asset->Create->Animator Controller)。双击打开。

Unity游戏开发之动画播放与动画控制器 Animator Controller

资源面板中找到闲置动画“idle1” 拖到到状态机当中,黄色矩形表示该状态为默认状态,可以右键点击其他状态并设置为默认状态(“set as default”)。

Unity游戏开发之动画播放与动画控制器 Animator Controller

状态切换

右键某一个状态,Make Transition 创建一个状态切换,把连线拉到要切换到的目标状态。

Unity游戏开发之动画播放与动画控制器 Animator Controller

这样就创建了从某一个状态到另一个状态的切换。

Unity游戏开发之动画播放与动画控制器 Animator Controller

单击这条连线,在检视面板上可以看到转换的详细信息,可以给这个转换设置条件,在满足某些条件的情况下才做这个动作切换。

以下几个选项方便调试预览:

Solo:仅此转化可用

Muting:转化不可用

Atomic :转化不能不会被中断。

Unity游戏开发之动画播放与动画控制器 Animator Controller

点击Conditions 中我们看到默认条件是Exit Time ,值为0.74。表示第一个动作开始播放0.74秒之后,切换成第二个动作。可以点击条件选择其他条件,我们看到现在没有可以选择的其他条件。

Unity游戏开发之动画播放与动画控制器 Animator Controller

可以通过动画面板增加自定义的条件。点击动画面板上的Parameters  后边 “+”;

Unity游戏开发之动画播放与动画控制器 Animator Controller

我们可以增加4种类型的参数,分别为向量,浮点数,整数,布尔值。增加两个参数。

Unity游戏开发之动画播放与动画控制器 Animator Controller

再次点击连线,选择条件的时候,就可以看到我们增加的参数了。

Unity游戏开发之动画播放与动画控制器 Animator Controller

当存在太多状态时,可以创建子状态机。子状态机可以当做一个普通节点组建状态机。

Unity游戏开发之动画播放与动画控制器 Animator Controller

动画层

通过左上角的按钮可以增加不同的动画层,每一个动画层可以设置各自的状态机。通过层的使用可以方便的控制多个动作的转化并为不同的动画设置相应的权重。如一个射击动画,一个空闲和行走循环动画,想要在行走和空闲动画之间连续过渡,基于玩家的速度。但当玩家射击时,仅显示射击动画,因此,射击动画基本上有更高优先级。要做到这点最简单的方法是在射击时简单的保持行走和空闲动画,然后我们需要确保射击动画比空闲和行走动画在更高的层(默认值为0,可以设置一个大于0的整数)。这意思是射击动画将首先接收融合权重。行走和空闲动画仅当射击动画不使用融合权重100%时,接收权重。因此,交叉淡入淡出射击动画时,权重将从0开始很短时间内变为100%,在开始时步行和空闲层仍然会收到融合权重,但当射击动画完全切入时,它们不再接收权重。

继续阅读