美文网首页Unity3D 成神之路Unity动画相关
Animator状态机子状态与混合树

Animator状态机子状态与混合树

作者: _凉笙 | 来源:发表于2017-03-17 00:11 被阅读46次

    子状态动画机

    子状态相当于在目前层的状态机下面建立一个自状态集合,可以将类似的动画装填结合在一起,简化动画逻辑。典型的子状态机如下所示(Attack是子状态机):
    右键即可添加子状态,子状态中可以放入若干状态,一般都会用到。


    Paste_Image.png

    混合树

    混合树表示多个状态的混合调用,一般根据某些参数来实现这些动画状态之间的混合与切换,根据参数的个数可以分为1D混合、2D混合和直接混合。比如在之前的案例中,我们通过控制Float参数Speed实现了Idle、Run、Walk之间的过渡,我们这里也可以通过混合树来实现。1D混合如下图所示。
    混合树可以参考官方状态机项目的Generic Skeleton Example
    右键Create State>From New Blend Tree即可创建混合树


    Paste_Image.png
    Paste_Image.png
    Paste_Image.png

    设定混合类型为1D
    添加混合参数Speed
    添加Motion,并设定Motion在的门坎值。
    我们通过一个混合树就实现了之前通过三个状态并设定过渡条件实现的功能。
    除了1D混合,我们还可以2D混合,2D混合有三种不同类型:


    Paste_Image.png 2D simple Directional,表示在二维每个空间方向只能有一个动作;
    2D Freedom Directional,表示在二维每个空间方向可以有两个动作,但是必须一个是Idle。
    2D Freedom Cartesian,表示在笛卡尔二维空间中各个方向可以随便设定动作。这个是最常用的。
    下面我们在1D的基础上,增加三个动作,后退、左转和右转,那么1D混合满足不了需求了,我们需要用2D混合类型,通过2D类型控制了6个Motion的切换。
    Paste_Image.png
    1222.gif

    相关文章

      网友评论

        本文标题:Animator状态机子状态与混合树

        本文链接:https://www.haomeiwen.com/subject/khjsnttx.html