Blend Tree-动画混合树
作用:将多个动画融合在一起,按条件触发。
创建混合树:在动画状态机中:右键->Create->Blend Tree
双击进入混合树,看右边的属性
Blend Type:混合的类型,三种类型
1D:一维混合 需要一个参数 (下面)
2D:两个参数
自由混合:多个参数
1).
通过1D混合融合人物的Idle、Walk、Run动作
首先创建一个过渡条件Float类型的speed
用speed来控制人物的Idle Walk 和Run
在混合树属性中:参数选择speed
添加三个动作、将三个动画剪辑拖进去。
将动画拖进去以后,我们会看到我们的根节点中多出了三条连接出来的子节点,也就是我们的动作。
参数speed,是我们设置的参数,必须是float类型的。我们就是通过这个参数来实现动作的切换。
对于1D混合,只需要一个参数。
我们需要修改每一个动作切换所需要的预值。
这个图的含义,我们可以把横轴看做是float值,当我们点击一块区域,下面的动作也会高亮显示,也就说明第一个动作是随着时间慢慢减弱的
三角区域就代表这个动作的权重(竖轴代表权重)
也就是说当时间达到某一点时,Idle的权重可能是0.8,此时下面还有一个交点,是Walk的权重,是0.2 所以此时如果动画运动的时候,就是Idle的动画幅度更大一点。
我们可以将Idle设为0 walk设为0.5 Run设为1,这样就将三个动作三等分。
此时我们就可以通过代码获取float的值,来自动的修改动画。
使用动画混合树和我们之前动画的区别就是,在某一个float值得时候,有可能是两个动作都在执行。基本的状态过渡就无法实现。
2).
使用2D混合控制人物的Walk、run、idle、walkleft、walkright
2D混合有三种选择,一般只使用第三种
第一种,普通的混合,在一个方向上只能有一个动作,比如跑和走 就不能融合到一起
第二种,可以在同一方向设置两个,但是必须在原点有一个Idle状态,并且对旋转有一定限制。
第三种 没什么限制
首先创建两个过渡条件都是float类型。
分别添加向前 向后 向左 向右 run idle 动作。
因为我们用的是2D混合,所以不能用时间轴来表示,上面的表也变成了笛卡尔坐标系。每一个菱形代表一个状态
设置两个过渡条件
接着给各个动作添加预值
除了手动设置值以外,我们还可以让系统根据动作的速度来自行计算。
3).自由融合,随意添加参数。