第37天新版动画系统和有限状态机

Unity标准骨骼系统(Avatar)

配置Avatar

1.确保模型的每块骨骼和Unity的Avatar骨骼系统对应

2.确保模型以T Pose 站立

.第37天新版动画系统和有限状态机

实线代表必须一一对应

虚线代表可以不对应

根变换

Unity中的动画展示会产生两套transform

RootTransform:每帧实时计算出来的。如果我们在建模时加入了根变换,角色就会在播放动画的时候进行一些位移,而不需要我们用代码去控制。(蓝色)

BodyTransform:根据身体上半身和下半身综合计算出来的朝向。(红色)

Bake into pose

烘焙到姿势,如果选中,物体在播放动画的时候会进行位移

Animator Controller(动画控制器(动画状态机))

AnyState:任意状态;常用作播放死亡状态,不管当前角色在播放什么状态,都可以被杀死然后播放死亡动作;

Entry/Exit:进入状态机和退出状态机,进入状态机默认连接默认状态动画;

Idle:橙色(名字可以改),一般是默认动画,一般播放待机动画;

Run:(灰色)一般状态(名字可以改)

动画状态机的层和参数

Layer:动画状态机中还可以嵌套一个动画状态机;

Paramters:状态切换参数(int float bool trigger);

控制动画跳转的条件

int:大于 小于 等于 不等于

float:大于 小于

bool: true false

Trigge:触发r

动画切换属性

Solo:动画切换优先;

Mute:动画切换禁止;.

Has Exit time :勾选上会在切换动画时上一动作结束后再播放下一动画

ExitTime:动作切换上一动作退出时间;

Fixed Duration/Transtion Duration:动作切换时间长度

Transtion offset:上一动画切换到下一动画,下一动画从什么地方开始播放

Interruption sources:打断动画切换来源:

重要:conditions:这里面的切换动作参数是paramers里面定义的,条件可以使大于、等于、不等于、小于

Animator组件

Controller:AnimatorController文件;

Avatar:放骨骼文件;

Apply Root motion:如果勾选代表使用动画中的位移,如果不勾选代表不使用动画中的位移;

如果当前游戏物体上的代码组件中有OnAnimatorMove,内置函数,位移就受代码控制;

Update Mode:正常更新、物理更新(FixUpdata更新)、不受时间缩放影响;

Culling Mode:始终有动画;

当摄像机没有渲染该物体,就会停止部分Transform相关功能;

当摄像机没有渲染该物体,整个动画都不会被渲染;

有限状态机:FSM

确定玩家的有限个状态,通过枚举来表示

玩家在任意一个时间只可能处于一种状态, 通过state变量来表示当前玩家的状态

当满足某个切换条件时, 状态间可以相互切换

检查切换条件是否满足,当满足时 进行切换

不同的状态下执行不同的行为

 

上一篇:《算法之美》总结


下一篇:笨方法学python 习题37