Files
Cielonos/docs/AI_ExpertAI_高阶博弈设计思路.md
SoulliesOfficial f26f9fd374 爆更
2026-03-20 12:07:44 -04:00

6.0 KiB
Raw Blame History

高阶敌人 AI 设计:专家级博弈与“连招拆招”系统 (Elite AI: Action-AI Sandbox)

1. 设计目标与核心理念

  • 目标:为 Cielonos 打造一种拒绝纯数值压积的高阶 AI 体验。当玩家面对精英/Boss级别敌人时敌人的动作反馈取决于玩家当前的操作与走位。
  • 理念
    • 信息透明博弈:不是毫无征兆的瞬移或无敌判定,而是基于“预测区域”与“前摇动作”的反应。
    • 高风险高收益:敌人的“变招”带有破绽,一旦玩家通过完美闪避、弹反或抓后摇化解危机,将获得绝佳的输出窗口和大量增益。
    • 难而不恶心:必须给玩家留出足够的反应窗口,且每一次失败都应该是玩家的策略失误。

2. 核心技术底座:战斗信息广播系统 (Combat Broadcast System)

为了让 AI 能够“见招拆招”我们需要在程序框架层面补充一套跨实体的“信息传递网络”。除了玩家自身的视线追踪Sight和听觉Hearing还需要一种基于攻击动作和状态的系统。

2.1 【玩家操作意图广播基础】

目前项目中使用了 Behavior Designer 的 HasReceivedContextEvent 作为 AI 接收事件的节点接口。在释放特定招式(如部分特定的攻击行为)时,通过 behaviorSc.DispatchContextEvent 发送事件信息。 作为高阶方案的延展,未来需要进行以下拓展:

  1. 高维危险感知区域 (Threat Area)对于大型蓄力或高危攻击未来将引入一层专门的“危险预测碰撞体Special Alert Trigger/Area”组件。在攻击的“前摇阶段”该区域生成并立即覆盖战场。
  2. 事件总线 (Event Bus):目前的 ContextEvent 是对单体 AI 的直接派发。由于之后会有复数个高级 AI 共存,需要一个全局的 战斗意图事件总线 (Combat Intent Event Bus),当危险区域命中 AI 时,或者玩家做出特定流派的大动作时,通过该总线广播给感知范围内的 AI。

2.2 【AI 获取环境信号】

对于精英级敌人的行为树设计,它们将依靠上述信息源执行条件中断Conditional Aborts

  • 当触发了对应 ContextEvent 或触发了“高危险区域感知”时,将该信息的关键数据写入行为树黑板变量(如 IncomingThreatType)。
  • 触发高优先级拦截打断诸如“巡逻”、“常规平A”等一般行为强制进入对应的高阶应对逻辑。

3. AI “见招拆招”行为池设计

基于上述信息广播底座,我们可以为专家级 AI 设计以下应对行为Action Nodes

3.1 应对 玩家“范围蓄力/高伤害技能前摇”

  • 判定条件:接收到 attackType = Charge/Heavy 且当前与玩家的距离位于 threatArea 内部。
  • **AI 决策 1完美后撤/侧闪 (Evade)**如果 AI 的当前硬直极小,判定时间充足,立即执行闪避动画,向安全区域移动。
  • **AI 决策 2抢攻打断 (Interruptive Strike)**如果 AI 判断时间不及但玩家这招没有“超级护甲霸体”AI 会立即瞬发一记快速的“轻攻击”以求打断玩家蓄力。

3.2 应对 玩家“无脑连续轻击/平A连段”

  • 判定条件AI 记录玩家在短时间内连续多次发起 attackType = Light 并且自身处于防守或受迫状态(如被连续刮痧)。
  • **AI 决策 1霸体弹反 (Perfect Guard/Parry Stance)**AI 突然开启闪烁着特殊光芒的防御架势动画(例如举起大盾或兵刃发光)。
    • 玩家博弈如果玩家收不住手一刀砍上去则玩家被强行“弹刀”弹飞大硬直。如果玩家及时收手Switch-Tech 或利用闪避取消),则 AI 的防御架势在持续一段时间后会露出极大的后摇破绽,玩家可趁机反击。
  • **AI 决策 2后撤斩 (Retreating Slash)**硬抗一击(或者超级护甲),向后位移同时挥出一剑,逼迫玩家交出闪避。

3.3 应对 玩家“频繁切换武器 (Switch-Tech 滥用)”

  • 判定条件:接收到高频的 SwitchWeapon 广播信号。
  • **AI 决策:空间封锁 (Zone Control)**AI 认为玩家在不断高速位移或打瞬间爆发,此时 AI 不再与之近身缠斗,而是向周围释放大范围的持续追踪射线/地刺、或召唤延迟引爆的立场,压缩玩家在切换武器时的走位空间。

4. 自定义 Behavior Designer 节点功能描述规划 (Task Nodes)

既然你具备强大的 C# 与 BD 集成开发能力,这里提供我们需要在后续逐步编写的自定义行为树节点功能描述,你可参考实现:

  • [Conditional] HasHighThreatIncoming

    • 功能要求:监听/检测自己是否处于玩家生成的“高危险感知感知区域”中,或是否收到了表明有巨大威胁的全局 ContextEvent
    • 参数导出:允许将威胁的类型(是范围爆炸、还是突进劈砍)写入黑板里的 Enum 变量中,以便驱动下方的不同分枝。
  • [Action] EvadeOrBlock (应对危险动作选择器)

    • 功能要求:读取上级节点写入的威胁类型与自身当前可执行状态,决定播放“后侧步(闪避)”、“防御(吸收或弹反)”或者“强行攻击打断”的对应动画片段。该节点需与 Automata 内封装的动画打断逻辑深度绑定。

5. 阶段待办与开发顺序确认 (Milestones)

  • 技术基建 (Event & Area)未来规划“高危险区域Special Alert Trigger”的实现方式并视情况构建全局 Event Bus 以替代/封装针对单体的 DispatchContextEvent
  • 行为树框架搭建 (BD Foundation):在特定的专家级怪物的行为树中,拉出一支 High Priority (Both/Self) 的分支,以 HasReceivedContextEvent 或上述的自定义拦截节点作为触发器。
  • 动作打断与反馈补充:制作专门用于展现 AI “见招拆招”特点的反制动作,并在 FuncAnimDataCollection 中完成帧事件配置。