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

57 lines
6.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 高阶敌人 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` 中完成帧事件配置。