- Round 8 report highlights improvements in architecture, editor usability, and data robustness, with a total score of 80/100. - Round 9 report focuses on editor extension capabilities, identifying issues with room data indexing and layout editing, resulting in a score of 76/100. - Round 26 report evaluates the system against commercial standards, noting new issues and confirming previous fixes, with a score of 95.8/100.
333 lines
19 KiB
Markdown
333 lines
19 KiB
Markdown
# 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` | 击落后坠落时长(秒) | — |
|