关于本手册
本手册讲解 ACTION GAME MAKER 中处理鼠标与模拟摇杆的功能。
ACTION GAME MAKER 中鼠标・摇杆的概要
按键的按下可以用「输入相关的条件(InputCondition)」来处理,但像鼠标坐标或摇杆倾斜度这种「带有方向和量的输入」,仅靠它是处理不了的。为此准备的就是以下功能。
| 功能 | 种类 | 能做什么 |
|---|---|---|
| 鼠标操作(MouseInput) | 条件 | 判定鼠标按键的状态、光标位于何处、光标是否移动了 |
| 将鼠标信息赋值给变量(GetMouseInput) | 动作 | 把光标的坐标・移动量・从自身看去的角度和距离存入变量 |
| 将摇杆输入赋值给变量(GetStickInput) | 动作 | 把摇杆的角度・倾斜量・X/Y 分量存入变量 |
| 鼠标/摇杆角度联动设置(ChangeAngleSettings) | 设置节点 | 让节点的角度配合光标或摇杆的方向进行旋转 |
除此之外,既有的功能中也有使用鼠标・摇杆的选项(参见后述的「在其他功能中使用」)。
另外,鼠标的坐标会因「从哪个图层来看」而变化。处理世界坐标时,以目标对象自身为基准来获取才是正确的做法。这 4 项功能都是以自身(执行的对象)为基准进行计算的。
「鼠标操作(MouseInput)」
这是与鼠标相关的条件,位于「添加其他条件」的「鼠标」分类中。
- 判定内容:从「按键的状态」「光标位于自身之上」「光标位于指定对象之上」「光标位于指定范围内」「光标移动了」中选择。
- 鼠标按键:选择「按键的状态」时,从「左键」「右键」「中键」「扩展键1」「扩展键2」中选择。滚轮无法处理。
- 输入的条件:从「按住」「刚按下瞬间」「松开」「刚松开瞬间」中选择。
- 输入接收帧数:视为「瞬间」的帧数。
- 判定范围:用什么来判定光标是否落在上面。从「墙壁判定」「受击判定」「指定半径」中选择。被禁用的判定不计入。
- 判定半径:选择「指定半径」时的半径(px)。以距对象原点的距离来判断。
- 目标对象的路径:选择「光标位于指定对象之上」时的目标。
- 判定的范围 / 范围的基准:选择「光标位于指定范围内」时的范围及其基准(「画面坐标」或「世界坐标」)。
- 视为移动的移动量:选择「光标移动了」时,在画面上移动多少 px 才算移动了。
鼠标按键请用这个条件来判定。经由输入相关的条件(输入映射)的鼠标按键,在第 2 名及之后的玩家身上不会有反应。
「将鼠标信息赋值给变量(GetMouseInput)」
这是把光标信息存入变量的动作,位于「添加其他动作」的「开关/变量」分类中。由于每帧都会赋值,使用数值的一方总能看到最新的光标信息。
- 赋值目标:写入数值的对象。从「自己」「指定的对象」「指定锁定对象」「父对象」「最后接触的对象」「共享数据板的对象」「项目变量」中选择。整个动作只选择 1 个,所有数值都会写入同一个对象。
- 赋值世界 X 坐标 / 赋值世界 Y 坐标:游戏世界中的光标位置。由于是以自身为基准测量的,会考虑所属的图层。
- 赋值画面 X 坐标 / 赋值画面 Y 坐标:画面上的光标位置(px)。
- 赋值横向移动量 / 赋值纵向移动量:光标自上一帧起在画面上移动的量(px)。
- 赋值角度:从自身到光标的角度。0 度为右,90 度为下。光标与自身重叠期间角度无法确定,因此会保留之前的值。
- 赋值距离:从自身到光标的距离(px)。
- 各自的赋值目标:为上面勾选的每个项目,选择要写入的变量名。
「将摇杆输入赋值给变量(GetStickInput)」
这是把模拟摇杆的输入存入变量的动作,位于「添加其他动作」的「开关/变量」分类中。它会从分配给上下左右的输入动作组装出输入向量,应用圆形死区后再赋值。与单纯判断有没有按下不同,可以使用精确的角度以及「倾倒了多少」。
- 上方向的输入 / 下方向的输入 / 左方向的输入 / 右方向的输入:分别作为各方向处理的输入动作。可以从添加到项目输入映射中的动作里选择。
- 死区:以圆形应用的死区。设为负值时,会使用 4 个输入动作上所设置死区的平均值。
- 赋值角度 / 角度的赋值目标:输入的角度(度)。0 度为右,90 度为下。没有输入期间角度无法确定,因此会保留之前的值。
- 赋值倾斜量 / 倾斜量的赋值目标:以 0.0 到 1.0 接收倾倒的程度。可以实现用倾斜度区分走路和奔跑之类的用法。
- 赋值 X / 赋值 Y 及各自的赋值目标:以 -1.0 到 1.0 接收输入的 X 分量和 Y 分量。X 为右侧为正,Y 为下方为正。
「鼠标/摇杆角度联动设置(ChangeAngleSettings)」
这是让节点的角度配合光标或摇杆方向旋转的设置节点,作为对象的子节点放置使用。用于把炮台或手持武器指向瞄准的方向。
- 指定目标节点:要旋转的节点。
- 使用左摇杆 / 使用右摇杆 / 使用鼠标:角度的输入来源。
- 使用移动方向:以对象的移动方向作为输入。在尚未移动期间会使用即将移动的方向,因此生成后立刻就能反映角度。
- 使用视线方向:以视线的方向作为输入。
- 基础角度:角度的调整。指定素材的正面相对于右方(0 度)偏离了多少。如果素材是朝上绘制的,就填入 -90。
- 添加节点旋转:打开后会叠加到节点原本的角度上。
- 向上最大角度 / 向下最大角度:可旋转的范围。两者都设为 180 则没有限制。
在其他功能中使用
| 功能 | 设置 | 内容 |
|---|---|---|
| 移动对象(MoveObject) | 移动类型 = 鼠标光标 | 朝光标的位置移动 |
| 设置模板移动(MovementTemplates) | 模板移动类型 = 追随鼠标光标 | 持续追赶光标。关闭「贴合到光标位置」后,会以移动速度追赶 |
| 更改视线方向(ChangeFaceDirection) | 朝向鼠标坐标 | 把视线的方向指向光标 |
| 子弹的飞行方式(子弹数据库) | 朝瞄准(摇杆 / 鼠标)方向飞行 | 选择瞄准的输入来源(左摇杆 / 右摇杆 / 鼠标)。也可以指定「未倾倒摇杆时使用鼠标」 |
| 放下・投掷举起的对象(ReleaseCarriedObject) | 方向的指定方式 = 瞄准的方向 | 同样可以选择瞄准的输入来源 |
实用示例
用鼠标瞄准并射击
- 在玩家的子级放置「鼠标/摇杆角度联动设置」,把目标节点指定为枪的节点,并打开「使用鼠标」。素材朝右的话,基础角度保持 0 即可。
- 把子弹数据库的飞行方式设为「朝瞄准(摇杆 / 鼠标)方向飞行」,瞄准的输入来源设为「鼠标」。
- 用「鼠标操作」条件查看左键的「刚按下瞬间」,转换到发射动作。
同时支持摇杆和鼠标
- 把子弹瞄准的输入来源设为「右摇杆」,并打开「未倾倒摇杆时使用鼠标」。
- 倾倒摇杆时朝那个方向飞,未倾倒时则朝光标的方向飞。这样用手柄或鼠标都能玩。
点击会有反应的对象
- 用「鼠标操作」条件把判定内容设为「光标位于自身之上」,查看光标是否落在上面。判定范围用「受击判定」或「指定半径」比较好处理。
- 在同一节点上再加一个「鼠标操作」条件(按键的状态・左键・刚按下瞬间),在两者都满足时做出反应。
追赶光标的敌人
- 在设置模板移动中选择「追随鼠标光标」,关闭「贴合到光标位置」,让它以移动速度追赶。
- 如果想让它紧贴光标(把光标本身做成对象),则打开该选项。
用倾斜度区分走路和奔跑
- 用「将摇杆输入赋值给变量」把倾斜量存入变量。
- 用变量的条件查看「倾斜量大于等于 0.7」,转换到奔跑的动作。
注意事项
- 鼠标按键的判定请使用「鼠标操作」条件。把鼠标按键注册到输入映射中、用输入相关的条件来查看的话,在第 2 名及之后的玩家身上不会有反应。
- 世界坐标会随观察位置(图层)而变化。把存入某个变量的世界坐标,让另一图层的对象直接使用是对不上的。在每个需要坐标的对象上用「将鼠标信息赋值给变量」重新获取才最可靠。
- 如果紧贴光标的对象是摄像机的追随目标,摄像机和对象会互相推挤而发散,画面可能会飞出去。请同时使用摄像机的「拖拽边距」和「位置平滑」(新建项目中默认启用)。「限制」则会适得其反。
- 角度在没有输入时无法确定,因此在此期间会保留之前的值(不会回到 0 度)。想把「没有输入」作为条件时,请查看倾斜量或距离。
- 摇杆的死区由项目设置中的各个输入动作决定。「将摇杆输入赋值给变量」可以把死区指定为圆形,因此斜向输入手感不对时请在这里调整。
- 滚轮的按下与释放会在同一帧到来,因此「鼠标操作」条件无法处理。