玩法指南

本文阐述通用运动系统中在常见游戏玩法中的使用思路。

Cover.GMS
作

作者

作者

创建时间: 2025年4月20日更新时间: 2026年4月14日

目录

玩法指南

本文阐述通用运动系统中在常见游戏玩法中的使用思路。GMS包含几个简洁的API,可以帮助你快速地与你的玩法逻辑进行集成。

切换运动集

你可以在你的运动定义中设计几个不同的运动集,并在游戏运行时通过切换运动集来改变角色的控制逻辑和动画。

玩法指南.运动集设计

GMS已经内置设计了几个常见的运动集,能覆盖基础的角色控制需求。对于传统的动作/射击游戏,你可以:

  • Default:角色站立时采用。
  • ADS:角色站立时,按住瞄准输入时采用。
  • ADS_Crouched:角色蹲下时,按住瞄准输入时采用。
  • Guard:角色站立时,且装备了近战武器时,按住防御输入时采用。
  • Guard_Crouched:角色蹲下时,且装备了近战武器时,按住防御输入时采用。

每一个运动集采用不同的运动控制和动画,当你装备不同的武器时,你只需要替换不同的运动定义(具备相同运动集标签,但其运动集设置不一样),其上层逻辑无需更改,即可切换控制设置和动画设置。

用程序术语来讲就是:采用运动集标签配合不同的运动定义实现多态。

举一反三

当你开发新的运动模式时,可以设计新的运动集:

  • 骑马:可以设计MovementSet.Riding和MovementSet.Riding_Aim,分别对应于角色骑马时,以及角色边骑马边使用枪械/弓箭进行瞄准时的控制逻辑和动画。
  • 攀爬:可以设计MovementSet.Climb和MovementSet.Climb_Aim,分别对应于角色在攀爬,以及攀爬时进行瞄准时的控制逻辑和动画。

关联运动定义

GMS玩法集成.运动定义切换

在Demo中,角色仅用简单的按键输入来切换不同的运动定义,在真实的游戏开发中,你通常需要与其它系统进行配合使用。

以武器系统举例:

每一个武器的设置中,理应添加一个运动定义字段,将武器和武器对应的运动定义进行关联。
在武器被装备时,将运动系统组件当前的运动定义切换为武器所关联的运动定义。
对于更复杂的情况,比如角色区分男女,那么你也可以为武器添加类似Male_MovementDefinition或者Female_MovementDefinition,并在武器激活时,根据角色性别选择最合适的运动定义。

切换运动状态

运动状态,指的是走,跑,疾跑等状态。

GMS玩法集成.运动状态切换

除了手动设置不同的运动状态,在GMS中,你还可以根据Actor的实际移动速度去动态调整不同的运动状态(从而应用不同运动状态下的控制和动画设置。)
比如NPC,你通过调整外部调整NPC的速度,GMS会自动匹配与该速度最接近的控制/动画设置。

提示

运动状态使用GameplayTag来标识的原因是:某些角色在某些运动模式下,可能会有更多或者更少的运动状态,因为通过GameplayTags,你可以更容易地添加新的运动状态。

切换旋转模式

在游戏中,你还会切换旋转模式。如果一个角色进入瞄准状态,你还希望切换其旋转模式到ViewDirection。这是最常见的用法。

GMS玩法集成.切换旋转模式
比如战斗系统中:你锁定了一个目标,那么旋转模式应该被切换成ViewMode;如果你取消锁定一个目标,那么应该变成VelocityMode。
比如远程武器中:你按住右键时,你的旋转模式应该被设置为ViewMode。

角色朝向控制

GMS有自己的旋转系统,Character的旋转方式会根据旋转模式的不同,采用运动控制设置中的不同旋转设置。

在运动模式(LocomotionMode)为Grounded以及InAir的前提下,旋转模式为VelocityDirection时,Character会面朝Velocity的方向,旋转模式为ViewDirection时,Character会面朝ControlRotation的方向。

更多请查看运动控制设置。

AI朝向控制

当你想手动控制AI角色的朝向时,你应当将角色的旋转模式设置为ViewDirection,并通过设置ControlRotation来更新角色应该面朝的方向。

你也可以调用GMS_CharacterMovementSysytem组件上的以SetRotation开头的API去直接控制角色的旋转。

切换叠层模式

GMS玩法集成.切换叠层模式


响应事件

当你调用运动系统组件上的不同的函数,会触发对应的事件,允许你针对操作结果做出响应。

GMS玩法集成.组件事件

例如:当你从瞄准运动集(导致角色进入走路状态)切回默认运动集后,你希望角色回到小跑的状态。那么你可以进行如下操作:

GMS玩法集成.绑定组件事件

其他可用API

在GMS中,所有常用的API都以GMS为开头进行了分类,你可以在蓝图中的ContextAction列表中敲入GMS以查看所有可用的API。