虚幻引擎 - 通用运动系统

通用运动系统,简称GMS。是针对虚幻引擎的功能强大、先进的运动控制和动画系统。

Cover.GMS
罗传月武(YueWu)

作者

罗传月武(YueWu)

专注游戏开发和Web技术。

创建时间: 2025年4月18日更新时间: 2026年9月10日

目录

概述

Generic Movement System(GMS)是面向 Unreal Engine 的移动控制与 locomotion 框架,以代码插件配合配套项目的形式交付。代码提供运行时架构和契约层;配套项目提供动画、角色、Movement Set 和演示内容,让你能从一套可运行的运动系统中理解、验证并使用该系统。

文档与支持

为什么需要 Generic Movement System?

角色 locomotion 最难维护的部分,通常不是让一个角色跑起来,而是让移动组件、Gameplay 状态、动画蓝图、已编排动画数据和远端表现长期读同一份语义。GMS 用两层能力处理这个问题:组件化的 Movement Control System 负责移动/旋转控制,动画/locomotion 框架负责通过可复用设置、动画层和配套项目示例组织表现。

  • 如何非侵入式接入移动框架,而不改变角色父类?
  • 如何针对不同角色、姿态和装备,用数据驱动方式配置控制设置和动画方案,而不是维护多套角色、动画蓝图和图表?
  • 如何让运动请求、实际运动、朝向策略和动画表现在联机游戏中保持一致?
  • 如何给武器、携带物、受伤状态或穿越动作添加表现,而不分叉移动系统?
  • 如何根据 Gameplay 状态变化,由 Gameplay Tags 驱动动画表现或姿势变化,而不写一堆 If/Else?
  • 如何在多人项目中有效地同步角色动画表现所需要的 locomotion 上下文?

关键特性

不接管角色层级,也能接入移动框架

GMS 把角色移动控制封装在组件中,并把 locomotion 协议暴露给动画。配套项目是实际接入的起点;你可以先学习一条完整流程,再把框架适配到自己项目已有的角色、Input Action、骨架、动画库和玩法规则。

用 Movement Set 管理角色移动档案

你可以把角色风格、步态、朝向、后端配置、Overlay 和项目自定义数据组织进 Movement Definition 与 Movement Set。轻装探索者、重武器角色、受伤状态或特殊载具姿态可以在运行时切换不同档案,同时继续使用同一套组件和动画架构。

让步态、朝向和动画共享结果

GMS 区分期望移动状态和当前已达到的移动状态,让加速、减速、启动、停止和转向动画拥有稳定输入。旋转模式可跟随移动方向或视角方向;临时加速、减速和 AI catch-up 可以改变速度结果,而不污染基础步态数据。

用动画层扩展表现,而不是堆大图

主动画实例通过层级化工作流协调 locomotion、overlay、view、additive 和 skeletal control。Pose overlay、sequence overlay 和并行 overlay stack 让武器姿态、携带物、受伤表现或项目自定义层叠加到基础移动上,避免每种角色都维护一份巨型动画蓝图。

适配不同骨架和动画库,而不是锁死一套模板

Animation Graph Settings 把骨架相关的骨骼引用和动画层设置保存在数据中。这样同一套 locomotion 结构可以服务不同角色和动画包;最终表现仍应根据你的骨架、动画库和玩法需求验证。

从配套项目理解系统,而不是只看空架构

GMS 配套项目包含核心 MovementSystem 内容、GMS 演示关卡、人形角色示例、动物示例、Camera/UI 辅助内容、GAS 驱动的角色基础操作和状态管理、自定义动画层示例等。它展示了代码架构如何与已编排资产、Movement Set、动画层和真实演示场景协作。

为多人表现复制 locomotion 语义

插件会同步远端表现需要的移动定义、Movement Set、locomotion mode、overlay mode、Gameplay Tags 和 view rotation。Character Movement 路径还会复制请求的移动状态、旋转模式和 movement intent,让 simulated proxy 不必只靠速度反推动画含义。

双架构模式

GMS 是双后端架构的运动系统。它针对 CMC(Character Movement Component)和 Mover 建立了统一抽象,动画层面不关心也不需要知道 Pawn 使用的是 CMC 还是 Mover。

当前稳定支持的是基于 CMC(Character Movement Component)的路径;Mover 支持仍处于试验性阶段,可在配套项目的 _Mover 文件夹中体验。

崇尚可复用性

GMS 配套项目中的核心动画蓝图多以 Animation Blueprint Template 形式制作,不与任何骨架绑定;与骨骼控制、Montage 槽位分布相关的动画蓝图则与标准 UE5 骨架关联。

适用项目与人群

  • 第三人称动作、冒险、射击、RPG、近战或角色驱动项目
  • 需要 walk、jog、sprint、stance、武器姿态、受伤姿态或角色变体共享架构的团队
  • 使用 Character Movement Component,并希望用 Data Asset 与 Gameplay Tags 管理移动语义的项目
  • 多人游戏,需要动画和远端表现读取与 gameplay 一致的 locomotion 状态
  • 想保留自有角色、骨架、动画、输入和规则,同时复用移动框架的 Blueprint / C++ 团队
  • 理解运动系统需要框架代码和已编排内容示例共同落地的开发者
  • 已经具备 Blueprint、动画资产配置与 Gameplay Tags 基础的开发者

GMS 本身是一套代码层的 locomotion 框架,提供架构方向和代码契约;GMS 对应的配套项目则以一个完整的可玩运动系统作为默认实现参考。普通用户可以直接基于配套项目使用默认实现,经验丰富的用户可以在此基础上开发新的运动模式。

技术详情

代码模块(Code Modules):

  • GenericMovementSystem(Runtime)
  • GenericMovementEditor(UncookedOnly)

依赖插件(Plugin Dependencies):

  • Niagara
  • ModularGameplay
  • AnimationWarping
  • AnimationLocomotionLibrary
  • Mover
  • PoseSearch
  • Chooser

Blueprint 数量(Number of Blueprints): 随配套项目提供

C++ 类数量(Number of C++ Classes): 60+

网络复制(Network Replicated): 是

开发支持平台(Supported Development Platforms): Win64、Mac

支持的目标构建平台(Supported Target Build Platforms): Win64、Mac、Android、Linux

配套项目(Companion Project): 购买后通过购买验证提供。配套项目是 GMS 预期接入和参考流程的一部分。

重要说明/附加说明(Important/Additional Notes): 查看我的产品整体设计