Godot学习-创建简单动画

文章目录


1、准备工作

这里主要使用一张Godot图片,作为动画资源。这里我直接上传:

2、创建项目

3、创建结点

  1. 创建一个Sprite2D节点
  2. 为Sprite2D创建一个子节点AnimationPlayer
  3. 保存场景为main.tscn

此时,选择Sprite2D节点,然后我们把资源文件:res://godot.png拖动到Texture纹理属性设置中。

4、创建动画

1、创建动画

如上图所示:我们在动画面板,点击动画,然后新建,我们命名为Test。

当我们创建好动画之后,就会注册在动画库资源的列表中。点击下拉,就有所有的动画资源列表。

当然也可以点击动画,然后管理动画:

2、添加轨道

这里的轨道我认为翻译的不好,应该是踪迹才对。指的就是动画运动的踪迹。我们为Sprite2D添加轨道:

如下图所示:添加轨道->属性轨道

此时会弹框,我们选择精灵节点:Sprite2D

我们主要是让精灵图移动变换,所以属性我们选择Node2D中的position属性。因为Sprite2D继承Node2D,所以选择父类的属性即可。因为它自身没有这个属性。

操作完上述步骤之后,如下图所示:

3、创建关键帧

3.1 第一个关键帧

所谓关键帧就是控制动画的起始或者结束的状态。

我们创建第一个关键帧,在起始的位置:

我们选择position这个属性,然后在0.0起始位置,鼠标右键,就会弹出 插入关键帧,我们插入即可。

插入之后,起始位置多了个菱形块。当然也可以在检查器面板找到position属性,右侧有个小钥匙,点击小钥匙也会插入关键帧。

此时我们的第一个关键帧创建好了,但是要让角色动起来,我们还需要创建第二个关键帧,因为此时角色还是在原地:

3.2 第二个关键帧

假设我们希望在点之间移动需要两秒钟。默认情况下,动画设置为仅持续一秒,因此请在动画面板时间轴标题右侧的控件中将动画长度更改为 2。

我们使用移动工具将我们的精灵移动到右下角,如下图所示:

此时我们再插入一个关键帧:

点击播放按钮,如下:

其实到这里最基本的动画制作是完成了,但是还有一些其他的概念和操作需要介绍。

5、加载后自动播放

为实现动画自动播放,点击动画编辑器中"编辑"按钮左边的"加载后自动播放"按钮即可。可在AnimationPlayer结点所在场景运行时或动画加入了另一个场景中时使用。

起始现在我们就可以运行该项目,选择当前场景,运行之后如下图:

动画呆在原地,此时我们点击加载后自动播放,然后保存。

然后再次运行项目,发现动画自动播放了。

6、动画循环

点击右侧的循环按钮,点击播放,动画就会一直循环播放。

7、轨道设置

下面的属性可以点击测试具体含义:

1、轨道更新模式

轨道更新模式 含义
连续 每帧连续更新,适用于平滑移动、旋转、缩放。例如:物体匀速移动到目标位置
离散 仅在关键帧位置更新 ,适用于帧动画、状态切换 。例如精灵逐帧切换(如角色攻击动作)
捕获 记录初始值后与第一个关键帧混合,适用于从当前位置/状态开始动画。例如角色无论在什么位置都能平滑移动到目标

2、轨迹插值

  1. 临近:设置为最接近的关键帧的值
  2. 线性:使用线性函数计算两个关键帧之间的值
  3. 三次方:使用三次函数计算两个关键帧之间的值

3、其他属性的关键帧

Godot的动画系统不仅限于位置、旋转和缩放。你可以对任何属性进行动画化。

如果你在动画面板可见时选择你的精灵,Godot 会在检查器中为精灵的每个属性显示一个小的关键帧按钮,点击这个按钮,Godot就会自动为当前动画添加一个轨道和关键帧。也就是有小钥匙的属性都可以作为关键帧

4、编辑关键帧

你可以在动画时间轴上点击关键帧,以在属性面板 中显示和编辑其值。

点击关键帧,右侧属性面板就有属性编辑。在这里编辑关键帧的缓和值。这将告诉 Godot 在动画属性到达该关键帧时如何进行插值。

5、使用 RESET 轨道

下面点击编辑,就会显示应用重置:这样就可以保证在保存场景并重新在编辑器中打开时,会恢复默认姿势。

6、洋葱皮

Godot 的动画编辑器允许你在创建动画时使用洋葱蒙皮。要启用此功能,请单击动画编辑器右上角的洋葱图标。此时,在动画对象先前位置将有透明红色副本显示出来。

与洋葱皮按钮相邻的三个圆点按钮可以打开一个下拉菜单,你可以用它来调整洋葱皮的工作方式,包括在未来的帧中使用洋葱皮的能力。

相关推荐
明长歌14 分钟前
【javascript】new.target 学习笔记
javascript·笔记·学习
墨染枫5 小时前
pytorch学习笔记-自定义卷积
pytorch·笔记·学习
今天也好累7 小时前
C 语言基础第16天:指针补充
java·c语言·数据结构·笔记·学习·算法
朱小弟cs68 小时前
Orange的运维学习日记--16.Linux时间管理
linux·运维·学习
两颗泡腾片9 小时前
C++提高编程学习--模板
c++·学习
shangyingying_110 小时前
关于神经网络CNN的搭建过程以及图像卷积的实现过程学习
神经网络·学习·cnn
沧海归城11 小时前
Unity_XR控制手部动画
unity·游戏引擎·xr
ayas1231912 小时前
CSS学习
前端·css·学习
Chase_______14 小时前
redis快速入门及使用
java·数据库·redis·学习·spring·缓存
阿群今天学习了吗14 小时前
RNN、LSTM、Transformer推荐博文
人工智能·笔记·python·学习·算法