二维动画功能简介

概述

这个 AnimationPlayer 节点允许您创建从简单到复杂的动画。

在本指南中,您将学习:

  • 使用动画面板

  • 动画任意节点的任何属性

  • 创建简单动画

  • 具有强大调用函数跟踪的调用函数

在Godot中,您可以为检查器中可用的任何内容设置动画,例如节点转换、精灵、UI元素、粒子、材质的可见性和颜色等。您还可以修改脚本变量的值并调用任何函数。

创建动画播放器节点

要使用动画工具,我们首先必须创建一个 AnimationPlayer 节点。

animationplayer节点类型是动画的数据容器。一个animationplayer节点可以保存多个动画,可以自动转换到另一个动画。

The AnimationPlayer node

动画播放器节点

单击“节点”选项卡中的“动画播放器”节点,打开视区底部的“动画”面板。

The animation panel position

动画面板位置

它由五部分组成:

The animation panel

动画面板

  • 动画控件(即添加、加载、保存和删除动画)

  • 曲目列表

  • 带有关键帧的时间线

  • 关键帧编辑器(启用时)

  • 时间线和轨迹控件,例如,您可以在其中缩放时间线和编辑轨迹。

animation panel reference 详情见下文。

计算机动画依赖于关键帧

关键帧定义属性在特定时间点的值。

白色和蓝色菱形表示时间线中的关键帧。

Keyframes in Godot

Godot中的关键帧

引擎在关键帧之间插入值,导致值随时间逐渐变化。

Two keyframes are all it takes to obtain a smooth motion

只有两个关键帧才能获得平滑的运动

时间线允许您插入关键帧并更改它们的计时。它还定义动画的长度。

The timeline in the animation panel

动画面板中的时间线

动画面板的每一行都是动画轨迹。Normal和Transform跟踪引用节点属性。它们的名称或ID是指向节点和受影响属性的路径。

Example of Normal animation tracks

普通动画轨迹示例

小技巧

如果动画设置错误的属性,则可以随时编辑轨迹的路径。双击它并键入新路径。使用“从开始播放”按钮从开始播放(默认快捷方式:shift+d)播放动画,以立即查看更改。

教程:创建简单动画

场景设置

对于本教程,我们将创建一个animationplayer节点和一个sprite节点作为animationplayer节点的子节点。

Our scene setup

我们的场景设置

这个精灵有一个图像纹理,我们设置动画让它在屏幕上的两个点之间移动。作为起点,将精灵移动到屏幕上的左侧位置。

小技巧

不需要将动画节点作为子节点添加到AnimationPlayer节点,但这是区分场景树中的动画节点和非动画节点的一种好方法。

选择animationplayer节点,在animation选项卡中单击“添加动画”(“添加动画”)以添加新动画。

在对话框中输入动画的名称。

Add a new animation

添加新动画

添加曲目

要为精灵添加新的轨迹,请选择它并在工具栏中查看:

Convenience buttons

便利按钮

这些开关和按钮允许您分别为选定节点的位置、旋转和缩放添加关键帧。

取消选择旋转,因为我们只对本教程中sprite的位置感兴趣,并单击键按钮。

因为我们还没有为Transform/Location属性设置轨道,所以Godot问,是否应该为我们设置轨道。点击“创建”。

这将在时间线开始处创建新的轨迹和第一个关键帧:

The sprite track

精灵轨道

跟踪名称由节点路径、冒号和对其属性的引用组成,我们希望对其进行修改。

在我们的示例中,路径是 AnimationPlayer/Sprite 财产是 position .

路径始终从animationplayer节点的父节点开始(因此路径必须包含animationplayer节点本身)。

注解

如果更改了场景树中已经有轨迹的节点的名称,则不用担心。Godot会自动更新轨道上的路径。

第二个关键帧

现在,我们需要设定我们的雪碧的目的地,以及到达目的地需要多少时间。

比如说,我们想用2秒钟的时间到达另一个点。默认情况下,动画设置为仅持续1秒,因此在“动画”面板下面板的“时间线控件”中将此设置更改为2。

Animation length

动画长度

单击2秒钟标记附近的时间线标题,并将精灵移动到右侧的目标目的地。

再次单击工具栏中的“键”按钮。这将创建第二个关键帧。

运行动画

单击“从开始播放”(“从开始播放”)按钮。

哎呀!我们的动画运行:

The animation

动画

来回地

如您所见,“循环”按钮在默认情况下是启用的,我们的动画循环。Godot在这里有一个附加功能。如前所述,Godot总是计算两个关键帧之间的帧。在循环中,如果没有在结尾处指定关键帧,则第一个关键帧也是最后一个关键帧。

Animation loop

动画循环

如果现在将动画长度设置为4秒,则动画会前后移动。如果更改轨道的循环模式,则可以更改此行为。这将在下一章中介绍。

曲目设置

每个轨迹末端都有一个设置面板,您可以在其中设置更新速率、轨迹插值和循环模式。

Track settings

曲目设置

跟踪的更新速率告诉godot何时更新属性值。这可以是:

  • 连续:更新每个帧的属性

  • 离散:仅更新关键帧上的属性

  • 触发器:仅更新关键帧或触发器的属性

Track rate

航迹率

在普通动画中,通常使用“连续”。其他类型用于编写复杂动画的脚本。

插值告诉Godot如何计算关键帧之间的帧值。支持这些插值模式:

  • 最近:设置最近的关键帧值

  • 线性:根据两个关键帧之间的线性函数计算设置值

  • 立方:根据两个关键帧之间的立方函数计算设置值

Track interpolation

轨迹插值

三次插值导致更自然的移动,其中动画在关键帧处速度较慢,在关键帧之间速度较快。这通常用于角色动画。线性插值产生更多的机器人运动。

Godot支持两种循环模式,如果设置为循环,则会影响动画:

Loop modes

循环模式

  • 钳环插值:选中此选项后,动画将在该轨迹的最后一个关键帧后停止。当再次达到第一个关键帧时,动画将重置为其值。

  • 环绕循环插值:选中此选项后,Godot将计算最后一个关键帧后的动画,以再次达到第一个关键帧的值。

其他属性的关键帧

Godot不限制您只编辑转换属性。每个属性都可以用作可以设置关键帧的轨迹。

如果在动画面板可见的情况下选择您的精灵,则会为精灵的所有属性提供一个小的关键帧按钮。单击此按钮,godot将自动向当前动画添加轨迹和关键帧。

Keyframes for other properties

其他属性的关键帧

编辑关键帧

对于高级使用和详细编辑关键帧,启用关键帧编辑器(关键帧编辑器)。

这会在轨迹设置的右侧添加一个编辑器窗格。选择关键帧时,可以在此编辑器中直接编辑其值:

Keyframe editor editing a key

关键帧编辑器编辑关键帧

此外,还可以编辑此关键帧的过渡值:

Keyframe editor editing a transition

关键帧编辑器编辑过渡

这将告诉Godot,当属性值到达该关键帧时如何更改属性值。

你通常这样调整你的动画,当运动不“看起来正确”。

高级:调用func曲目

Godot的动画引擎不会停在这里。如果你已经习惯了Godot的脚本语言 gdscript基础Godot API 您知道每个节点类型都是一个类,并且有一组可调用函数。

例如, AudioStreamPlayer 节点类型具有播放音频流的功能。

在动画中的特定关键帧处播放流不是很好吗?这就是“呼叫Func曲目”的用武之地。这些跟踪再次引用一个节点,这次不引用属性。相反,一个关键帧保存一个函数的名称和参数,当它到达这个关键帧时,godot应该调用这个函数。

要让Godot在到达关键帧时播放示例,请按照以下列表操作:

添加 AudioStreamPlayer 到场景树,并使用项目中放置的音频文件设置流。

Add AudioStreamPlayer

添加音频流播放器

在动画面板的轨迹控件上单击“添加轨迹”(添加轨迹)。

从可能的曲目类型列表中选择“添加呼叫功能曲目”。

Add Call Func Track

添加调用函数轨

选择 AudioStreamPlayer 选择窗口中的节点。Godot添加了对节点的引用的轨迹。

Select AudioStreamPlayer

选择音频流播放器

选择时间线位置,单击时间线标题,Godot应在其中播放示例。

单击关键帧编辑器,启用关键帧编辑器。

单击func轨迹(添加关键帧)设置附近的“添加关键帧”,然后选择关键帧。

Add a keyframe to the call func track

将关键帧添加到调用函数轨

输入“play”作为函数名。

Keyframe settings of a call func track

调用函数轨道的关键帧设置

当godot到达关键帧时,godot调用 AnimationPlayer 节点的“播放”功能和流播放。

工具书类

动画面板参考

The animation panel reference

动画面板参考

动画面板包含以下部分(从左到右):

动画控件

Animation controls

动画控件

  • 从当前位置向后播放动画

  • 从动画端向后播放动画

  • 停止动画

  • 从动画开始向前播放动画

  • 从当前位置向前播放动画

  • 直接时间选择

动画管理

Animation management

动画管理

  • 创建新动画

  • 加载动画

  • 保存动画

  • 复制动画

  • 重命名动画

  • 删除动画

  • 动画选择

  • 自动播放选定的动画

  • 编辑动画混合时间

  • 扩展动画工具

时间线缩放级别控件

Timeline zoom level control

时间线缩放级别控件

时间线控件

Timeline control

时间线控件

  • 动画长度

  • 动画的步骤

  • 切换循环动画

轨道控制

Track control

轨道控制

  • 添加曲目

  • 向上移动曲目

  • 向下移动轨迹

  • 删除曲目

  • 扩展轨道工具

  • 切换关键帧编辑器