跳转到正文

角色运动系统

本文阐述GMS中的CharacterMovementSystem(角色运动系统)组件的基本配置方式。

作

作者

作者

创建时间: 2025年11月02日更新时间: 2026年10月15日

目录

概述

本文阐述GMS中的CharacterMovementSystem(角色运动系统)组件的基本配置方式。

运动系统组件配置

该系统与 UE 的 Character 配套使用,但运动后端必须使用 GMS 提供的 GMS_CharacterMovementComponent(C++ 类:UGMS_CharacterMovementComponent)。默认的 CharacterMovementComponent 不会应用 GMS 的后端运动设置。

配置步骤:

  1. 将角色的 Movement Component 类设置为 GMS_CharacterMovementComponent。
  2. 为角色添加 GMS_CharacterMovementSystemComponent(C++ 类:UGMS_CharacterMovementSystemComponent)。

其中,组件的关键配置如下:

  • 指定角色采用的运动定义。
  • 指定采用当前运动定义中的哪个运动集设置。
  • 指定角色的默认旋转模式。
  • 指定角色的默认拥有的Tags用于驱动动画选择。

此外,当前 Control Setting 的 BackendSettings 必须包含 UGMS_CharacterMovementBackendSetting,并为使用中的 Movement States 配置后端参数;详见运动控制设置。

其余配置均有编辑器内提示。

运动模式和游戏标记

在GMS中,使用GameplayTag来表示不同的运动模式。

在这里将 CharacterMovementComponent(CMC)的标准运动模式映射到 Gameplay Tag,并用 CustomMovementModeToTagMapping 将自定义模式编号映射到 Tag。这些映射把后端当前模式同步为 GMS 的语义状态,供运动和动画逻辑识别。

Note

模式映射只同步后端当前模式对应的 GMS 语义状态,不会为后端实现新的运动行为。Grounded 和 InAir 使用 GMS 内置处理;其他自定义模式需要实现并注册相应的后端处理器,否则不会执行该模式对应的运动逻辑。

如需添加自定义运动模式,请参考拓展指南。

角色类设置

以下旋转设置适用于已将运动组件替换为 GMS_CharacterMovementComponent 的角色。GMS使用自己的旋转系统,因此按图关闭角色上的这些设置。

角色移动组件设置

在 GMS_CharacterMovementComponent 上关闭如下设置,并将 Rotation Rate 设置为 0。

建议开启如下设置来确保Stop动画更容易呈现。

AI设置

GMS 基础运动动画依赖加速度来驱动 Start/Stop 表现。确认 AI 使用的角色也配置了 GMS_CharacterMovementComponent;后端加速度应在当前 Control Setting 的 BackendSettings 中配置。AI 的期望速度分类应与 Movement States 及 SpeedToMovementStateCurve 保持一致。