Generic Movement System 1.6
Changes since 1.5.1. Gait intent and CMC / Mover runtime parameters are now separate: characters can share Walk / Sprint meaning while acceleration and friction live on backend settings. GMS no longer silently writes the default engine CMC. This is asset- and source-breaking. Skip the GMS CMC or backend settings and characters will not accelerate from GMS.
Added
- One movement vocabulary can drive Character Movement or a project backend. Control Settings gain
BackendSettings. Official backends exist for Character and Mover. The editor aligns per-state rows toMovementStates. A one-to-one tag rename keeps the old row instead of dropping values. - Ziplines and other traversal can be CMC custom modes while animation still reads one Locomotion tag. Register enter, exit, transition, and
PhysMode, then map toGMS.LocomotionMode.*. A zipline mode is included. - Buffs, slows, and AI catch-up can change max speed without cloning gait data. Runtime adjustment can override, multiply, or add to the current backend max speed.
- The anim graph can wire GMS stride warping. Bone references live on Anim Graph Setting. 1.5.1 had the settings struct only.
- The speed-classification curve and AI DesiredSpeed share one rule on the Control Setting. The curve is no longer hidden on a single character component.
- Mac is allowed for runtime and editor modules. This release targets Unreal Engine 5.8.
Changed
- The Character path only talks to the GMS CMC. The component casts the owner’s movement to
UGMS_CharacterMovementComponent. On failure it logs an Error and no longer writesMaxWalkSpeedto the default engine CMC. Characters that keep the engine CMC stay put or keep their old speed. - MovementState is no longer a CMC parameter sheet.
Speedis still the nominal class speed.Acceleration/BrakingDecelerationare deprecated and unread. Without a backend-row override, acceleration and friction stay at current CMC values. - No Character backend setting means no gait apply. A missing backend or state row logs an Error and returns, instead of looking configured while writing nothing.
SetLocomotionModeis deprecated. LocomotionMode is a backend mirror. Switch traversal through CMCSetMovementMode, custom-modeRequestEnterMode, or a Mover transition.- The component “allow refresh CMC” switch and speed curve are gone. External / AI speed control should use the Control Setting curve or runtime adjustment. There is no PropertyRedirect.
Removed
- Stacked MovementDefinition push/pop is gone.
PushAvailableMovementDefinition/PopAvailableMovementDefinitionand theMovementDefinitionsarray were deleted. Switch the current definition withSetMovementDefinition. - Old Velocity / View Direction enums and hidden structs are gone. Rotation policy lives only on instanced Control Setting objects.
- The 1.4→1.5 Pose Overlay / Sequence Stack editor migrators are gone. That migration is not maintained. CoreRedirects remain for assets that already moved.
Upgrade Notes
Asset- and source-breaking. Character Blueprints, Movement Control Settings, C++ includes, and old acceleration fields must be updated. Skipping it makes GMS error and refuse to write speed.
- Change the character’s Character Movement class to
UGMS_CharacterMovementComponent. - Open each Movement Control Setting, add
UGMS_CharacterMovementBackendSettingunderBackendSettings, and save so rows align. - Move acceleration / braking that used to live on MovementState onto the matching backend-row overrides.
- If 1.5.1 stored the speed-classification curve on the Character movement-system component, move it to the Control Setting.
- Update C++ includes:
CMC/GMS_CharacterMovementSystemComponent.h,CMC/GMS_CharacterMovementComponent.h,Interfaces/GMS_ZiplineInterface.h,Settings/GMS_MovementControlSetting.h. - Remove
PushAvailableMovementDefinition/PopAvailableMovementDefinition/SetLocomotionMode. Switch traversal through the backend movement mode. - To use GMS stride warping, add the new node and fill bone references on Anim Graph Setting.
- The Mover path also reads backend settings from the Control Setting, but it remains work in progress, not a production foundation.