Integrate GMS

Preparation
This document is exclusively intended for users who have purchased both GCS and GMS and wish to integrate GMS into GCS.
Before that, you should at least understand the use of GMS itself, please take a look at Characters in the GMS_Demo project to see how they are configured.
Background
Firstly, both GCS and GMS are part of the GGF (Generic Game Framework Plugin, my All-In-One solution, which has yet to be released). I want my products maintaining mutual independence and modularity. Hence, both GCS and GMS come with their respective paired projects, which are subsets separated from my current All-In-One Project.
GCS focuses primarily on combat; within its paired project, the demo section includes a basic movement manager component that demonstrates how to introduce a movement system into GCS, along with a simple weapon manager component that demonstrates the incorporation of equipment management within GCS.
The content within the demo can be replaced with alternative implementations, such as substituting the movement system in GCS with ALS/GASP or my GMS, or utilizing another inventory/equipment system to replace the demo weapon manager in GCS.
Acquiring the Merged Project
Users possessing both GMS and GCS can obtain the merged project within the Discord #GMS-GCS-Integration
channel, easing the process of utilizing both systems together.
Installing Required Plugins
Both GCS and GMS utilize the Generic Game System (GGS); therefore, you must concurrently install GCS v1.3+, GMS v1.3+, and GGS v1.4+. You may need to face manual compilation of plugins, so it is advisable to place the plugins in the project's Plugins folder.
Integrating GMS into GCS
Complete Basic Setup for the Movement System
As you integrating GMS into GCS, you should already have a foundational understanding of GMS itself. You can refer to the Character Setup within the movement system to finalize the basic component setup in GCS.
More specifically, the GCS character's SkeletalMesh should utilize GMS's main anim blueprint, while BC_Demo_MovementManager
should be replaced with GMS's CharacterMovementSystemComponent
.
Movement API Swapping
In the GCS_CombatInterface
, several movement-related APIs are compatible with GMS (Generic Movement System) APIs, allowing you to inherit from BC_GCS_CombatCore
or modify BC_GCS_DemoCombatCore
, in accordance with the provided instructions for replacing API calls.

Instructions in DemoCombatCore

This step replace DemoMovementManager to GMS MovementSystemComponent。
Weapon with movement definition
In GCS_Demo, DemoWeapon is configured with different anim layers via WeaponAnimLayerSelections
and implements state-dependent switching of anim layers (different animation stance) by calling RefreshWeaponAnimLayer
and UnlinkWeaponAnimLayer
at appropriate moments.
When using GMS, manual calls to refresh the anim layers on the weapon are unnecessary; instead, you can add movement definition variable in your weapon class and push or pop movement definitions from the GMS movement system component upon weapon activation/deactivation.
When movement API calls are made, the GMS movement system component will automatically refresh the corresponding control/animation layer logic.


Conclusion
Ideally, when you switch weapons in GCS, the movement definition on the GMS component would also switch. When invoking movement-related APIs via the CombatInterface, the specific movement control and animation replacement would be executed through the GMS component.
