EKsumic's Blog

let today = new Beginning();

Click the left button to use the catalog.

OR

[Unity]混合树(Blend Tree)初认识

接上篇Animator Controller简介→这里

 

混合树(Blend Tree)是用来混合动画的。

它默认是Animator Controller里面的一个State。

和其他的单个State里面存放1个Animation不同,混合树State里面可以存放多个甚至任意个动画。

 

举例:

BlendTree1

这里的Run状态是一个Blend Tree,它里面有8个方向的动画,

BlendTree2

双击打开Run,可以查看里面的状态,我们可以看到两个参数,Horizontal和Vertical,

BlendTree3

通过改变这两个参数的值,能实现切换播放的动画,这个过程可以换另一种演示方式:

BlendTree4

使用鼠标在这个2D面板上绕环移动,可以实现Horizontal和Vertical参数的改变,从而模拟切换动画的情况。

 

混合树(Blend Tree)的主要目的还是为了动画之间的平滑切换,换句话说,它能补帧。

 

以上图的Motion来说,Motion的选项卡有8个动画,

0.707这个数值不是瞎编的,最好记住。

像这样实现2D人物的8个方向的移动,需要在正确的Positon放好Anim文件。

 

我们通过用鼠标拖动红点来模拟参数变化,这只属于一种测试,并不会影响直接作用的参数。

一般情况下,我们使用代码来控制参数的获取值。

 

我们在Update函数中,一般写

float h=Input.GetAxis("Horizontal");

Animator.SetFloat("Horizontal",h);

来实时地改变参数。

 

这是最基础的写法,而且还要注意,最后一张图,我们的Blend Type选的是2D Simple Directional。

This article was last edited at 2020-04-12 04:55:34

* *