教程:图形课程#3 2D精灵角色

本课程旨在创建全新的2D精灵角色。
您可以学习2D精灵动画的基本操作。

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

步骤1:创建新的2D精灵角色游戏对象

  1. 首先,请准备一张2D精灵角色的图片。如果没有合适的图片,请下载并使用以下示例图片。

  2. 将图片拖放到文件系统窗口中进行加载。

  3. 创建一个新的游戏对象场景。在中央编辑器窗口的标签页上点击“+”以打开新标签页,然后在场景窗口中选择“Game Object”。

  4. 设置窗口将打开,请按如下方式进行配置:

    • 对象名称:请自行设定。
    • 模板:characters
    • 模板类型:2DSprite Character Base
    • 组:Player
    • 由输入设备操作的对象 (Objects to be manipulated by input devices.):开启
  5. 完成基本设置后,将生成一个游戏对象场景。首先请保存它。可以通过右键点击未保存的标签页,或使用快捷键 Ctrl+S 将其保存到任意位置。

  6. 加载角色图片。点击场景窗口中的 Sprite2D。

  7. 在检查器窗口的 Texture 属性中,从文件系统拖放步骤2中加载的角色图片。

  8. 角色已加载,但应该会直接显示整个精灵表。现在我们需要将其分割。

  9. 在检查器窗口中设置 Animation > Hframes 和 Vframes。

    • Hframes:水平方向排列的帧数。对于示例图片,请设置为 5。
    • Vframes:垂直方向排列的帧数。对于示例图片,请设置为 4。
  10. 尝试逐个移动下方的 Frame 值。如果分割正常,动画应该从 0 开始逐帧播放。需要注意的是,在 Godot 中,原则上第一个数据的索引是从 0 开始的。因此,Frame7 实际上是第 8 帧,会偏移一位。请注意这一点。

  11. 接下来,调整过大的碰撞判定区域。在场景窗口中选择 CollisionShape2D。应该会选中一个青色的矩形。这是用于判定与地面或敌人碰撞的墙壁判定区域。

  12. 调整墙壁判定区域以匹配角色大小。选择四角的控制点并移动以调整尺寸。

  13. 接下来同样调整 HitCollision。这是用于判定攻击碰撞的受击判定区域,建议将其设置为比墙壁判定区域稍大一些。

  14. 最后是 AttackCollision。它表示攻击范围,但其具体用法会根据制作的动画类型而有很大差异,因此首先将其禁用。选择 AttackCollision,并在检查器中将 Disabled 设为开启。


    AttackCollision 已变为灰色。如果仍然觉得它碍眼,可以点击 AttackCollision 右侧的 :eye: 图标将其隐藏。

  15. 完成以上步骤后,请右键点击标签页或使用 Ctrl+S 进行保存。

提示:隐藏与禁用

虽然可以通过场景窗口中的 :eye: 图标切换显示与隐藏,但这仅控制编辑器中的可见性。仅隐藏对象并不会停止其运行,它实际上仍在后台运作。若要停止其运行,请在检查器中禁用该对象,或直接删除该节点。

步骤2:制作精灵动画。

  1. 请在场景窗口中选择AnimationPlayer。中央下方的面板将变为Animation。
  2. 请在面板上方的Animation中创建新的动画。
  3. 为其输入任意名称。本示例中我们将制作行走动画,因此命名为Walk。
  4. 将创建一个空动画。默认情况下动画时长为1秒,但行走动画1秒过长,因此需要缩短。请将面板右上角:clock:标记旁的秒数设置为0.4秒。
    image
  5. 在场景窗口中选择Sprite2D,并关注检查器窗口中的Animation>Frames。
  6. 请查找行走动画的第1帧。在示例图片中,第2列,第1列有5帧,因此从第6帧开始。请在Frames中输入5。(由于从0开始计数,第6帧对应索引5。)
  7. 请点击Frames右侧的:key:+按钮。
    image
  8. 将弹出“是否插入新关键帧?”的对话框,请直接点击“创建”按钮。
  9. 此时Walk动画中应已插入帧。接下来插入第2帧。请在面板上方的秒数指定处输入0.1。您应该能看到蓝色线条稍微向右移动。这表示当前的播放位置,也是插入关键帧的位置。
  10. 将Frame设置为6,然后按下关键帧插入按钮。
    image
  11. 重复上述操作,在0.2秒处插入Frames 7,在0.3秒处插入Frames 8,在0.4秒处插入Frames 9。这样应该已经插入了5个帧。
  12. 由于帧过于密集可能难以辨认,请进行放大。在Animation面板上按住Ctrl键并滚动鼠标滚轮,或调整右下角的:magnifying_glass_tilted_left:滑块,使其更易于查看。
  13. 由于是行走动画,请启用循环。将秒数旁边的循环标记双击以启用折返循环播放。
    image
  14. 请点击:play_button:按钮查看效果。播放是否流畅?如果未正常播放,请检查以下内容:
    • 选择每一帧,确认其秒数和Value是否正确。
    • 确认步骤13中的折返循环播放是否已启用。
  15. 最后,请将游戏对象注册以便在可视化脚本中使用。请选择游戏对象节点sample_2DSprite。
  16. 由于这是新创建的对象,其加载源AnimationPlayer尚未指定。请点击AnimationPlayer选择按钮,然后选择AnimationPlayer节点。
  17. 选择完成后,请点击动画批量加载按钮。
  18. 请展开Animation Sets。您应该能看到刚才创建的Walk动画已注册。如果是侧视视角游戏的行走动画,至此即可完成。

说明:使用原创精灵时的注意事项

动画集详细设置
ACTION GAME MAKER的动画默认设计为根据对象的显示方向自动翻转,对于普通的侧视视角动画,直接使用即可。
但是,如果您希望在前冲步和后退步播放不同的动画,或者在俯视视角游戏中为4方向(或8方向)分配移动动画,则需要进行手动详细设置。各设置项内容如下:
Animation: 指定要播放的动画。
自动Y轴翻转(Auto Y Flip): 设置自动翻转。若进行手动设置,请将其关闭。
显示方向设置(Eight Direction): 当角色朝向所选方向时,指定对应的动画。
添加方向(+Add Direction Variant): 默认情况下每个类别对应一个动画,通过此按钮可以添加多个动画。
添加动画集(+Add Animation Category): 用于手动添加动画类别,通常不需要使用。
俯视视角设置示例(4方向)

角色朝向
前文提到角色会根据显示方向进行翻转,但角色的朝向默认设置为“面向右侧”。
像示例图片中那样绘制为右向的角色没有问题,但对于左向绘制的角色,需要手动进行以下设置:
请启用BaseSettigs中的Enable Auto HFlip复选框。

AnimationPlayer与AnimatedSprite2D
Godot中有一个专门用于精灵动画的节点AnimatedSprite2D,但在ACTION GAME MAKER中无法直接播放。不过,通过以下方法可以间接使用。在需要切换大量精灵图时,推荐采用此方法。

结语

图形课程到此结束。
本教程仅说明了基本使用方法,但结合Godot的AnimationPlayer功能,可以实现非常丰富的表现效果。
希望大家多多尝试,如果创造出优秀的表现,欢迎在社交媒体或公会中分享。

欲学习其他课程,请点击此处!
2. 脚本课程
适合希望使用默认角色实现各种动作和系统的人。

3. 表现强化课程
适合希望添加具有Godot特色的酷炫表现效果的人。