教程:图形课程#2 2D 骨骼角色

本课程将通过修改示例中包含的玩家对象来进行。
您可以学习使用2D骨骼制作的角色的基本操作。

本课程同样使用第一个教程中使用的教程项目。
请先打开项目并做好准备工作。

步骤1:尝试替换皮肤

  1. 下载附件图片。
  2. 将下载的 P_01_stickman_skin.png 拖放到文件系统的任意位置以加载。
  3. 打开 Player 场景 (Object_Sampleplayer.tscn)。
  4. 在 BoneAnimationRoot > Polygon 中,选择从 Mantle_down 到 Hand_R 的所有节点。
  5. 将文件系统中的 P_01_stickman_skin.png 拖放到检查器窗口的 Texture 属性中。
  6. 玩家形象已变为黑色火柴人。
  7. 按 F5 键或点击 :play_button: 进行测试运行,您应该能看到火柴人在移动。
  8. 若要恢复原状,请在文件系统中找到 templates > objects > characters > P_01 > P_01_mat_000.png,并重复步骤 4 至 5。

说明

各节点的含义
BoneAnimationRoot2D:这是 ACTION GAME MAKER 各项功能(如滤镜、残影等)用于识别 2D 骨骼的节点。Skeleton2D 和 Polygon2D 必须作为此节点的子节点放置。

Skeleton2D:表示 2D 骨骼本身的 Godot 节点。根据此骨骼的位置信息或角度等变形,下方 Polygon2D 中设置的纹理也会随之变形。

Polygon2D:(Mantle_down ~ Hand_R):用于设置 2D 骨骼多边形的 Godot 节点。

Polygon2D 与纹理
每个 Polygon2D 都使用 UV 功能从同一张图像中截取部分进行使用。让我们实际查看一下:

  1. 选择 ArmL。
  2. 点击顶部工具栏的 UV 按钮。
  3. UV 编辑器将打开。由顶点围成的部分即为该 Polygon2D (ArmL) 截取并使用的区域。
  4. 由于已设置的 UV 位置和形状数据不会改变,因此只需创建尺寸和位置相同的皮肤图像,即可轻松完成替换。

自制皮肤指南
默认皮肤图像各部件的对应关系如下:
P_01_mat_000.png


P_02_mat_000.png

制作自制皮肤时,请参考此布局,通过修改原始数据来创建您的皮肤。

步骤 2:尝试添加动画。

  1. 请在场景窗口中选择 AnimationPlayer。底部的面板将切换为动画面板。
  2. 尝试点击动画面板左上角的 :play_button: 按钮。角色应该会轻微移动。这是正在播放名为 001_Idle 的动画。
  3. 点击显示为 001_Idle 的部分。已注册了 47 种动画,您可以尝试播放任意一种。您应该能注意到角色随着白色和黄色骨骼的移动而移动。这些骨骼的移动是由底部的轨道控制的。
  4. 让我们尝试创建一个新的动画。点击面板顶部的 Animation 并选择 New。
  5. 会出现一个用于创建新动画的窗口,请为其命名并点击 OK。
  6. 动画已添加,但轨道是空的,因此请添加轨道。选择 BoneAnimationRoot2D>Skeleton 下的所有 Bone2D 节点,从 B_Hip 到 B_Chain。然后点击顶部工具栏中的:key: 图标(插入关键帧)按钮。
  7. 系统会询问是否创建 42 个新轨道,请直接选择创建。现在新动画已添加了轨道。这 42 个轨道分别控制 21 个骨骼节点的位置和旋转。
  8. 开始调整轨道。蓝色的竖线表示当前的播放位置。它应该在 0 秒处,因此请将其拖动到中间位置,大约 0.6 秒处。
  9. 让我们添加一个简单的动作。在场景窗口中选择 B_Arm_R。此节点表示右臂的上臂骨骼。
  10. 在检查器窗口中,尝试更改 Node2D>Transform 的 Rotation。右臂的角度会发生变化,并应该开始旋转。
  11. 确定好所需的角度后,再次点击顶部的:key: 图标。乍一看似乎没有发生任何变化,但实际上当前旋转值已保存在 0.6 秒处。
  12. 尝试按下播放按钮。角色的手臂应该从初始位置缓慢移动到您插入关键帧的角度。初始位置与指定位置之间的动作会自动进行插值。就像摆弄人偶一样,摆出姿势并插入关键帧,即可制作动画……就是这样。

图形课程的后续内容请参见此处!

说明

动画长度与循环
动画长度可以通过右上角的:clock: 图标进行修改。
其旁边的按钮是循环功能。第一次点击启用循环播放,再次点击切换为往返播放,第三次点击则取消循环。
image

在可视化脚本中使用已添加的动画
要在可视化脚本中使用,必须将其注册到 GameObject 节点的动画集中。

  1. 在场景窗口中选择 Player。
  2. 点击检查器中的批量注册动画按钮。
  3. 现在动画已注册到动画集,并可在可视化脚本中使用。> 展开动画集可以查看已注册了哪些动画。

2D 骨骼动画的扩展
本教程仅说明了最基础的操作。Godot 的 AnimationPlayer 功能非常强大,拥有 IK 功能等许多处理 2D 骨骼动画时非常实用的功能。如需更详细的了解,请查阅以下 Godot 官方文档: