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 及以上)以确保兼容性和性能。
更新指南
已修改项目的更新
若你已将配套项目内容迁移至自己的项目并修改了部分内容,请按照以下步骤更新:
- 根据 PackageRedirects 记录,手动调整现有文件夹路径。
- 从最新配套项目中按需复制迁移内容。
未修改项目的更新
若你未修改 /Content/GenericGame 下的内容,可直接:
- 删除 /Content/GenericGame 文件夹。
- 按照文档,从最新配套项目复制内容以覆盖旧版本文件。
重定向配置
无论哪种情况,建议在项目的 DefaultEngine.ini 中添加以下重定向配置,以确保资源引用有效:
1[CoreRedirects]2;GGS 1.5 /GCS1.4 GMS/1.4 migration3+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)1213[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
