RedZero9 发表于 2021-4-10 19:20

Unity动画 Animator 状态机使用


简介: 了解了 AnimatorController 和 Animation 后,我们就可以更深一步的来了解状态机了
版本:Unity2019.4.12f1HDRP 7.5.1
准备

在 Animator 面板的空白处点击右键依次选择 CreteState -> Empty 便可以创建一个空的状态

创建一个空的状态

状态机属性

空的状态属性我们需要了解一下

空状态的属性界面

Motion : 我们需要和这个状态关联的 AnimationSpeed : 本状态关联的 Animation 的播放速度,有了这个我就可以做两个状态,使用同一个 Animation,但是呢速度设置不一样,那么也会有两种效果。Multiplier: 速度倍乘一个值,这个值需要是我们在 Parameters 面板内创建的,一搬留给程序使用的,做没有脚本控制的视频可以忽略MotionTime :勾选后面的 Parameter 后可以使用一个参数来控制动画位于那个时间点,即这个值就代表了动画播放到了哪一秒,单位是秒,可以有小数Mirror :动画镜像,仅适用于人形动画,勾选后面的 Parameter 后可以使用一个 bool 参数来控制CycleOffset :FootIK: 脚部IK 开启,勾选后
拖拽创建状态

我们一般指定动画时,直接将 AnimationClip 拖入到中间的编辑面板即可自动生成一个动画状态

直接从Project面板拖入到状态编辑面板

黄色的为默认状态,当引擎播放时,会默认播放这个动画,这个状态会默认从 Entry 状态关联上
[*]状态右键按钮
1. MakeTransition 转移链接,当前状态的动画播放完成,或者达到某个条件时,要跳到的动画
2. SetAsLayerDefaultState 设置为默认状态,就是将它变成黄色图标
3. Copy 复制,ctrl+C
4. Create New BlendTree in State 在状态内建立混合树
5. Delete 删除

状态右键按钮

状态连接线


当有两个动画状态通过右键的 MakeTransition 链接起来时,出现一根链接线,这个线可以选中

状态连接线

选中链接线后,它属性中的 HasExitTime 勾选后,表示第一个状态播放完成后,会自动播放第二个动画连接线还可以控制两个状态的动画在切换时的融合长度,下图的绿色区域就是混合的位置

状态动画之间的混合

状态之间的切换除了使用 HasExitTime 还可以自己设置条件参数来控制,做视频一般用不到,我们这里不做讲解了,想了解的可以看一下 官方的文档。状态链接线可以是双向的 ,即可以从 A 到 B ,也可从 B 到 A ,表示,播完 A 播 B ,播完 B 播 A ,往复循环

双向连线
页: [1]
查看完整版本: Unity动画 Animator 状态机使用