🚀 UE5.6已发布! 🚀 我的所有系统将会在下一次更新时支持它! 

点击购买

集成通用运动系统

avatar`
Yuewu(罗传月武)
Updated: Jun 12, 2025

准备工作

本文仅适用于同时购买了GCS和GMS,并希望将GMS整合到GCS中的用户。

背景

首先,GCS和GMS都属于GGF(通用游戏框架插件,我的All-In-One解决方案,但它还未发布)。

我希望我的产品能够保持相互之间的独立,模块化。因此GCS和GMS都有自己对应的配套项目,它们都是从我当前的All-In-One中分离出来的子集。

GCS专注于战斗本身,它的配套项目中的Demo部分包含一个简单的运动管理组件,它演示了如何在GCS中引入运动系统,同时还包含一个简单的武器管理组件,它演示了如何在GCS中引入装备管理。

Demo中的内容,你可以替换成别的实现,如:使用ALS/GASP或者我的GMS去替换GCS中的运动系统,或者使用别的库存/装备系统去替换GCS中的武器等。

获取合并项目

同时拥有GMS和GCS的用户,可以在Discord的#GMS-GCS-Integration频道获取经过合并的项目,如果你希望将GCS和GMS一起使用,那么这会很方便。

安装所需插件

GCS和GMS都使用了通用游戏系统(GGS),你需要同时安装GCSv1.3+,GMSv1.3+以及GGSv1.4+

你可能都需要面临手动编译插件的情况,所以最好将插件放入项目的Plugins文件夹下面。

整合GMS到GCS

完成运动系统的基础设置

你是将GMS整合到GCS,所以你至少应该已经熟悉和了解GMS本身的使用。你可以参考运动系统的角色配置,在GCS中完成运动系统的基础组件设置。

更具体点就是:GCS角色SkeletalMesh使用GMS的主动画蓝图,同时,你还需要参考ABP_Mannequin_Ext在GMS案例中的用法,将其Link倒GMS的主动画实例中,ABP_Mannequin_Ext是设置角色Montage布局的动画层。

然后将所有对BC_Demo_MovementManager的引用替换为GMS的CharacterMovementSystemComponent

更替运动API

GCS的战斗接口中,有几个运动相关的API与GMS的API兼容,因此你可以继承自BC_GCS_CombatCore或者修改BC_GCS_DemoCombatCore,并按照指示替换API调用。

GCS集成GMS.API案例

DemoCombatCore中的案例代码。


GCS集成GMS.003

这一步就是将DemoMovementManager替换为了GMS的MovementSystemComponent。

武器与运动定义整合

在GCS_Demo中,DemoWeapon是通过WeaponAnimLayerSelections 来配置了不同的动画层,并通过在合适的时候调用RefreshWeaponAnimLayerUnlinkWeaponAnimLayer来实现针对角色的状态,根据当前武器切换不同的动画层(不同的动画姿态)。

若采用GMS,你无需再手动调用武器上的动画层的刷新,而是在你的武器类中新增运动定义变量,然后在武器激活/取消激活的时候,为GMS运动系统组件添加/移除运动定义。

当运动API调用时,GMS运动系统组件会自动刷新对应的控制/动画层逻辑。

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

总结

理想情况下,当你在GCS中切换武器时,会切换GMS组件上的运动定义。当你通过CombatInterface调用

运动相关API时,会通过GMS组件来执行具体的运动控制/动画替换。

GCS集成GMS.004