Overview
This section details the updates in Generic Movement System (GMS) version 1.4, covering new features, improvements, companion project reorganization, engine version support, and update guidelines.
New Features
Directional Jump Start
Added direcitonal jump start, user can choose jump start anim type between Single and Direction.
Fixed issue where jump start may not run.
GMS_DebugComponent
Added GMS_DebugComponent to assist in visualizing the following for a character:
- World orientation of the Actor
- Animation space orientation
- View orientation
This component aids developers in debugging movement and animation behavior.
Initial Mover 2.0 Support
Users can now use MoverMovementSystem instead of CharacterMovementSystem to enable Mover 2.0 support, with no changes required to existing configurations.
- Compatible with both CharacterMovementComponent (CMC) and Mover 2.0, ensuring flexibility and backward compatibility.
- Note: Mover 2.0 uses Pawn as the root, requiring adjustments to replace Character classes.
Alert
Mover 2.0 is functional but requires improvements in performance and implementation logic. Its API may change, making it suitable only for early adopters and testing. It is expected to reach production-ready status in GMS version 1.5.
RootBoneTranslation Setting
Added RootBoneTranslation setting, optionally enabled, to improve sliding issues during movement start, enhancing animation smoothness.
Improvements
- All major code now includes bilingual (Chinese and English) comments to enhance readability and maintainability.
- Default Additive Layer Improvement, Can apply land recovery additive animation only when landed with movement input.
Companion Project
Files related to GenericGameSystem have been reorganized into /Content/GenericGame/CommonSystem for easier updates and management.
Engine Version
GMS 1.4 no longer supports Unreal Engine 5.4, focusing on newer versions (e.g., UE 5.5 and above) to ensure compatibility and performance.
Update Guidelines
Updating Modified Projects
If you’ve migrated companion project content to your project and modified parts of it, follow these steps:
- Manually adjust existing folder paths based on PackageRedirects records.
- Copy and migrate content from the latest companion project as needed.
Updating Unmodified Projects
If you haven’t modified content under /Content/GenericGame, you can:
- Delete the /Content/GenericGame folder.
- Follow the documentation to copy content from the latest companion project to overwrite old files.
Redirect Configuration
In either case, add the following redirect configuration to your project’s DefaultEngine.ini to ensure valid resource references:
1[CoreRedirects]2;GGS 1.5 /GCS1.4 GMS/1.4 migration3+PackageRedirects = (OldName="/Game/GenericGame/CameraSystem/Core",NewName="/Game/GenericGame/CommonSystem/CameraCore",MatchSubstring=true)4+PackageRedirects = (OldName="/Game/GenericGame/CameraSystem/Extras",NewName="/Game/GenericGame/CommonSystem/CameraExtras",MatchSubstring=true)5+PackageRedirects = (OldName="/Game/GenericGame/InteractionSystem/Core",NewName="/Game/GenericGame/CommonSystem/InteractionCore",MatchSubstring=true)6+PackageRedirects = (OldName="/Game/GenericGame/UISystem/Core",NewName="/Game/GenericGame/CommonSystem/UICore",MatchSubstring=true)7+PackageRedirects = (OldName="/Game/GenericGame/UISystem/Extras",NewName="/Game/GenericGame/CommonSystem/UIExtras",MatchSubstring=true)8+PackageRedirects = (OldName="/Game/GenericGame/EffectsSystem/Core",NewName="/Game/GenericGame/CommonSystem/EffectsCore",MatchSubstring=true)9+PackageRedirects = (OldName="/Game/GenericGame/EffectsSystem/Extras/ContextEffects",NewName="/Game/GenericGame/CommonSystem/EffectsExtras",MatchSubstring=true)10+PackageRedirects = (OldName="/Game/GenericDemo/GUIS/WB_GUI_HUD_Generic",NewName="/Game/GenericGame/CommonSystem/UICore/UI/WB_GUI_HUD_Generic")11+PackageRedirects = (OldName="/Game/GenericGame/AISystem/Core/STNodes",NewName="/Game/GenericGame/CommonSystem/StateTreeCore",MatchSubstring=true)1213[Core.StringTable]14+StringTableRedirects = (OldStringTable="/Game/GenericGame/UISystem/Extras/DataTables/ST_Menu.ST_Menu",NewStringTable="/Game/GenericGame/CommonSystem/UIExtras/DataTables/ST_Menu.ST_Menu")15+StringTableRedirects = (OldStringTable="/Game/GenericGame/UISystem/Extras/DataTables/ST_Common.ST_Common",NewStringTable="/Game/GenericGame/CommonSystem/UIExtras/DataTables/ST_Common.ST_Common")16+StringTableRedirects = (OldStringTable="/Game/GenericGame/UISystem/Core/UI/Modal/SDT_GUI_Modal.SDT_GUI_Modal",NewStringTable="/Game/GenericGame/CommonSystem/UICore/UI/Modal/SDT_GUI_Modal.SDT_GUI_Modal")17
