Generic Movement System 1.6
相对 1.5.1 的更新。这一版把步态意图和 CMC / Mover 运行时参数拆开:不同角色可以共享同一套 Walk / Sprint 语义,加速度和摩擦留给后端设置。不再偷偷往默认引擎 CMC 写速度。升级是资产和源码不兼容。不换 GMS CMC、不配后端设置,角色不会按 GMS 加速。
新增
- 同一套运动意图可以接到 Character Movement 或项目自己的后端。 Control Setting 新增
BackendSettings。官方提供 Character 与 Mover 两套;编辑器按 MovementStates 对齐每行参数。一对一的 tag 重命名会改挂旧行,而不是丢掉数值。 - 滑索和其他穿越可以做成 CMC 自定义模式,动画仍读同一套 Locomotion Tag。 注册进入、退出、过渡和
PhysMode,再映射到GMS.LocomotionMode.*。插件附带滑索模式。 - Buff、减速和 AI 追赶可以改最大速度,不必复制一份步态数据。 运行时调整可覆盖、乘算或叠加当前后端最大速度。
- 动画图可以接 GMS 步幅扭曲,骨骼引用集中在 Anim Graph Setting。 1.5.1 只有设置结构,没有可接线的节点。
- 速度分类曲线和 AI DesiredSpeed 共用 Control Setting 上的同一条规则。 不再把曲线藏在单个角色组件上。
- Mac 进入运行时与编辑器平台。 本版本面向 Unreal Engine 5.8。
变更
- Character 路径只认 GMS CMC。 组件把 Owner 的 Character Movement 转成
UGMS_CharacterMovementComponent。失败打 Error,不再向默认引擎 CMC 写MaxWalkSpeed。继续用引擎默认 CMC 的角色会停在原地或保持旧速度。 - MovementState 不再假装自己是 CMC 参数表。
Speed仍是分类名义速度。Acceleration/BrakingDeceleration已弃用且不再读取。未在 backend row 勾选 override 时,加速度和摩擦保持 CMC 当前值。 - 没有 Character 后端设置就不会应用步态。 找不到后端或缺少当前状态行时记录 Error 并返回,避免「看起来配了、实际没写上」。
SetLocomotionMode已弃用。 LocomotionMode 是后端镜像。切换穿越应改 CMCSetMovementMode、自定义模式RequestEnterMode或 Mover 过渡。- 组件上的「允许刷新 CMC」开关和速度曲线已删除。 外部/AI 控速改用 Control Setting 曲线或运行时速度调整。组件字段没有 PropertyRedirect。
移除
- 栈式 MovementDefinition 推入/弹出停掉。
PushAvailableMovementDefinition/PopAvailableMovementDefinition和MovementDefinitions数组已删除。当前定义用SetMovementDefinition切换,避免两套来源。 - 旧的 Velocity / View Direction 枚举和隐藏结构停掉。 旋转策略只放在 Control Setting 的 instanced 设置上。
- 1.4→1.5 的 Pose Overlay / Sequence Stack 编辑器迁移入口删除。 那次迁移不再继续维护。CoreRedirect 仍保留,已迁过的资产不用重做。
升级说明
资产和源码不兼容。角色 Blueprint、Movement Control Setting、C++ include 和旧加速度字段都必须改。不改时 GMS 会报错且不写速度,角色不像升级前那样走路。
- 把角色的 Character Movement 类改成
UGMS_CharacterMovementComponent。 - 打开每个 Movement Control Setting,在
BackendSettings里添加UGMS_CharacterMovementBackendSetting,保存以对齐行。 - 把原先写在 MovementState 上的加速度 / 制动,迁到对应 backend row 的 override 字段。
- 若 1.5.1 把速度分类曲线配在 Character 运动系统组件上,把它移到对应 Control Setting。
- 更新 C++ include:
CMC/GMS_CharacterMovementSystemComponent.h、CMC/GMS_CharacterMovementComponent.h、Interfaces/GMS_ZiplineInterface.h、Settings/GMS_MovementControlSetting.h。 - 删除对
PushAvailableMovementDefinition/PopAvailableMovementDefinition/SetLocomotionMode的调用。切换穿越时改后端 movement mode。 - 动画图要使用 GMS 步幅扭曲时,加入新节点并在 Anim Graph Setting 填骨骼引用。
- Mover 路径同样从 Control Setting 读后端设置,但仍是开发中路径,不要作为生产基础。