# Boss 设计 — 程序开发文档 01 > 依据《Boss设计-动作需求表-01》整理,供程序端实现参考。 > 包含:状态机、阶段系统、AI 行为逻辑、技能规格、特殊机制说明。 --- ## 目录 - [嘲风 — 概述](#嘲风--概述) - [阶段系统](#阶段系统) - [状态机总览](#状态机总览) - [状态列表](#状态列表) - [AI 行为逻辑](#ai-行为逻辑) - [技能规格](#技能规格) - [特殊机制](#特殊机制) - [技术备注](#技术备注) --- ## 嘲风 — 概述 | 字段 | 内容 | |----------|-----------------------------------------------------------------------------------| | 角色名称 | 嘲风 | | 类别 | BOSS | | 背景设定 | 龙九子之三,始龙和凤之子,掌管凤仙山,因愧疚情绪被黑麒麟天魂碎片侵蚀神智 | | 战斗阶段数 | **2 个阶段** | | 阶段切换条件 | HP 降至阈值(建议策划配置,参考值:50%) | | 主要武器 | 折扇 | | 行动方式 | 阶段一:地面移动;阶段二:空中漂浮(位移由程序控制) | --- ## 阶段系统 ### 阶段一(Phase 1)— 地面战 - 嘲风在地面移动、使用扇子进行近远程攻击 - 可用技能:回旋扇、挥扇三连、小龙卷、大龙卷 - 结束条件:HP ≤ 切换阈值 → 触发 `PhaseTransition` 动画 ### 阶段二(Phase 2)— 空中战 - 嘲风漂浮至空中,使用风石技能 - 程序负责垂直位移(漂浮高度);动画只做原地浮动姿态 - 新增机制:**击落系统**(玩家在空中攻击嘲风达到计数阈值 → 触发击落) - 击落后进入地面硬直窗口 → 恢复漂浮 → 继续循环 - ⚠️ **待策划确认**:Phase 2 是否仍可使用 Phase 1 的回旋扇/小龙卷/大龙卷等技能?当前文档按"Phase 2 仅用风石"处理。 --- ## 状态机总览 ``` ══════════════════════ 战斗前 ══════════════════════ [Dialogue_Idle] ──战斗触发──▶ [Appear] │ 播放完毕 ▼ ══════════════════════ Phase 1 ══════════════════════ [P1_Idle] │ AI 决策 ┌───────────────────┼────────────────────┐ ▼ ▼ ▼ [P1_Move] [Skill_Boomerang_Start] [Skill_FanCombo] │ ──▶ [Skill_Boomerang_Loop] │ │ ──▶ [Skill_Boomerang_End] │ │ [Skill_TornadoSmall] │ [Skill_TornadoLarge] └──────────────────▶[P1_Idle]◀───────────┘ HP ≤ 阶段阈值(任意 Phase 1 状态均可触发) └──▶ [PhaseTransition] ──浮空完成──▶ 进入 Phase 2 注:切换瞬间强制终止当前技能(如回旋扇弹道立即销毁) ══════════════════════ Phase 2 ══════════════════════ [P2_Idle_Float] │ AI 决策 ┌─────────────┴──────────────┐ ▼ ▼ [Skill_WindStone_Charge] [P2_Idle_Float](CD冷却中) │ [Skill_WindStone_Loop] │ [Skill_WindStone_Release] ──▶ [P2_Idle_Float] Phase 2 任意状态:hitCount ≥ 阈值 ──▶ [Knockdown_Hit](打断当前动作) │ [Fall_Down] │ 落地 [Stagger](复用 Defeat_Pant 动画Clip) │ 硬直结束 [FloatUp] ──▶ [P2_Idle_Float] hitCount 重置为 0 ══════════════════════ 击败流程(任意阶段 HP 归零)══════════════════════ [Defeat_Struggle] ──挣扎结束──▶ [白屏特效] ──▶ [Defeat_Pant] ──▶ [Defeat_StandUp] ``` --- ## 状态列表 ### 战斗前 | 状态 | 标识符 | 动画类型 | 说明 | |----------|---------------|--------|------------------------------| | 剧情待机 | Dialogue_Idle | 循环 | 战斗前剧情对话时的站立待机动作 | | 登场 | Appear | 单次 | 捂脸喘息后爆发吼叫;结束后进入 P1_Idle | ### Phase 1 | 状态 | 标识符 | 动画类型 | 说明 | |----------|----------------|------|----------------------------------| | 战斗待机 | P1_Idle | 循环 | 折扇在胸前优雅扇风 | | 移动 | P1_Move | 循环 | 快速踱步,向玩家方向靠近 | | 回旋扇发生 | Skill_Boomerang_Start | 单次 | 向前投掷折扇(手中扇子消失,程序生成弹道) | | 回旋扇持续 | Skill_Boomerang_Loop | 循环 | 手伸出等待扇子飞回 | | 回旋扇收尾 | Skill_Boomerang_End | 单次 | 接回扇子(手中出现扇子) | | 挥扇三连 | Skill_FanCombo | 单次 | 三连近身攻击(第1、2击为挥舞动作,第3击为旋转身体后用扇子捅刺) | | 小龙卷 | Skill_TornadoSmall | 单次 | 由内向外挥扇,召唤左右两道小龙卷 | | 大龙卷 | Skill_TornadoLarge | 单次 | 单手举高挥扇,在玩家当前位置召唤细长龙卷 | ### 阶段切换 | 状态 | 标识符 | 动画类型 | 说明 | |--------|----------------|------|-----------------------------------------------| | 转二阶段 | PhaseTransition | 单次 | 周围气流爆发,身体漂浮升空;**垂直位移由程序 Tween 控制,动画只做原地姿态** | ### Phase 2 | 状态 | 标识符 | 动画Clip名 | 动画类型 | 说明 | |----------|------------------------|-----------------------------|------|-------------------------------------------------| | 空中待机 | P2_Idle_Float | P2_Idle_Float(需美术专门制作) | 循环 | 漂浮在空中;⚠️ 需策划确认是否复用 Phase 1 待机动画 | | 风石蓄力 | Skill_WindStone_Charge | Skill_WindStone_Charge | 单次 | 收拢扇子并单手举高 | | 风石引导 | Skill_WindStone_Loop | Skill_WindStone_Loop | 循环 | 手举高扇子,引导施法;此帧特效引导线**实时追踪**玩家位置 | | 风石发生 | Skill_WindStone_Release | Skill_WindStone_Release | 单次 | 用力挥下扇子;**落点在 Loop→Release 切换瞬间锁定** | | 空中受击 | Knockdown_Hit | Knockdown_Hit | 单次 | 被玩家击中足够次数后在空中的明显受击动作;**打断当前任意 Phase 2 状态** | | 掉落 | Fall_Down | Fall_Down | 循环 | 从空中向下掉落;**垂直位移由程序控制,动画只做原地姿态** | | 落地硬直 | Stagger | Defeat_Pant(复用,同一Clip) | 循环 | 跪地喘息,可受击窗口;**直接复用击败流程 Defeat_Pant 同一动画Clip** | | 浮起 | FloatUp | — | — | 程序控制漂浮回空中,hitCount 重置为 0;可无专用动画 | ### 击败流程 | 状态 | 标识符 | 动画类型 | 说明 | |----------|----------------|------|-------------------------------------------| | 挣扎 | Defeat_Struggle | 循环 | HP 归零触发,僵直挣扎,身上黑气向外消散,持续固定时间 | | 白屏特效 | — | — | 程序触发全屏白色闪光,衔接后续动画 | | 喘息跪地 | Defeat_Pant | 循环 | 白屏结束后单膝跪地喘息 | | 站起 | Defeat_StandUp | 单次 | 从跪地过渡到站立(衔接后续剧情/结算) | --- ## AI 行为逻辑 ### Phase 1 决策循环 ``` [P1_Idle](决策节点,每次技能结束后回到此处) │ ├── 检测玩家位置与距离 │ ├── 玩家距离 > 近战阈值 → P1_Move(靠近) │ └── 玩家在攻击范围内 → 技能选择 │ └── 技能选择(基于 CD 轮转 + 随机权重,建议策划配置) ├── 回旋扇(Boomerang):中远距离;向前投掷弹道 ├── 挥扇三连(FanCombo):近距离;三段近程 ├── 小龙卷(TornadoSmall):任意距离;对称双侧弹道 └── 大龙卷(TornadoLarge):中远距离;玩家当前位置落点 注:玩家跳跃到身后时应插入朝向检测 → 翻转 Sprite,无需专用转身动画(Phase 1) ``` ### Phase 2 决策循环 ``` [P2_Idle_Float](漂浮待机) │ ├── 风石 CD 未冷却 → 保持漂浮 └── 风石 CD 冷却完毕 → Skill_WindStone_Charge → Loop → Release 同时: 每帧检测玩家是否在空中 → 开放空中受击计数 玩家空中攻击命中嘲风 → hitCount++ hitCount ≥ knockdownThreshold → 触发击落流程(详见特殊机制) ``` --- ## 技能规格 ### Skill_Boomerang — 回旋扇 | 字段 | 值 | |----------|------------------------------------------------------| | 技能类型 | 投掷弹道(往返) | | 弹道对象 | 程序生成扇子弹道(动画手中扇子消失,弹道独立 GameObject) | | 飞行方向 | 向前水平飞出,到达最远距离或边界后原路返回 | | 速度 | 可配置(去程速度 / 回程速度) | | 伤害判定 | 去程 + 回程均造成伤害,每段触发一次(同一玩家不重复计算) | | 回程结束 | 扇子飞回嘲风手中 → 触发 Skill_Boomerang_End 动画(手中出现扇子) | | 扇子旋转特效 | ⚠️ **需美术提供独立旋转动画资源**(需求表注明"单独做一个扇子原地旋转的弹道动画");弹道 GameObject 挂载此 Animation Clip 循环播放,非纯程序旋转 | ### Skill_FanCombo — 挥扇三连 | 字段 | 值 | |----------|------------------------------------------| | 技能类型 | 近程三段连击 | | 攻击段数 | 3 段(第 1、2 段:挥舞扇子;第 3 段:旋转身体后用扇子捅刺) | | 每段伤害 | 可独立配置(第 3 段建议伤害略高) | | 攻击范围 | 前方扇形/矩形碰撞盒,各段可配置不同尺寸;⚠️ 第 3 段"旋转身体"动作是否覆盖身体后方攻击范围,**需策划确认是否开启后方碰撞盒** | | 中断逻辑 | 连击为单次动画,不可中断;受击时无打断效果(Boss 无打断) | ### Skill_TornadoSmall — 小龙卷 | 字段 | 值 | |----------|-----------------------------------------------------| | 技能类型 | 对称双侧飞行弹道 | | 生成数量 | 2 个(左侧 + 右侧各 1 个,以嘲风为中心同时生成) | | 弹道方向 | 向左 / 向右水平飞出 | | 形状 | 倒三角形(宽底在上,尖端在下) | | 特性 | **玩家可跳跃越过**(碰撞盒高度不超过玩家起跳高度,建议策划配置高度) | | 速度 | 可配置 | | 伤害判定 | 飞行途中持续判定,每帧或间隔帧触发(建议间隔,避免帧率影响) | ### Skill_TornadoLarge — 大龙卷 | 字段 | 值 | |----------|---------------------------------------------| | 技能类型 | 定点召唤持续伤害区域 | | 落点 | **玩家施法时当前位置**(动画起手帧锁定玩家坐标) | | 形状 | 细长柱状(上下等宽,区别于小龙卷) | | 持续时间 | 可配置 | | 伤害判定 | 存在期间持续判定 | | 警示机制 | 建议在召唤前于落点显示预警特效(策划确认是否需要) | ### Skill_WindStone — 风石(Phase 2 专属) | 字段 | 值 | |----------|------------------------------------------------------| | 技能类型 | 追踪引导 → 定点落体 | | 引导阶段 | Skill_WindStone_Loop 期间,特效引导线实时追踪玩家位置 | | 落点锁定 | 引导结束(Skill_WindStone_Release 帧)时锁定玩家当前位置 | | 落下对象 | 巨大风石 GameObject,程序控制下落速度 | | 落地效果 | 砸地冲击波范围伤害 + 震动反馈 | | 伤害判定 | 落地帧触发圆形范围判定(半径可配置) | | 引导时长 | 可配置(引导时间越长给玩家预判越多) | --- ## 特殊机制 ### 阶段切换机制 ``` 触发条件:HP ≤ PhaseThreshold(百分比,策划配置) 流程: 1. 强制终止当前技能,进入 PhaseTransition 状态 2. 播放气流爆发特效 3. 程序 Tween 控制嘲风 Y 轴位移(从地面升至空中高度 H) 4. 动画播放原地漂浮姿态 5. 达到目标高度后切换至 P2_Idle_Float,激活 Phase 2 AI 注:阶段切换期间嘲风无敌(关闭受击碰撞盒) ``` ### 击落机制(Phase 2) ``` 条件:玩家在空中(isGrounded == false)攻击命中嘲风 计数:hitCount 累计(不限攻击方式) 阈值:knockdownThreshold(策划配置,建议 5–10 次) 触发后: 1. 播放 Knockdown_Hit 动画(嘲风空中受击) 2. 程序控制嘲风 Y 轴下落(Tween 或物理) 3. 落地时播放 Fall_Down 动画(原地) 4. 进入 Stagger(硬直可受击窗口,时长策划配置) 5. 硬直结束 → 程序控制嘲风浮回空中 6. hitCount 重置为 0 注: - 落地后 Stagger 期间为脆弱窗口,不执行任何技能 - hitCount 重置时机:浮回空中完成后(非击落完成后) - ⚠️ **待确认**:击落计数是否可以打断 Skill_WindStone_Charge/Loop/Release 施法中的嘲风? - 方案 A:打断(hitCount 阈值高优先级,任意时机生效) - 方案 B:不打断(Skill_WindStone 期间屏蔽计数,施法后再检测) - 当前文档按"方案 A(任意状态均可打断)"处理,如需方案 B 请通知程序 ``` ### 嘲风受击(一般) - Phase 1:正常受击动画(**需求表无专用受击动画**,建议通用 Hit Flash + 镜头轻微抖动;策划可确认是否额外添加 Boss 专用受击动作) - Phase 2 空中:普通攻击命中累计计数,不打断技能(攻击不影响技能流程,仅计数) --- ## 技术备注 1. **位移控制分离**:PhaseTransition 升空、Fall_Down 坠落、FloatUp 浮起均由程序 Tween(建议使用 DOTween)控制 Y 轴位移;动画 Animator 只控制姿态,**不含位移曲线**。 2. **弹道生成**: - 回旋扇:在 Skill_Boomerang_Start 动画的"扇子离手"帧(AnimationEvent)实例化弹道,同帧关闭嘲风手部扇子 Sprite。 - 小/大龙卷:在技能发生帧(AnimationEvent)于指定位置 Spawn 龙卷 GameObject。 3. **技能 CD 与权重**:所有技能的冷却时间、选择权重统一放入 `BossDataSO`(ScriptableObject),禁止硬编码。 4. **阶段 HP 阈值**:建议在 `BossHealthComponent` 中注册事件,HP 到达阈值时广播 `OnPhaseChanged(2)` 事件,由状态机监听处理。 5. **击败流程锁定**:进入 `Defeat_Struggle` 后,关闭所有 AI、受击碰撞盒,直到 `Defeat_StandUp` 播放完毕后再派发 `BossDefeated` 事件。 6. **剧情衔接**:`Appear` 和 `Defeat_StandUp` 动画结束后通过事件系统(`BaseGames.Core.Events`)通知剧情系统,不在 Boss 本体内耦合剧情逻辑。 7. **音效/特效调用**:所有音效和特效均通过 AnimationEvent 调用,事件参数传递 key 字符串,由 VFXManager / AudioManager 统一管理。 --- ## 快速参数表(策划待填写) | 参数名 | 说明 | 默认值(待确认) | |--------------------------|------------------------|----------| | `phaseThreshold` | 阶段切换 HP 百分比 | 50% | | `knockdownThreshold` | 触发击落所需空中命中次数 | 8 | | `staggerDuration` | 落地硬直时长(秒) | 3.0 | | `boomerangSpeed` | 回旋扇飞行速度 | — | | `boomerangMaxRange` | 回旋扇最远飞行距离 | — | | `tornadoSmallSpeed` | 小龙卷飞行速度 | — | | `tornadoSmallHeight` | 小龙卷碰撞盒高度(玩家可跳越) | — | | `tornadoLargeDuration` | 大龙卷持续时间(秒) | — | | `windStoneGuideTime` | 风石引导时长(秒) | — | | `windStoneImpactRadius` | 风石落地冲击范围半径 | — | | `floatHeight` | Phase 2 漂浮高度(单位:场景单位) | — | | `floatRiseDuration` | 升空动画时长(秒) | — | | `floatFallDuration` | 击落后坠落时长(秒) | — |