教程:俯视视角游戏的设置

教程:俯视视角游戏的设置

概述

本教程将介绍如何设置俯视视角游戏(Top-View Game)

本教程默认读者已经完成了常规教程课程,并掌握了基本操作。

在常规教程课程中,我们是以横向视角游戏(Side-View Game)为例进行说明的,但在 ACTION GAME MAKER 中同样也可以制作俯视视角游戏

不过,由于俯视视角与横向视角在设置上存在一些差异,本教程将重点说明这些不同之处。


俯视视角与横向视角的区别

主要有两点不同:

  1. 不存在重力。
  2. 角色动画不仅仅是左右两个方向,而是上下左右四个方向,或者包含斜方向在内的八个方向

第1点可以通过将场景的重力设为0来解决,第2点则可以在创建角色时手动为各个方向设置动画

接下来我们就开始进行设置。


创建项目

  1. 打开启动器中的 Sample Project(示例项目) 标签。
  2. 载入 “Topview project base”

:memo: 什么是 Topview project base?
这是一个为俯视视角游戏准备的示例模板项目,已经进行了基础设置。

主要包含以下两项修改:

  • 示例 game_scene重力属性被设置为「0」
  • 预设了类似 RPG Maker 的按钮输入方式

重力设置

由于预设场景 (game_scene.tscn) 的重力已经设置为 0,因此重力问题已经解决。

如果你创建新的场景,则需要手动进行设置。

此时请在 GameScene 节点的属性中,将 Gravity(重力)值设置为 0


准备角色用的游戏对象

创建新的游戏对象时,选择 “Topview Character Base”

:memo: 什么是 Topview Character Base?
这是一个为俯视视角角色准备的基础游戏对象,并已完成简单的初始化设置。

2D Sprite Character Base 相比,区别仅在于:

  • 动画集中包含一个示例动画集
  • GameObject 的 Motion Mode 属性被设置为 Floating

设置四方向动画

本节仅介绍设置方法,并假设角色具有以下三种动画:

  • 向上
  • 向下
  • 左右

教程中使用过的 “动画批量导入(BulkSetAnimation)” 无法使用,因为它是专门针对左右两个方向的设置

因此,在俯视视角游戏中,必须为每个方向手动分配动画


步骤

  1. 选择 GameObject 节点,然后在属性中展开 Animation Set(动画集)

  1. 默认存在一个 Move_Template 动画,可以忽略它。
    点击 “+ 添加动画集”

  2. 新动画会被创建。
    设置一个任意名称,然后展开 “> Animation & Direction(动画与方向)”

  1. 选择 “+ 添加方向”

  2. 此时会显示动画指定、自动Y轴翻转属性以及方向控制面板。


  1. 首先设置向下方向的动画

设置为:

  • Auto Flip Y = Off
  • 显示方向 = :down_left_arrow::down_right_arrow:

:memo: 关于 Auto Flip Y(autoflip_y)

这个属性仅在左右方向使用相同动画时使用

启用后,向右的动画会根据显示方向自动进行翻转

注意:如果原始动画是向左的动画,则显示会变成反向。


  1. 接下来设置向上的动画

点击 “+ 添加方向”,然后设置:

  • Auto Flip Y = Off
  • 显示方向 = :up_left_arrow::up_right_arrow:


  1. 最后设置左右方向的动画

点击 “+ 添加方向”,然后设置:

  • Auto Flip Y = On
  • 显示方向 = ← →

至此,四方向动画的设置完成


:memo: 小技巧

如果希望左右使用不同动画,请关闭 Auto Flip Y,并分别为 ← 和 → 设置不同的动画。

如果需要设置为 8方向移动,请不要在上下方向中设置斜向输入,而是继续添加新的方向并分别进行设置


以上就是俯视视角游戏的基本设置

接下来将介绍如何使用模板对象来设置360度射击游戏(360° Shooter)

360度射击游戏的设置

这里将介绍一种 360度射击游戏 的设置方式,其风格如下:

  • 上半身朝向鼠标或摇杆的方向。
  • 下半身朝向按键输入的移动方向。

本教程不会从零开始进行设置,而是使用模板对象 “Topview 360 Shooter Player” 进行说明。


导入

  1. 创建对象(Create Object) 中,从角色模板里选择 “Topview 360 Shooter Player”,并勾选 “将其作为由输入设备控制的对象” 后创建。

  1. 选择 MoveAndJumpSettings,根据你的项目设置对应的按键。

  1. 进行测试运行
    上半身(粉色箭头) 会朝向 鼠标或左摇杆的方向,而 下半身(白色箭头) 会朝向 移动按键输入的方向


说明:对象结构设计

在这个对象中,主体游戏对象 “360Shooter” 表示下半身,而上半身则是该游戏对象的子节点 “360shooter_head”


下半身的移动

下半身的设置比较简单。

只需要配置 8方向移动动画,并使用 FaceDirectionSettings(朝向设置),使角色朝向移动按键输入的方向

你可以准备自己的精灵图,并替换为已经设置好的 8方向移动动画,即可更换为自己想要的角色。


上半身的移动

上半身使用 ChangeAngleSettings,该功能可以根据 鼠标或手柄摇杆的方向 来旋转节点。

通过让 “360shooter_head” 节点旋转,实现上半身朝向目标方向。

由于 360shooter_head 节点会旋转,因此其子节点 head 精灵target 节点 也会一起旋转。


向鼠标或摇杆方向发射子弹的设置

如前所述,这个游戏对象的主体是下半身,因此无法直接使用子弹设置中的 “向显示方向发射” 来控制子弹方向。

为了解决这个问题,需要使用 “target” 对象

target 对象 只是一个被赋予 “target” 组 的游戏对象。
它是 “360shooter_head” 的子节点,并被放置在 上半身正前方稍远的位置

由于它是子节点,因此会与 360shooter_head 一起旋转,无论朝向哪个方向,它都会始终位于 上半身前方稍远的位置

因此,只要将子弹设置为 朝向 “target” 组发射,子弹就会朝 鼠标或摇杆的方向 发射。

同样地,如果将 连接点(Connector) 作为 360shooter_head 的子节点 放置,也可以实现从 角色手部或枪口位置 发射子弹。

1 个赞