3d打印
焦卫峰

1
2
3
4
5
6

新建目录

发布时间:2020-08-22 20:43   发布人:焦卫峰   浏览次数:411

12.动画控制器

动画控制器(AnimatorController)与Animator组件息息相关。动画控制器资源相当于一个容器,我们可以通过创建多个动画节点,并形成动画状态机,来处理各个动画之间的过度以及播放逻辑。

 

Mecanim的Retargeting

Retargeting的字面含义是目标的重定向,但在Mecanim中指的是角色动画,可以经过Avatar处理过的骨骼间进行重新应用。

13.动画控制器参数设置

在Project视图中右击菜单中可以创建Animator Controller

窗口有3个默认的状态,这些状态是Unity自动帮我们创建的同时也无法删除和修改

Entry:表示当进入当前状态机时的入口,该状态连接的状态会成为进入状态机后的第一个状态;

Any State:表示任意的状态,其作用是其指向的状态是在任意时刻都可以切换过去的状态;

Exit:表示退出当前的状态机,如果有任意状态指向该出口,表示可以从指定状态退出当前的状态机;(作用)

 

两种方式创建新的状态

1.右键菜单进行创建,可以用一个新名字

2.或者我们可以通过把一个Animation Clip拖拽到状态机窗口中进行创建。新状态标记为黄色,同时被设置为默认的第一个状态。

 

状态面板

Motion 表示当前状态对应的Animation Clip

Speed   速度

Mirror   镜面(复用动画)

Cycle  Offset  播放偏移量

Foot IK 是否启用脚部的IK动画

Write Defaults:动画播放完毕后是否将状态重置为默认状态,一般勾选即可

Solo  勾选表示当前过渡为唯一过渡,即当前状态只能过渡到这个项目指向的状态;(用于复杂状态机,单独预览其中某些部分的效果时)

Mute  勾选表示使这个动画过渡关闭,即当前状态不能过渡到这个项目指向的状态;

 

切换默认动画 Set As Default

进行动画状态连接 Make Transition

 

打开Parameters面板,这里被用来设置状态机使用到的各种参数

Trigger和Bool类型的区别是,Trigger值为True的情况下,动画执行一次后,条件自动还原

点击过渡线,可以在Inspector窗口设置动画切换,也可以设置两个动画的淡入淡出

Solo单线通过

Mute暂停,通不过

Has Exit Time 是否有退出时间,当前动画能否被打断,勾选后当前动画播放完才去播放另一个

Conditions    过渡条件

14.动画控制相关API

SetFloat/Getfloat/SetInteger/GetInteger/SetBool/GetBool/SetTrigger/GetTrigger用于设置相应类型的动画参数。

StringToHash是静态函数,用于动画状态的名称得到该动画状态的HashID,其返回值是int

GetCurrentAnimatorStateInfo/GetNextAnimatorStateInfo用于得到当前层/下一个动画状态(IsName等 )