Behavior Designer 内置了一系列 Animator tasks,但是不建议过多使用。

    假设我们有如下 Animtor Controller:
    image.png
    Speed 是 0 时播放 Idle 动画,是 1 时播放 Run 动画。假设我们有如下行为树功能:
    image.png
    Agent 先播放 Run 动画,然后开始 Seek。等 Seek 结束后,Agent 播放 Idle 动画。

    在上图这个简单的功能中,行为树和动画控制器配合得还不错。然而一旦动画数量上升,行为数将变得非常臃肿,难以理解。而且一旦更改了动画的 transition,就需要更改行为树。

    有一个办法,就是不要使用行为树同步动画。让 character controller 去同步自己的动画。

    假设我们使用 Unity 的 NavMeshAgent,行为树只需要负责设置 Agent 的目的地。Agent 会调整自己的速度和朝向,然后 character controller 将速度转换为 Animtor Controller 能理解的参数。

    你还可以使用 ApexPath、A*PathfindingProject 等插件来实现 Agent 的移动和动画播放。

    本插件制作者的另一个插件,Ultimate Character Controller 就是这么实现的,没有使用一个 Animtor task,详情点击链接