GCS 1.6 发布日志

The documentation of Generic Game Framework.

Cover.GCS
罗传月武(YueWu)

作者

罗传月武(YueWu)

专注游戏开发和Web技术。

创建时间: 2025年12月22日更新时间: 2026年9月15日

目录

版本1.6

相对 1.5 的更新。这一版把原先占位的子弹方案收成可配置、可预测的运行时:同一套定义能做单发、链式和发射器,本地先出手、服务器仍保持权威。旧的 TraceInstance、TaggedValues 和附件关系不再继续打补丁,直接停掉。升级是源码和资产不兼容,只改版本号不够。

新增

  • 远程攻击可以按数据配置,不必再为每种弹道写一套生成逻辑。 UGCS_BulletSystemComponent 是可放到角色上的运行时入口,用 RequestSpawnBullet / RequestSpawnBulletWithEntryId 生成批次。对象池和 FastArray 复制负责批次、单弹和命中状态。
  • 近战手感可以先预测,又不把伤害算错。 只有拥有玩家主动发射的第一批弹道和视觉走预测;预测弹不应用 Gameplay Effect。链式弹和 Emitter 后续弹只在服务端生成。蓝图可实现确认 / 否决回调,默认超时 2 秒。
  • 项目可以只改子弹表现,不必重写命中结算。 自定义子弹实现 IGCS_BulletInterface,或继续继承 AGCS_BulletInstance。系统管标识、对象池和权威命中;实例管运动和特效。
  • 一次命中可以长出后续弹,而不另写生成器。 子弹定义可配置命中后链式生成,或按间隔发射后续弹。这些请求只在权威端调用。
  • 同一批弹不会反复打中同一个目标。 定义可共享命中名单、设置命中冷却和爆炸延迟。
  • 技能开火和动画窗口分开,动画 Notify 不再兼做 Trace 执行器。 UGCS_AbilityTask_BulletTrace 监听 Gameplay Event,取出 AttackRequest 再交给子弹组件。
  • 战斗流程可以在 Gameplay Debugger 里对照。 新增 GenericCombatSystem 分类,查看攻击结果、Trace、子弹、目标和武器。
  • Mac 进入开发与目标平台。 本版本面向 Unreal Engine 5.8。

变更

  • 锁定目标不必再绑在 Pawn 上。 UGCS_TargetingSystemComponent 改为 UActorComponent,可挂到任意 Actor。当前目标按 OwnerOnly 复制;候选目标只在权威端和本机 AutonomousProxy 刷新。按 UPawnComponent 查找的 C++ 会找不到组件。
  • 预测命中不会被复制结果再处理一次。 同一 PredictionKey 可以把复制结果标成已匹配,跳过重复的 LocalPredicted Processor。
  • 项目设置与插件配置跟其他 Generic 插件对齐。 UGCS_CombatSystemSettings 改名为 UGCS_DeveloperSettings,配置文件改为 DefaultGenericCombatSystem.ini
  • Poise 和 GGA 属性菜单走同一分类。 AS_Poise 的编辑器分类改为 GGA|Attributes|Stamina。属性名和默认值未改,蓝图菜单归组会变。
  • 旧子弹子系统不再是推荐入口。 新代码使用组件。UGCS_BulletSubsystem 上的 SpawnBullet 等入口已弃用,继续调用会走到兼容层。

移除

  • 战斗插件不再维护一套附件关系。 角色挂接应使用 Generic Game System 的 Socket Relationship Mapping,避免两套规则并行。
  • CollisionTraceInstance 和依赖它的 Targeting Filter 停掉。 命中改为 Trace 定义加子弹 / 武器上的 IGCS_TraceCauserInterface,不再给已弃用实例打补丁。
  • 攻击结果上的 TaggedValues 和攻击定义上的 UserSettings 停掉。 幅度和项目字段改走 Combat Payload 与 Extension / NativeExtension
  • PlayPredictableMontageForTarget 及相关复制 Montage 入口删除。 插件不再提供替代函数,蒙太奇同步由项目自己接。

升级说明

源码和资产不兼容。C++、蓝图、攻击 / 子弹 Data Asset 和曾经复制过的 ini 都可能要改。不改会编不过,或远程开火、附件、自定义幅度静默失效。

  1. UGCS_CombatSystemSettings 的 C++ 引用改成 UGCS_DeveloperSettings。如果工程复制过 BaseGenericCombatSystem.ini,确认现在加载 DefaultGenericCombatSystem.ini
  2. 自定义子弹实现 IGCS_BulletInterface,并把 SpawnBullet / UGCS_BulletSubsystem 改到 RequestSpawnBullet。不要在预测路径上应用 Gameplay Effect。
  3. 远程开火用 UGCS_AbilityTask_BulletTrace 读 AttackRequest,不要把 AnimNotifyState 当成 Trace 执行器。
  4. 附件关系、TaggedValues、UserSettings、TraceInstance 的旧引用改到新入口。PlayPredictableMontageForTarget 需要项目自己接。
  5. UPawnComponent 查找目标选择组件的代码,改成按 UActorComponent 查找。