运动定义&运动集

通用运动系统完全数据驱动,你主要通过在数据资产中配置运动控制参数以及动画资产,即可完成运动的设置。 本文着重GMS中最核心的两个概念,即运动定义和运动集。

Cover.GMS
作

作者

作者

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

目录

概述

通用运动系统完全数据驱动,你主要通过在数据资产中配置运动控制参数以及动画资产,即可完成运动的设置。

本文着重GMS中最核心的两个概念,即运动定义和运动集。

运动定义

运动定义(MovementDefinition)是一个类型为GMS_MovementDefinition的数据资产(DataAsset),是GMS的核心部分,大部分功能都集中在此配置。

核心概念.运动定义

你通过在编辑器下创建该类型的数据资产,并进行GMS的主要配置。

每一个运动定义可以包含多个运动集设置(MovementSetSetting),每一个运动集设置通过运动集标签来标识。

核心概念.运动定义内容
将运动定义理解为一套动画数据库,将GMS.MovmentSet.XXX理解为查询Key。

运动集设置

每一个运动集设置由游戏标签进行唯一标识,且其内容包含两部分,分别是:

  • 运动控制:配置角色如何移动,如何旋转。
  • 动画设置:选择角色的动画常规设置,以及不同的动画层实现方案,及其所需动画资产,配置。
核心概念.运动集设置

运动集设置案例

下图则是根据Lyra的Unarmed动画包配置好的徒手运动定义,该运动定义拥有4个运动集设置,分别代表了角色在站立(Default),瞄准(ADS),蹲伏(Crouch)以及蹲伏瞄准(ADS_Crouched)时的不同的控制以及动画。

下图则是站立和蹲伏时用到的运动集设置:

核心概念.运动集设置案例

运动定义规划

多套角色动画

当项目包含多套角色动画时,推荐以下规划方式:

单一运动定义管理整套动画

  • 用途:一个 GMS_MovementDefinition 数据资产配置某角色的一整套动画资源。
  • 示例:徒手、手枪、来复枪、剑、盾等不同武器/状态的动画。
  • 运动集拆分:通过 MovementSetSetting 对同一套动画的变体进行细分。

动画变体示例

一个运动定义可包含以下运动集设置:

  • 基础姿态:站立(Default)、蹲伏(Crouch)
  • 瞄准状态:瞄准(ADS)、蹲伏瞄准(ADS_Crouched)
  • 防御姿态:站立防御(Guard)、蹲伏防御(Guard_Crouched)

单套基础角色动画

当项目仅包含一套角色动画(如只有徒手动画)时,你也可以利用动画叠加系统,来为角色创造更多动画变体,从而节约所需的动画资产数量。

运行时切换

在游戏运行时,通过调用运动系统组件的 API 实现运动集切换。进一步了解玩法指南。

实际应用场景

  1. 武器切换:切换手枪时,激活 GMS.MovementSet.ADS 运动集。
  2. 姿态变化:按下防御键时,切换到 GMS.MovementSet.Guard。
  3. 环境适应:进入狭窄区域时,自动切换到 GMS.MovementSet.Crouch。

阅读更多

进一步了解运动控制设置。

进一步了解动画设置。