Integrate GMS

avatar`
Yuewu(罗传月武)
Updated: May 8, 2025

Preparation

This document is exclusively intended for users who have purchased both GCS and GMS and wish to integrate GMS into GCS.

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.

GCS集成GMS.API案例

Instructions in DemoCombatCore

GCS集成GMS.003

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.

GCS集成GMS.002
GCS集成GMS.001

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.

GCS集成GMS.004