Movement Definition/Set

This doc will focus on introducing you the most importance concepts of Generic Movement System, The MovementDefinition and MovementSet.

Cover.GMS
A

Author

Author

Created: Apr 20, 2025Updated: Apr 14, 2026

Table of contents

Overview

GMS is completely data-driven, that means you can setup your whole locomotion by just configuring within Data Assets.
And, this doc will focus on introducing you the most importance concepts, The MovementDefinition and MovementSet.

Movement definition

A Movement Definition is a data asset of type GMS_MovementDefinition, which is a core part of GMS where most functionalities are concentrated.

核心概念.运动定义

You create this type of data asset in the editor to perform the main GMS configuration.

Each Movement Definition can contain multipleMovement Set Setting, identified by MovementSetTag.

核心概念.运动定义内容
Think of the Movement Definition as an animation database, with GMS.MovementSet.XXX serving as query keys.

Movement Set Setting

Each MovementSetSetting is uniquely identified by a GameplayTag and consists of two parts:

  1. Movement Control: Configures how the character moves and rotates.
  2. Animation Settings: Configures animation general settings, different animation layer implementations, required animation assets, and related settings.
核心概念.运动集设置

Movement Set Setting Example

The diagram below shows an unarmed Movement Definition configured using Lyra's Unarmed animation pack, containing 4 Movement Set Settings:

  • Default: Standing state
  • ADS: Aiming state
  • Crouch: Crouching state
  • ADS_Crouched: Crouched aiming state

The diagrams below show specific Movement Set Settings for standing and crouching:

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

Movement Definition Planning

Multiple Character Animations

When your project contains multiple sets of character animations, then the following setup is recommended:

Single Movement Definition per Character Set:

  • Purpose: One GMS_MovementDefinition DataAsset configures an entire set of animations for a specific character.
  • Examples: Unarmed, pistol, rifle, sword, shield, and other weapon/state-specific animations.
  • Set Variants: Use MovementSetSetting to subdivide variations within the same movement definition.

Animation Variants Examples:

A single movement definition can include the following movement set settings:

  • Base Variants: Standing (Default), Crouching (Crouch)
  • Aiming Variants: Aiming (ADS), Crouched Aiming (ADS_Crouched)
  • Defensive Variants: Standing Guard (Guard), Crouched Guard (Guard_Crouched)

Limited Character Animations

When your project only contains one set of character animations (such as Unarmed animations), you can also use the animation overlay system to create more animation variations for the character, thereby saving the required number of animation assets.

Runtime Switching

Switch movement sets at runtime using the movement system component APIs, more on: Gameplay Guide

Practical Use Cases

  1. Weapon Switching: Activate GMS.MovementSet.ADS when switching to a pistol.
  2. Pose Changes: Switch to GMS.MovementSet.Guard when pressing the defense key.
  3. Environmental Adaptation: Automatically switch to GMS.MovementSet.Crouch in narrow areas.

Read More