Godot动画系统:动画状态机-AnimationTree(AnimationNodeStateMachine模式)基本设置与界面

时间:2024-03-15 17:56:22

下文以3D环境为例介绍Godot动画状态机

我们已经导入了一个带有多组动画的模型,见《Godot Engine:Blender模型导入Godot自动生成的场景结构》

1. 添加AnimationTree

在Beefy场景中添加一个AnimationTree节点

Godot动画系统:动画状态机-AnimationTree(AnimationNodeStateMachine模式)基本设置与界面当前AnimationTree的默认属性是下面这个样子
Godot动画系统:动画状态机-AnimationTree(AnimationNodeStateMachine模式)基本设置与界面

2. 设置AnimationTree

我们注意到AnimationTree右边有一个警告标志,点击这个表示会弹出如下提示
Godot动画系统:动画状态机-AnimationTree(AnimationNodeStateMachine模式)基本设置与界面
它要求我们为AnimationTree做两件事

  • 添加一个TreeRoot根AnimationNode,它决定着AnimationTree的工作模式
  • 指定一个AnimationPlayer,它是存储动画片段的容器
2.1添加Tree Root

由于我们要用它来做动画状态机,所以要创建AnimationNodeStateMachine类型的Tree Root

Godot动画系统:动画状态机-AnimationTree(AnimationNodeStateMachine模式)基本设置与界面

2.2指定AnimationPlayer

Godot动画系统:动画状态机-AnimationTree(AnimationNodeStateMachine模式)基本设置与界面上面两步完成以后,我们发现AnimationTree的属性栏中还会自动添加一个Playback属性并自动赋值为AnimationNodeStateMchinePlayback,这个 Playback也非常重要,我们在程序中控制状态机就要依靠它

Godot动画系统:动画状态机-AnimationTree(AnimationNodeStateMachine模式)基本设置与界面

2.3启用AnimationTree

勾选AnimationTreeActive,该项实际上在运行时通过代码开启也是可以的,但在编辑器中开启可以帮助我们更方便地调试状态机
Godot动画系统:动画状态机-AnimationTree(AnimationNodeStateMachine模式)基本设置与界面

3. AnimationTree编辑器

以上操作完毕后,当我们在层级图中选择AnimationTree时,编辑器下方会出现AnimationTree的编辑器

Godot动画系统:动画状态机-AnimationTree(AnimationNodeStateMachine模式)基本设置与界面
该编辑器中面积最大的地方权且叫“动画节点画布”,该画布目前还是空的,因为我们还没有添加任何节点,下篇文章将继续介绍它的使用

小结
AnimationTree的基本设置和界面介绍完毕,下文将介绍如何添加动画节点和动画过渡