GMS 1.3发布日志

The documentation of Generic Game Framework.

Cover.GMS
罗传月武(YueWu)

作者

罗传月武(YueWu)

专注游戏开发和Web技术。

创建时间: 2025年7月31日更新时间: 2026年9月15日

目录

GMS1.3版本

这一版本是针对UE5.4的最后一次更新,在此之后,我会将我的工作移动到UE5.5,并按照开发计划进行后续的开发内容。

主要变化

整体改进默认Locomotion实现的表现效果,尤其是起步转身。并调整状态机结构。

各种细节上的bug修正,以及开发使用体验上的改进。

Bug修正

修正:修正PivotMovement在联机下没有正常同步的Bug,以及斜方向的Pivot没有正常触发。

修正:在不同的旋转模式下,配置了不同长度的Start/Stop动画时,如果在播放这些动画的过程中切换旋转模式,会触发引擎中关于同步组标记的断言,会让游戏卡一下。这个已经修复。

修正:当旋转模式为ViewDirection时,Start动画没有播放。

修正:改进默认Locomotion的状态机结构,和跳转逻辑,使其更稳健。

修正:VelcoityDirection下勾选运动被阻挡时采用InputDirection的选项未生效。

修正:着地动画基于错误的落地速度进行选择。

运动控制系统改进

改进:开启运动系统组件上的OwnedTags的网络同步,并提供API对其进行增/删/覆盖。这允许不使用GAS的项目,也能更容易的进行Tags的网络同步。

修正:跳跃采用GAS制作,确保跳跃和蹲下互斥。

改进:改进运动被阻挡的判定逻辑。

改进:StrideWarping从AnimGraphSetting移动到每个运动集设置中,可以单独配置Start/Pivot的步幅适配参数,并选择是否启用。

案例Demo改进

Demo体验更新:从这次更新开始,我提供的演示关卡,都采用与ContentExample类似的房间式案例演示,并在我的不同产品中进行了统一,你甚至也可以利用那几个简单的蓝图,快速搭建关卡原型或者类似功能演示地图。

GGS整合:GGS是免费的且是GMS的一部分,这次提供了交互示例和UI示例,仅用于Demo。GMS的核心始终是“一个运动系统组件”+“一个主动画蓝图”。

动画整合改进

修正:1.2版本的更新中,枪械类武器的参考设置缺失了瞄准时的配置,所以导致IK/瞄准产生了问题。这次已经补上。Lyra的枪械类动画(手枪/来福枪/散弹枪)已经全部配置好,可以直接使用或者作为参考案例学习。

新增:我已经重定向了GASP5.4中的基础运动动画,并配置好了运动定义,你现在可以在Lyra的Unarmed和GASP的Unarmed当中自由组合/切换。

开发体验

改进:AM_FootFX动画修改器已经可以可选地自动放置SyncMarkers(默认启用),比引擎自带的SyncMarkers修改器更准确,所以你不需要再额外添加SycnMarkers修改器。

配置注释/文档:在关键字段上添加更多中英注释,并提供用法介绍,或者指向官方文档的链接,对基础较为薄弱的用户更加友好。

让一些API公开化,并让更多API蓝图可重写。

Addtive层改进

暴露更多配置到运动集设置,并允许根据移动与否配置LandRecovery的权重。

转身系统

将转身系统的复杂度从控制部分转移到了动画部分,引入了在GASP中介绍的OffsetRoneBone和Steering节点,并将其用于GMS的默认Locomotion的起步转身效果。

该系统依赖具备根运动的起步/转身动画,虽然有更好地表现效果,但是操控手感会更粘滞。因此可以可选关闭(在运动集设置的GeneralSetting中),这给予GMS在高响应和高保真之间进行选择的灵活度。

此系统同时允许:在VelocityDirection下,摇杆轻弹/Tap方向键也可以可选地触发原地转身动画(类似龙腾世纪)。

不再区分Montage/Graph方式的原地转身,会根据控制设置以及延迟激活设置,自动选择延迟/非延迟的原地转身。

你也可以在转身配置中选择是否在瞄准时启用(一些用户希望ADS时有及时反应,而不是等待转身动画。)

倾斜系统调整

现在Lean可以配置“移动速度范围到混合空间值的缩放范围”映射,允许你根据速度的快慢从而应用不同的倾斜程度。

StackOverlay系统

每一个AnimData_Overlay允许你配置混入和混出时间,之前混入混出都采用同一个时间,但是在某些情况下,你希望快速混入,并缓慢混出。

修正了逻辑上的错误,当一个Overlay不再激活时,不会重置其数据,只是令其无效,这样不会触发动画上的跳变。

将相关性的更新提取到NativeThreadSafeUpdate以进一步提高性能。

迁移指南

升级前请备份你的项目先。

Tags迁移:由于更改了默认Locomotion的结构,一些状态机对应的GameplayTags进行了重定向,如果你的项目使用了这些Tags去配置叠层,那么你需要在你项目的Config/DefaultGameplayTags.ini加上如下迁移(Demo项目已经配置好可以复制粘贴)。

plaintext
1[/Script/GameplayTags.GameplayTagsSettings]
2+GameplayTagRedirects=(OldTagName="GMS.SM.Locomotion",NewTagName="GMS.SM.Grounded")
3+GameplayTagRedirects=(OldTagName="GMS.SM.Locomotion.Grounded",NewTagName="GMS.SM.Grounded")
4+GameplayTagRedirects=(OldTagName="GMS.SM.Locomotion.Jump",NewTagName="GMS.SM.InAir.Jump")
5+GameplayTagRedirects=(OldTagName="GMS.SM.Locomotion.Fall",NewTagName="GMS.SM.InAir.Fall")
6+GameplayTagRedirects=(OldTagName="GMS.SM.Locomotion.Land",NewTagName="GMS.SM.Grounded.Land")

内容文件迁移:由于更改了个别文件路径,如果你使用到这些文件,你需要配置Packages重定向,以免蓝图引用被破坏。(个别非关键文件如果你找不到了,重新引用新路径即可。)

plaintext
1[CoreRedirects]
2;GMS 1.3 Upgrade.
3+ClassRedirects=(OldName="BC_GMS_MovementSystem_C",NewName="/Script/GenericMovementSystem.GMS_CharacterMovementSystemComponent",OverrideClassName="/Script/CoreUObject.Class")