二维动画功能简介¶
概述¶
这个 AnimationPlayer 节点允许您创建从简单到复杂的动画。
在本指南中,您将学习:
使用动画面板
动画任意节点的任何属性
创建简单动画
具有强大调用函数跟踪的调用函数
在Godot中,您可以为检查器中可用的任何内容设置动画,例如节点转换、精灵、UI元素、粒子、材质的可见性和颜色等。您还可以修改脚本变量的值并调用任何函数。
创建动画播放器节点¶
要使用动画工具,我们首先必须创建一个 AnimationPlayer 节点。
animationplayer节点类型是动画的数据容器。一个animationplayer节点可以保存多个动画,可以自动转换到另一个动画。
单击“节点”选项卡中的“动画播放器”节点,打开视区底部的“动画”面板。
它由五部分组成:
动画控件(即添加、加载、保存和删除动画)
曲目列表
带有关键帧的时间线
关键帧编辑器(启用时)
时间线和轨迹控件,例如,您可以在其中缩放时间线和编辑轨迹。
见 animation panel reference 详情见下文。
计算机动画依赖于关键帧¶
关键帧定义属性在特定时间点的值。
白色和蓝色菱形表示时间线中的关键帧。
引擎在关键帧之间插入值,导致值随时间逐渐变化。
时间线允许您插入关键帧并更改它们的计时。它还定义动画的长度。
动画面板的每一行都是动画轨迹。Normal和Transform跟踪引用节点属性。它们的名称或ID是指向节点和受影响属性的路径。
小技巧
如果动画设置错误的属性,则可以随时编辑轨迹的路径。双击它并键入新路径。使用“从开始播放”按钮从开始播放(默认快捷方式:shift+d)播放动画,以立即查看更改。
教程:创建简单动画¶
场景设置¶
对于本教程,我们将创建一个animationplayer节点和一个sprite节点作为animationplayer节点的子节点。
这个精灵有一个图像纹理,我们设置动画让它在屏幕上的两个点之间移动。作为起点,将精灵移动到屏幕上的左侧位置。
小技巧
不需要将动画节点作为子节点添加到AnimationPlayer节点,但这是区分场景树中的动画节点和非动画节点的一种好方法。
选择animationplayer节点,在animation选项卡中单击“添加动画”(“添加动画”)以添加新动画。
在对话框中输入动画的名称。
添加曲目¶
要为精灵添加新的轨迹,请选择它并在工具栏中查看:
这些开关和按钮允许您分别为选定节点的位置、旋转和缩放添加关键帧。
取消选择旋转,因为我们只对本教程中sprite的位置感兴趣,并单击键按钮。
因为我们还没有为Transform/Location属性设置轨道,所以Godot问,是否应该为我们设置轨道。点击“创建”。
这将在时间线开始处创建新的轨迹和第一个关键帧:
跟踪名称由节点路径、冒号和对其属性的引用组成,我们希望对其进行修改。
在我们的示例中,路径是 AnimationPlayer/Sprite
财产是 position
.
路径始终从animationplayer节点的父节点开始(因此路径必须包含animationplayer节点本身)。
注解
如果更改了场景树中已经有轨迹的节点的名称,则不用担心。Godot会自动更新轨道上的路径。
第二个关键帧¶
现在,我们需要设定我们的雪碧的目的地,以及到达目的地需要多少时间。
比如说,我们想用2秒钟的时间到达另一个点。默认情况下,动画设置为仅持续1秒,因此在“动画”面板下面板的“时间线控件”中将此设置更改为2。
单击2秒钟标记附近的时间线标题,并将精灵移动到右侧的目标目的地。
再次单击工具栏中的“键”按钮。这将创建第二个关键帧。
来回地¶
如您所见,“循环”按钮在默认情况下是启用的,我们的动画循环。Godot在这里有一个附加功能。如前所述,Godot总是计算两个关键帧之间的帧。在循环中,如果没有在结尾处指定关键帧,则第一个关键帧也是最后一个关键帧。
如果现在将动画长度设置为4秒,则动画会前后移动。如果更改轨道的循环模式,则可以更改此行为。这将在下一章中介绍。
曲目设置¶
每个轨迹末端都有一个设置面板,您可以在其中设置更新速率、轨迹插值和循环模式。
跟踪的更新速率告诉godot何时更新属性值。这可以是:
连续:更新每个帧的属性
离散:仅更新关键帧上的属性
触发器:仅更新关键帧或触发器的属性
在普通动画中,通常使用“连续”。其他类型用于编写复杂动画的脚本。
插值告诉Godot如何计算关键帧之间的帧值。支持这些插值模式:
最近:设置最近的关键帧值
线性:根据两个关键帧之间的线性函数计算设置值
立方:根据两个关键帧之间的立方函数计算设置值
三次插值导致更自然的移动,其中动画在关键帧处速度较慢,在关键帧之间速度较快。这通常用于角色动画。线性插值产生更多的机器人运动。
Godot支持两种循环模式,如果设置为循环,则会影响动画:
钳环插值:选中此选项后,动画将在该轨迹的最后一个关键帧后停止。当再次达到第一个关键帧时,动画将重置为其值。
环绕循环插值:选中此选项后,Godot将计算最后一个关键帧后的动画,以再次达到第一个关键帧的值。
其他属性的关键帧¶
Godot不限制您只编辑转换属性。每个属性都可以用作可以设置关键帧的轨迹。
如果在动画面板可见的情况下选择您的精灵,则会为精灵的所有属性提供一个小的关键帧按钮。单击此按钮,godot将自动向当前动画添加轨迹和关键帧。
编辑关键帧¶
对于高级使用和详细编辑关键帧,启用关键帧编辑器(关键帧编辑器)。
这会在轨迹设置的右侧添加一个编辑器窗格。选择关键帧时,可以在此编辑器中直接编辑其值:
此外,还可以编辑此关键帧的过渡值:
这将告诉Godot,当属性值到达该关键帧时如何更改属性值。
你通常这样调整你的动画,当运动不“看起来正确”。
高级:调用func曲目¶
Godot的动画引擎不会停在这里。如果你已经习惯了Godot的脚本语言 gdscript基础 和 Godot API 您知道每个节点类型都是一个类,并且有一组可调用函数。
例如, AudioStreamPlayer 节点类型具有播放音频流的功能。
在动画中的特定关键帧处播放流不是很好吗?这就是“呼叫Func曲目”的用武之地。这些跟踪再次引用一个节点,这次不引用属性。相反,一个关键帧保存一个函数的名称和参数,当它到达这个关键帧时,godot应该调用这个函数。
要让Godot在到达关键帧时播放示例,请按照以下列表操作:
添加 AudioStreamPlayer 到场景树,并使用项目中放置的音频文件设置流。
在动画面板的轨迹控件上单击“添加轨迹”(添加轨迹)。
从可能的曲目类型列表中选择“添加呼叫功能曲目”。
选择 AudioStreamPlayer 选择窗口中的节点。Godot添加了对节点的引用的轨迹。
选择时间线位置,单击时间线标题,Godot应在其中播放示例。
单击关键帧编辑器,启用关键帧编辑器。
单击func轨迹(添加关键帧)设置附近的“添加关键帧”,然后选择关键帧。
输入“play”作为函数名。
当godot到达关键帧时,godot调用 AnimationPlayer 节点的“播放”功能和流播放。