概述
Generic Combat System 是面向动作和多人项目的战斗框架,基于并包含 Generic Input System 与 Generic Gameplay Abilities。它把输入、能力执行、Attack Definition、Combat Flow、命中检测、投射物、目标选择、连击、武器和攻击结果接入同一条管线,适合想保留自有角色、动画和战斗规则,但不想从零开发战斗系统的团队。
文档与支持
- 文档:中文 英文
- Playable Demo:https://cloud.yuewu.dev/s/qNTK
- Showcase Videos:Video 1 Video 2 视频 1 视频 2
- 社区 / 支持:Discord
为什么需要 Generic Combat System?
许多动作和多人项目都会反复搭相似的战斗流程:输入缓冲要进入 ability 激活,动画窗口要打开近战命中,投射物要保留攻击来源和效果上下文,Gameplay Effect 执行后要产生可复制的战斗结果,再交给死亡、受击、格挡、反馈和事件逻辑。最终玩法可以完全不同,但底层攻防管线始终需要统一上下文和清晰扩展点;否则预测、权威、连击、目标切换和调试都会持续增加集成成本。
- 如何让近战、远程,投射物和 环境伤害等机制, 共用一套攻防流程而不是各写各的?
- 如何直观地以数据驱动方式去设计游戏中每一击的特性,如挥砍方向,是火焰还是寒霜,削韧多少,击退距离等,而不是把上下文四处散落?
- 如何让同一攻击命中不同目标时(比如:怪物,Boss,建筑,狗),不同目标可采用多样的方式去响应你的进攻,而不是攻击者去穷举所有可能性?
- 如何通过本地预测保持即时的战斗反馈,同时又让服务端保持权威?
- 如何在不修改核心代码的情况下,去替换游戏的攻防核心机制?
关键特性
从输入到攻击结果的一体化战斗链
GCS 将 GIPS 的标签化输入与缓冲、GGA 的 AbilitySet / effect container / AttributeSet 扩展,以及 Combat 层的 Attack Definition、Combat Flow 和 Attack Result Processor 连接起来。你可以围绕一条标准管线构建近战、远程、技能攻击和环境伤害。
用 Attack Definition 描述每一击的上下文
战斗中的每一击都可由 Attack Definition 以数据驱动的方式设计:攻击标签、SetByCaller 数值、Gameplay Effects、effect containers、Gameplay Cues,以及项目扩展字段都可以围绕同一份攻击上下文组织。近战 Trace、投射物和 ability-driven attack 都能复用这份定义,让伤害和反馈参数保持在同一套上下文里。
用 Combat Flow 决定受击者如何处理攻击
Combat Flow 是受击者侧的攻防决策层。GGA AttributeSystemComponent 会把属性执行回调转发给 Combat Flow;Combat Flow 根据目标自己的规则生成并注册 Attack Result,再由结果容器复制到客户端,最后交给 Attack Result Processor 触发 Gameplay Event、Gameplay Cue、死亡、受击或项目自定义反应。这样同一支箭命中普通敌人、巨型 Boss 或建筑物时,可以由不同 Combat Flow 做出不同处理,攻击者侧也能保持稳定的攻击发起逻辑。
用 Trace 和动画窗口管理近战命中
Trace 定义支持可扩展形状、sweep 设置、固定频率或距离驱动更新。Animation Notify State 与 Gameplay Ability Task 可把攻击窗口接入 trace runtime,让角色、武器、技能和环境体积复用同一套命中检测逻辑。
构建可复制的投射物模式
Bullet / Projectile 定义支持单发、散射、穿透、子弹链和 timed emitter。运行时组件管理 replicated entries、命中历史、每发状态、Gameplay Effect 应用和首批客户端轨迹 / VFX 预测;预测子弹不直接应用 Gameplay Effect,后续链式与 emitter 行为保持权威。
组合锁定目标、队伍关系、连击和武器接口
Targeting Preset、选择任务和过滤任务支持搜索、锁定、切换、敌友过滤、死亡状态和 Gameplay Tag 要求。Combo 可按 step、event tag、tag query 和可选激活测试选择 ability;combat entity、weapon、trace causer、effect causer 等接口让项目保留角色和武器架构。
深度Gameplay Debugger集成
Gameplay Debugger category 会显示 combat flow、最近 attack results、trace、projectiles、targeting、weapon、combo、等常见运行时信息,帮助你快速定位“输入、能力、命中、效果、结果”哪一环节出了问题。
适用项目与人群
- Action RPG、soulslike、hack-and-slash、character action、第三人称射击或混合近战 / 远程项目
- 基于 Unreal GAS、Gameplay Tags、Targeting System 和 Enhanced Input 构建战斗的团队
- 需要复制战斗状态、本地响应、服务器确认和可调试战斗结果的多人项目
- 想把输入、ability、trace、projectile、targeting、combo 和 weapon 连接起来,同时保留自有动画、移动、伤害公式和表现的项目
GCS 的配套项目以类魂游戏机制为案例,协助你理解和使用GCS;产品本身定位为战斗基础设施。伤害计算、死亡表现、AI、UI、移动系统、动画选择、VFX/SFX 风格、等内容仍由项目决定。
技术详情
代码模块(Code Modules):
GenericCombatSystem(Runtime)GenericGameplayAbilities(Runtime)GenericGameplayAttributes(Runtime)GenericGameplayAbilitiesEditor(UncookedOnly)GenericInputSystem(Runtime)
依赖插件(Plugin Dependencies):
EnhancedInputGameplayAbilitiesModularGameplayTargetingSystemStateTreeGameplayStateTreeMotionWarping
Blueprint 数量(Number of Blueprints): 随配套项目提供
C++ 类数量(Number of C++ Classes): 100+
网络复制(Network Replicated): 是
开发支持平台(Supported Development Platforms): Win64、Mac
支持的目标构建平台(Supported Target Build Platforms): Win64、Mac、Android、Linux
配套项目(Companion Project): 购买后通过购买验证提供
重要说明/附加说明(Important/Additional Notes): 查看我的产品整体设计
