下文以3D环境为例介绍Godot动画状态机
我们已经导入了一个带有多组动画的模型,见《Godot Engine:Blender模型导入Godot自动生成的场景结构》
1. 添加AnimationTree
在Beefy场景中添加一个AnimationTree
节点
当前AnimationTree
的默认属性是下面这个样子
2. 设置AnimationTree
我们注意到AnimationTree
右边有一个警告标志,点击这个表示会弹出如下提示
它要求我们为AnimationTree
做两件事
- 添加一个
TreeRoot
即根AnimationNode
,它决定着AnimationTree
的工作模式 - 指定一个
AnimationPlayer
,它是存储动画片段的容器
2.1添加Tree Root
由于我们要用它来做动画状态机,所以要创建AnimationNodeStateMachine
类型的Tree Root
2.2指定AnimationPlayer
上面两步完成以后,我们发现AnimationTree
的属性栏中还会自动添加一个Playback
属性并自动赋值为AnimationNodeStateMchinePlayback
,这个 Playback
也非常重要,我们在程序中控制状态机就要依靠它
2.3启用AnimationTree
勾选AnimationTree
的Active
,该项实际上在运行时通过代码开启也是可以的,但在编辑器中开启可以帮助我们更方便地调试状态机
3. AnimationTree
编辑器
以上操作完毕后,当我们在层级图中选择AnimationTree
时,编辑器下方会出现AnimationTree
的编辑器
该编辑器中面积最大的地方权且叫“动画节点画布”,该画布目前还是空的,因为我们还没有添加任何节点,下篇文章将继续介绍它的使用
小结
AnimationTree
的基本设置和界面介绍完毕,下文将介绍如何添加动画节点和动画过渡