GMS 1.4发布日志

The documentation of Generic Game Framework.

Cover.GMS
罗传月武(YueWu)

作者

罗传月武(YueWu)

专注游戏开发和Web技术。

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

目录

GMS1.4版本

本节记录通用运动系统(GMS)1.4 版本的更新内容,包括新增功能、改进、配套项目调整、引擎版本支持以及更新指南。

新增功能

四方向起跳支持

支持4方向起跳,用户可以通过JumpStartAnimType来选择单一起跳还是方向性起跳。修正了JumpStart动画有可能没有播放。

GMS_DebugComponent

新增 GMS_DebugComponent,用于辅助展示角色当前的以下信息:

  • Actor 的世界朝向
  • 动画空间朝向
  • 视图(View)朝向
    此组件便于开发者调试角色的运动和动画行为。

Mover 2.0 初步支持

用户可选择 MoverMovementSystem 替代 CharacterMovementSystem 以启用 Mover 2.0 支持,配置方式保持不变。

  • 同时兼容 CharacterMovementComponent(CMC)和 Mover 2.0,确保灵活性和向后兼容性。
  • 注意:Mover 2.0 使用 Pawn 作为根节点,需调整角色设置以替换 Character 类。

Alert

Mover 2.0 已可运行,但表现效果和实现逻辑仍需改进和调整。API 可能会发生变化,仅推荐用于早期体验和测试。预计在 GMS 1.5 版本中,Mover 2.0 将达到产品就绪状态。

RootBoneTranslation 设置

新增 RootBoneTranslation 设置,可选启用,优化起步时的滑步问题,提升运动流畅度。

改进

更多代码注释

主要代码现已添加中英文双语注释,以提高可读性和维护性。

Additive层效果

默认的Additive动画层效果允许仅在着陆后,有移动输入时才生效,这一改动可实现:原地着陆由默认States层的Land实现,而动态着陆可由Additive层实现。无需再States层添加复杂的Land->Move状态过渡。

引擎版本

GMS 1.4 不再支持 Unreal Engine 5.4,仅支持更高版本(如 UE 5.5 及以上)以确保兼容性和性能。

更新指南

已修改项目的更新

若你已将配套项目内容迁移至自己的项目并修改了部分内容,请按照以下步骤更新:

  1. 根据 PackageRedirects 记录,手动调整现有文件夹路径。
  2. 从最新配套项目中按需复制迁移内容。

未修改项目的更新

若你未修改 /Content/GenericGame 下的内容,可直接:

  1. 删除 /Content/GenericGame 文件夹。
  2. 按照文档,从最新配套项目复制内容以覆盖旧版本文件。

重定向配置

无论哪种情况,建议在项目的 DefaultEngine.ini 中添加以下重定向配置,以确保资源引用有效:

plaintext
1[CoreRedirects]
2;GGS 1.5 /GCS1.4 GMS/1.4 migration
3+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)
12
13[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