docs(game): 建立游戏设计文档规范并迁移重写 Docs/Game 设计文档

- 新增 Docs/Standards/GameDesignDocSpec.md:目录结构/通用文档头/六类分节/命名编号/交叉引用/禁参考游戏字样
- Docs/Game 按类别重组:总览/主角/敌人(小怪+Boss)/NPC/系统/剧情 + _Templates 模板
- 小怪 E001-E006、嘲风:程序文档+动作需求表合并为单份综合文档
- 其余 7 Boss 迁移设计层内容,程序/动画/数值节标注待补充
- 主角能力设定清除全部外部游戏参考字样并修正 OCR 乱码
- 删除 参考/ 原始文档(已忠实重写,原件保留于 git 历史)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-07-21 15:42:33 +08:00
co-authored by Claude Opus 4.8
parent 94bbf3acf2
commit b4379db5de
41 changed files with 3343 additions and 1874 deletions
+114
View File
@@ -0,0 +1,114 @@
# E001 草蛭
| 项 | 值 |
|------|------|
| 文档类型 | 小怪 |
| 版本 | v1.0 |
| 更新日期 | 2026-07-21 |
| 状态 | 进行中 |
| 负责模块 | `BaseGames.Enemies.AI` / `ENM_` 资产 |
| 关联文档 | [敌人总览](../敌人总览.md) |
---
## 概述
| 字段 | 内容 |
|------|------|
| 编号 | E001_CaoZhi |
| 类别 | 小怪 |
| 行动方式 | 地面爬行 |
| 核心机制 | 伪装待机 → 发现玩家 → 追击攻击;具备侦测范围触发开关 |
| 形象设定 | 蛭妖中底层的小妖,长期生活在阴暗井底,背上长有发着微光的菌类植物,身上有滑溜溜的黏液;平时蜷缩成一团伪装自己,察觉猎物后张开血盆大口匍匐前进 |
---
## 状态机
```
[Idle_Disguise] ──感知玩家──▶ [Skill_Start]
[Skill_Loop] ──丢失目标──▶ [Skill_End] ──▶ [Move_Patrol]
受到足够伤害
[Death]
[Move_Patrol] ──感知玩家──▶ [Skill_Start]
[Move_Patrol] ──到达边界──▶ [Flip] ──▶ [Move_Patrol]
```
| AI 状态标识符 | 动画 Clip 名 | 类型 | 说明 |
|--------------|-------------|------|------|
| Idle_Disguise | Idle | 循环 | 蜷缩在地面,外观似带植物的石头;每隔随机时间轻微抽搐一次 |
| Move_Patrol | Move | 循环 | 低速爬行巡逻,可在平台边缘翻转 |
| Flip | Flip | 单次 | 转向后衔接 Move_Patrol |
| Skill_Start | Skill_Start | 单次 | 张口,覆盖口水粒子特效,切换至追击状态 |
| Skill_Loop | Skill_Loop | 循环 | 快速爬行追击玩家 |
| Skill_End | Skill_End | 单次 | 收回尖牙,切换回巡逻 |
| Death | Death | 单次 | 身躯干瘪死亡,播放后移除 GameObject |
---
## AI 行为
```
感知条件:视线检测 OR 碰撞触发区(圆形半径建议可配置)
├── 未感知玩家 → Idle_Disguise(默认)或 Move_Patrol(已激活后丢失目标)
└── 感知玩家
├── 进入 Skill_Start(一次性播放)
└── 追击 Skill_Loop,速度:[追击速度] > [巡逻速度]
├── 追击途中碰到玩家 → 造成接触伤害(持续判定)
└── 超出感知范围 → Skill_End → Move_Patrol
注:E001 无主动技能 CD;再次进入感知范围立即触发追击
```
---
## 技能规格
| 技能 | 触发条件 | 伤害类型 | 攻击范围 | 备注 |
|------|----------|----------|----------|------|
| 追击啃咬 | 进入感知范围 | 接触伤害 | 自身碰撞体(Collider | Skill_Loop 期间碰撞盒始终开启;无弹道,纯移动追击 |
---
## 动画需求
| 动作类别 | 命名 | 动画类型 | 描述 | 帧数 | 图片参考 |
|----------|------|----------|------|------|----------|
| 待机 | Idle | 循环 | 静止于地面,每过一段时间轻微抽搐一下(身体蜷缩、牙齿隐藏,伪装成长有植物的石头) | — | — |
| 行走 | Move | 循环 | 慢速爬行巡逻 | — | — |
| 转身 | Flip | 单次 | 转身衔接动作 | — | — |
| 技能开始 | Skill_Start | 单次 | 发现目标后张开大口(瞬间有口水粘液溅出),身体打开,准备前进 | — | — |
| 技能持续 | Skill_Loop | 循环 | 身体一缩一缩持续爬向目标 | — | — |
| 技能结束 | Skill_End | 单次 | 丢失目标后略微收起张开的尖牙,切换到慢速巡逻 | — | — |
| 死亡 | Death | 单次 | 身躯干瘪死亡 | — | — |
---
## 数值参数表
| 参数名 | 说明 | 参考值 |
|--------|------|--------|
| `maxHP` | 最大生命值 | — |
| `moveSpeed` | 巡逻速度 | — |
| `chaseSpeed` | 追击速度(Skill_Loop 期间) | — |
| `detectRadius` | 感知触发半径 | — |
| `contactDamage` | 接触伤害值 | — |
---
## 技术备注
- Idle 伪装期间建议关闭 NavAgent / 移动组件,仅保留感知触发器。
- 追击速度、感知范围、伪装抽搐间隔建议通过 ScriptableObject 配置。
- 死亡无专用受击-死亡过渡动画,HP ≤ 0 直接播放 Death。
---
## 修订记录
| 版本 | 日期 | 修改内容 | 修改人 |
|------|------|----------|--------|
| 1.0 | 2026-07-21 | 由《小怪设计-程序开发文档-01》与《动作需求表-01》合并为综合文档 | — |
+110
View File
@@ -0,0 +1,110 @@
# E002 簧蛭
| 项 | 值 |
|------|------|
| 文档类型 | 小怪 |
| 版本 | v1.0 |
| 更新日期 | 2026-07-21 |
| 状态 | 进行中 |
| 负责模块 | `BaseGames.Enemies.AI` / `ENM_` 资产 |
| 关联文档 | [敌人总览](../敌人总览.md) |
---
## 概述
| 字段 | 内容 |
|------|------|
| 编号 | E002_HuangZhi |
| 类别 | 小怪(陷阱型) |
| 行动方式 | **固定位置**,无法移动 |
| 核心机制 | 藏于天花板 → 玩家经过检测区 → 钻出啃咬 → 悬挂可受击窗口 → 缩回 |
| 形象设定 | 无法移动的陷阱型小怪,像弹簧一样可伸缩身体,平时收缩在上方岩壁中,发现猎物经过则钻出啃咬 |
---
## 状态机
```
[Idle_Hidden] ──玩家进入触发区──▶ [Skill_Start]
[Skill_Loop] (悬挂,可受击)
冷却结束 / 玩家离开
[Skill_End] ──▶ [Idle_Hidden]
[任意状态] ──HP归零──▶ [Death]
```
| AI 状态标识符 | 动画 Clip 名 | 类型 | 说明 |
|--------------|-------------|------|------|
| Idle_Hidden | Idle | 循环 | 岩壁上仅露出头部剪影,间歇蠕动 |
| Skill_Start | Skill_Start | 单次 | 从岩壁钻出,身躯拉伸甩动,造成伤害 |
| Skill_Loop | Skill_Loop | 循环 | 身体悬挂岩壁轻微晃动;**此阶段碰撞盒开放,可被玩家攻击** |
| Skill_End | Skill_End | 单次 | 缩回岩壁,过渡到 Idle |
| Death | Death | 单次 | 爆体溅出黏液,留下短截身体悬挂,关闭碰撞 |
---
## AI 行为
```
持续检测正下方(矩形感知区,宽度略大于自身碰撞体宽度)
├── 玩家未进入 → Idle_Hidden(冷却计时重置)
└── 玩家进入触发区 AND 当前为 Idle_Hidden
├── 进入 Skill_Start:向下延伸,开启攻击碰撞盒
├── Skill_Start 播放完毕 → Skill_Loop(悬挂)
│ ├── 悬挂持续时间到 → Skill_End → Idle_Hidden(进入冷却)
│ └── HP 归零 → Death
└── 冷却期间玩家再次进入触发区:忽略(等待冷却结束)
```
---
## 技能规格
| 技能 | 触发条件 | 伤害类型 | 攻击范围 | 攻击次数 | 备注 |
|------|----------|----------|----------|----------|------|
| 钻出啃咬 | 玩家进入正下方感知区 | 瞬时伤害 | Skill_Start 期间碰撞盒 | 1 次 | 悬挂期无攻击判定,仅可受击 |
---
## 动画需求
| 动作类别 | 命名 | 动画类型 | 描述 | 帧数 | 图片参考 |
|----------|------|----------|------|------|----------|
| 待机 | Idle | 循环 | 躲藏在岩壁上方,只露出一点头部剪影,间隔一段时间可见略微蠕动 | — | — |
| 技能发生 | Skill_Start | 单次 | 从岩壁钻出啃咬对方,表现钻出后身躯变形和甩动的张力 | — | — |
| 技能持续 | Skill_Loop | 循环 | 攻击结束后一小段时间身体悬挂岩壁轻微晃动(此时可被玩家攻击) | — | — |
| 技能收尾 | Skill_End | 单次 | 将身体缩回岩壁 | — | — |
| 死亡 | Death | 单次 | 身体爆开,飞溅出少量黏液,留下一小截身躯悬挂 | — | — |
---
## 数值参数表
| 参数名 | 说明 | 参考值 |
|--------|------|--------|
| `maxHP` | 最大生命值 | — |
| `attackDamage` | 钻出啃咬伤害值 | — |
| `hangDuration` | Skill_Loop 悬挂时长(秒) | — |
| `cooldownDuration` | 缩回后进入下次攻击的冷却(秒) | — |
| `detectWidth` | 感知区水平宽度 | — |
---
## 技术备注
- 固定于特定平台点位,不需要 NavAgent。
- Skill_Loop 期间:攻击碰撞盒关闭,受击碰撞盒开启(可被玩家攻击)。
- 悬挂时长、冷却时长建议 ScriptableObject 配置。
- 死亡后保留部分身体 Sprite(不完全消除),可用单独的静态 Sprite 替换。
---
## 修订记录
| 版本 | 日期 | 修改内容 | 修改人 |
|------|------|----------|--------|
| 1.0 | 2026-07-21 | 由程序开发文档与动作需求表合并为综合文档 | — |
+111
View File
@@ -0,0 +1,111 @@
# E003 幼蛭
| 项 | 值 |
|------|------|
| 文档类型 | 小怪 |
| 版本 | v1.0 |
| 更新日期 | 2026-07-21 |
| 状态 | 进行中 |
| 负责模块 | `BaseGames.Enemies.AI` / `ENM_` 资产 |
| 关联文档 | [敌人总览](../敌人总览.md) · [E005_肥蛭](E005_肥蛭.md) |
---
## 概述
| 字段 | 内容 |
|------|------|
| 编号 | E003_YouZhi |
| 类别 | 小怪(一击即死) |
| 行动方式 | 天花板吸附 → 掉落地面 → 地面爬行 |
| 核心机制 | 两种出现方式:① 场景预置于天花板,战斗触发后掉落;② 由 E005 肥蛭死亡时 Spawn;极低生命值,一击即死 |
| 形象设定 | 蛭妖的幼虫形态,最底层最脆弱的小妖,以极其缓慢的速度爬行 |
---
## 状态机
```
[Idle_Ceiling] ──战斗区域激活──▶ [Fall] ← 场景预置路径
[Spawn_Point] ──肥蛭死亡生成──▶ [Fall] ← 肥蛭生成路径
落地检测
[Move] ──感知玩家──▶ [Skill]
[Move] ◀──丢失目标────┘
[任意状态] ──HP归零──▶ [Death]
```
| AI 状态标识符 | 动画 Clip 名 | 类型 | 说明 |
|--------------|-------------|------|------|
| Idle_Ceiling | Idle | 循环 | 吸附岩壁剪影,间歇蠕动 |
| Fall | Fall | 循环 | 旋转下落,直到落地触发 Move |
| Move | Move | 循环 | 缓慢爬行(速度为基础移动速度) |
| Skill | Skill | 循环 | 加速爬行追击(速度约 1.5× Move 速度),碰到玩家造成伤害 |
| Death | Death | 单次 | 溅出少量酸液,身体干瘪,一击即死 |
---
## AI 行为
```
生成时默认处于 Idle_Ceiling
战斗区域激活 / 被生成 → Fall(重力控制,不受玩家输入影响)
落地 →
├── 感知玩家 → Skill(追击)
│ ├── 接触玩家 → 造成伤害
│ └── 丢失玩家 → Move(巡逻)
└── 未感知玩家 → Move
```
---
## 技能规格
| 技能 | 触发条件 | 伤害类型 | 攻击范围 | 备注 |
|------|----------|----------|----------|------|
| 快速追击 | 感知玩家 | 接触伤害 | 自身碰撞体 | 一击即死(HP=1) |
---
## 动画需求
| 动作类别 | 命名 | 动画类型 | 描述 | 帧数 | 图片参考 |
|----------|------|----------|------|------|----------|
| 待机 | Idle | 循环 | 吸附在岩壁上方的待机,以时不时轻微蠕动的黑色剪影表现 | — | — |
| 掉落 | Fall | 循环 | 进入战斗状态后从空中掉落,画出身子转动掉落的效果 | — | — |
| 移动 | Move | 循环 | 掉到地面后缓慢爬行 | — | — |
| 技能 | Skill | 循环 | 发现目标后加速爬向对方(比自身移动快一些,相比其他小怪依旧较慢) | — | — |
| 死亡 | Death | 单次 | 被一击即死,溅出少量酸液,身体干瘪 | — | — |
---
## 数值参数表
| 参数名 | 说明 | 参考值 |
|--------|------|--------|
| `maxHP` | 最大生命值(一击即死=1) | 1 |
| `moveSpeed` | 落地后爬行速度 | — |
| `chaseSpeed` | 追击速度 | — |
| `detectRadius` | 感知半径 | — |
| `contactDamage` | 接触伤害值 | — |
---
## 技术备注
- Fall 阶段建议使用 Rigidbody 物理重力,不做路径导航。
- 一击即死:HP 设为 1,任意来源伤害均触发 Death。
- **出现方式双路支持**
- 预置路径:在关卡中放置 Idle_Ceiling 实例,战斗区域触发时激活 Fall。
- 生成路径:由 E005 肥蛭死亡时调用 `SpawnEnemy(E003, position, count)` 生成,生成后直接进入 Fall 状态。
---
## 修订记录
| 版本 | 日期 | 修改内容 | 修改人 |
|------|------|----------|--------|
| 1.0 | 2026-07-21 | 由程序开发文档与动作需求表合并为综合文档 | — |
+162
View File
@@ -0,0 +1,162 @@
# E004 蛭母
| 项 | 值 |
|------|------|
| 文档类型 | 小 BOSS |
| 版本 | v1.0 |
| 更新日期 | 2026-07-21 |
| 状态 | 进行中 |
| 负责模块 | `BaseGames.Enemies.AI` / `ENM_` 资产 |
| 关联文档 | [敌人总览](../敌人总览.md) |
---
## 概述
| 字段 | 内容 |
|------|------|
| 编号 | E004_ZhiMu |
| 类别 | 小 BOSS |
| 行动方式 | 地面移动 |
| 核心机制 | 有出场剧情;具备三种技能(撕咬、头槌连段、酸液远程);死亡分两阶段(死前挣扎 → 爆体消散) |
| 形象设定 | 原为侍奉天神的仆众之一,逃往人间后在下界兴风作浪、嗜血成性,被嘲风镇压于轮回之井中 |
> 蛭母即主线「普通冲刺」能力的守关者(凤仙山·轮回之井),见 [游戏总览 · 能力解锁节点](../../00_总览/游戏总览.md#能力解锁节点)。
---
## 状态机
```
[Static] ──战斗触发──▶ [Appear] ──完毕──▶ [Idle]
[Idle] ──AI 决策──┬──▶ [Skill01_Bite](撕咬)
├──▶ [Skill02_Start](头槌前摇)──▶ [Skill02_Loop]──▶ [Skill02_End]
├──▶ [Skill03_Acid](酸液喷吐)
└──▶ [Move] ──到达位置──▶ [Idle]
[Move] ──玩家跳至身后──▶ [Flip] ──▶ [Move / Idle]
[任意战斗状态] ──HP归零──▶ [Death_Pre] ──循环结束──▶ [Death]
```
| AI 状态标识符 | 动画 Clip 名 | 类型 | 说明 |
|--------------|-------------|------|------|
| Static | Static | 循环 | 战斗未触发,牙齿收拢,头部低垂 |
| Appear | Appear | 单次 | 吼叫示威,结束衔接 Idle |
| Idle | Idle | 循环 | 呼吸待机,触手轻微蠕动 |
| Move | Move | 循环 | 向玩家方向移动,调整攻击距离 |
| Flip | Flip | 单次 | 玩家绕至身后时触发 |
| Skill01_Bite | Skill01 | 单次 | 近程,头部后蓄力后前突啃咬;前摇明显 |
| Skill02_Start | Skill02_Start | 单次 | 头部蜷缩成球蓄力 |
| Skill02_Loop | Skill02_Loop | 循环 | 反复砸地(单次砸地动作循环),可配置砸地次数 |
| Skill02_End | Skill02_End | 单次 | 喘息硬直,**此阶段可受击,攻击不判定** |
| Skill03_Acid | Skill_03 | 单次 | 嘴部抖动后向上喷出多团酸液,以抛物线散落 |
| Death_Pre | Death_Pre | 循环 | HP 归零后触发,僵直挣扎;持续固定时间后衔接 Death |
| Death | Death | 单次 | 爆体,溅出黏液,消散 |
---
## AI 行为
```
战斗循环(Idle 为决策节点):
1. 检测玩家距离
├── 玩家超出近战范围 → Move(靠近)
└── 玩家在近战范围内 → 技能选择
2. 技能选择(权重/CD 轮转,建议策划可配置):
├── Skill01(撕咬):玩家在近距离且正面 → 近程突刺伤害;CD:[skill01CD] 秒
├── Skill02(头槌):玩家在近中距离 → 多次砸地造成范围震地伤害;CD:[skill02CD] 秒
└── Skill03(酸液):玩家距离较远/刚进入战斗 → 向玩家位置抛出多颗酸液弹;CD:[skill03CD] 秒
3. 玩家绕后(跳跃至蛭母身后)→ 优先插入 Flip,仅从 Idle 或 Move 状态触发
⚠️ 注:Flip 不可打断正在施放的技能
```
---
## 技能规格
### Skill01 — 撕咬
| 字段 | 值 |
|------|------|
| 攻击类型 | 近程瞬时 |
| 攻击范围 | 头部前方碰撞盒(宽×高可配置) |
| 伤害帧 | 动作到达最前伸位置时判定(单帧) |
| 前摇 | 较大(动画帧数见动画需求) |
| 硬直(玩家) | 策划配置 |
### Skill02 — 头槌
| 字段 | 值 |
|------|------|
| 攻击类型 | 范围震地 |
| 伤害范围 | 砸地落点附近圆形/矩形区域(建议策划配置半径) |
| 砸地次数 | 可配置(建议 2–4 次) |
| 每次间隔 | 由 Skill02_Loop 动画帧率决定 |
| 硬直窗口 | Skill02_End 阶段为硬直,期间关闭攻击盒、开放受击 |
### Skill03 — 酸液喷吐
| 字段 | 值 |
|------|------|
| 攻击类型 | 远程抛物弹道 |
| 弹数 | 多颗(可配置,建议 3–5 颗) |
| 落点分布 | 以玩家当前位置为中心,向两侧随机偏移散布(建议策划配置范围) |
| 弹道 | 抛物线(设置初速度与重力系数即可) |
| 落地效果 | 酸液溅射粒子 + 落地持续伤害区(建议策划决定是否留存伤害区域) |
---
## 动画需求
| 动作类别 | 命名 | 动画类型 | 描述 | 帧数 | 图片参考 |
|----------|------|----------|------|------|----------|
| 静止 | Static | 循环 | 战斗触发前的休眠静止,牙齿嘴部蜷缩、头部低垂 | 1 | — |
| 出场 | Appear | 单次 | 登场吼叫示威,由静止开始,结束衔接战斗待机 | — | — |
| 待机 | Idle | 循环 | 战斗中呼吸待机,身上触手轻微蠕动 | — | — |
| 移动 | Move | 循环 | 挪动身子向前移动,调整战斗身位 | — | — |
| 转身 | Flip | 单次 | 玩家跳至身后时的转身衔接 | — | — |
| 撕咬(Skill01 | Skill01 | 单次 | 头部向后蓄力后突然前伸啃咬前方目标,前摇较大 | — | — |
| 头槌前摇 | Skill02_Start | 单次 | 牙齿紧闭头部缩成圆球,蓄力准备砸地 | — | — |
| 头槌循环 | Skill02_Loop | 循环 | 反复用头撞地(做单次砸地即可),可画出身体拉扯表现力量感 | — | — |
| 头槌结束 | Skill02_End | 单次 | 技能后的疲惫喘息硬直 | — | — |
| 酸液(Skill03 | Skill_03 | 单次 | 嘴巴抖动后向上喷吐若干团状酸液,抛物线散落 | — | — |
| 死亡前挣扎 | Death_Pre | 循环 | 死亡前的僵直挣扎,持续一段时间 | — | — |
| 死亡 | Death | 单次 | 身体爆开溅出黏液,随即消散死亡 | — | — |
---
## 数值参数表
| 参数名 | 说明 | 参考值 |
|--------|------|--------|
| `maxHP` | 最大生命值 | — |
| `moveSpeed` | 移动速度 | — |
| `detectRange` | 感知距离 | — |
| `skill01Damage` | 撕咬伤害 | — |
| `skill01CD` | 撕咬冷却(秒) | — |
| `skill02HitCount` | 头槌砸地次数 | — |
| `skill02Damage` | 每次头槌伤害 | — |
| `skill02CD` | 头槌冷却(秒) | — |
| `skill02StaggerDuration` | Skill02_End 硬直时长 | — |
| `skill03Count` | 酸液弹数 | — |
| `skill03Damage` | 每颗酸液伤害 | — |
| `skill03CD` | 酸液冷却(秒) | — |
---
## 技术备注
- Appear 动画播放期间暂停 AI,完成后激活战斗循环。
- 技能 CD 和选择权重建议独立 ScriptableObject 配置。
- Death_Pre 结束后短暂白屏/闪光特效,再播放 Death。
- 转身(Flip)需检测玩家相对朝向,仅在 Idle / Move 状态下每帧检测,技能执行中不检测。
---
## 修订记录
| 版本 | 日期 | 修改内容 | 修改人 |
|------|------|----------|--------|
| 1.0 | 2026-07-21 | 由程序开发文档与动作需求表合并为综合文档 | — |
+134
View File
@@ -0,0 +1,134 @@
# E005 肥蛭
| 项 | 值 |
|------|------|
| 文档类型 | 精英怪 |
| 版本 | v1.0 |
| 更新日期 | 2026-07-21 |
| 状态 | 进行中 |
| 负责模块 | `BaseGames.Enemies.AI` / `ENM_` 资产 |
| 关联文档 | [敌人总览](../敌人总览.md) · [E003_幼蛭](E003_幼蛭.md) |
---
## 概述
| 字段 | 内容 |
|------|------|
| 编号 | E005_FeiZhi |
| 类别 | 精英怪 |
| 行动方式 | 地面移动(移动缓慢,体型大) |
| 核心机制 | 死亡时在原位生成若干 E003 幼蛭;具备近程撕咬和远程酸液两种技能 |
| 形象设定 | 体型肥硕的蛭妖,死亡后尸体会爆出若干幼蛭 |
---
## 状态机
```
[Idle] ──AI决策──┬──▶ [Move] ──到达位置──▶ [Idle]
├──▶ [Skill01_Bite](撕咬)──▶ [Idle]
└──▶ [Skill02_Acid](酸液)──▶ [Idle]
[任意战斗状态] ──HP归零──▶ [Death_Pre] ──播放完毕──▶ [Death](生成幼蛭 + 爆体)
```
| AI 状态标识符 | 动画 Clip 名 | 类型 | 说明 |
|--------------|-------------|------|------|
| Idle | Idle | 循环 | 呼吸待机 |
| Move | Move | 循环 | 肥硕扭动,移动速度较低 |
| Skill01_Bite | Skill01 | 单次 | 近程前伸啃咬;攻击结束后有趴地硬直,再起身回 Idle |
| Skill02_Acid | Skill02 | 单次 | 连续两次吐出酸液团(逻辑上循环两次单次动画,或直接做循环动画) |
| Death_Pre | Death_Pre | 循环 | HP 归零后触发,肚子膨胀蠕动,表现有东西即将钻出 |
| Death | Death | 单次 | 肚子爆开,溅出酸液,同时 Spawn 幼蛭 |
---
## AI 行为
```
战斗循环:
检测玩家距离
├── 远距离 → Skill02(酸液远程攻击)或 Move 靠近;CD[skill02CD] 秒
└── 近距离 → Skill01(撕咬);CD[skill01CD] 秒
死亡触发(特殊):
HP ≤ 0 → Death_Pre → Death
Death 动画关键帧事件(AnimationEvent)触发:
SpawnEnemies(E003_YouZhi, count=策划配置, position=自身位置)
```
---
## 技能规格
### Skill01 — 撕咬
| 字段 | 值 |
|------|------|
| 攻击范围 | 头部前方碰撞盒 |
| 伤害帧 | 最前伸位置单帧判定 |
| 后摇 | 趴地硬直后自动起身(硬直时长可配置,期间可受击,逻辑同 E004 Skill02_End |
### Skill02 — 酸液喷吐
| 字段 | 值 |
|------|------|
| 弹数 | 2 次(每次一团) |
| 弹道 | 抛物线,落点为玩家方向前方(建议有随机偏移) |
| 落地效果 | 酸液溅射粒子(策划决定是否留持续伤害区) |
### 死亡生成幼蛭
| 字段 | 值 |
|------|------|
| 触发时机 | Death 动画指定帧(AnimationEvent |
| 生成数量 | 可配置(建议 2–4 只) |
| 生成位置 | 自身位置 ± 随机小偏移 |
---
## 动画需求
| 动作类别 | 命名 | 动画类型 | 描述 | 帧数 | 图片参考 |
|----------|------|----------|------|------|----------|
| 待机 | Idle | 循环 | 静止时的呼吸待机 | — | — |
| 移动 | Move | 循环 | 扭动肥硕的身躯移动,表现行动艰难 | — | — |
| 撕咬(Skill01 | Skill01 | 单次 | 蓄力后前伸啃咬目标,因身躯肥大有较大趴地僵直,之后起身回待机 | — | — |
| 酸液(Skill02 | Skill02 | 单次 | 连续两次吐出一团酸液成抛物线攻击(只需画单次动作) | — | — |
| 死亡前挣扎 | Death_Pre | 循环 | 死亡时挣扎僵直,肚子里即将有东西钻出的感觉 | — | — |
| 死亡 | Death | 单次 | 肚子爆开、酸液溅出,同时掉落若干幼蛭(由程序实现) | — | — |
---
## 数值参数表
| 参数名 | 说明 | 参考值 |
|--------|------|--------|
| `maxHP` | 最大生命值 | — |
| `moveSpeed` | 移动速度 | — |
| `detectRange` | 感知距离 | — |
| `skill01Damage` | 撕咬伤害 | — |
| `skill01CD` | 撕咬冷却(秒) | — |
| `skill01StaggerDuration` | 撕咬后趴地硬直时长(秒) | — |
| `skill02Count` | 酸液弹数(2 次) | 2 |
| `skill02Damage` | 每次酸液伤害 | — |
| `skill02CD` | 酸液冷却(秒) | — |
| `spawnCount` | 死亡时生成幼蛭数量 | — |
---
## 技术备注
- Skill01 后摇(趴地)阶段建议关闭攻击碰撞盒、开放受击碰撞盒。
- Death_Pre 到 Death 必须完整播放,不可被打断(无敌帧)。
- 幼蛭生成逻辑建议用 AnimationEvent 调用,避免时序问题。
- ⚠️ **待策划确认**:肥蛭是否有专用 Flip(转身)动画?需求表未标注,程序暂按"无 Flip,使用 Sprite 直接翻转"处理。
---
## 修订记录
| 版本 | 日期 | 修改内容 | 修改人 |
|------|------|----------|--------|
| 1.0 | 2026-07-21 | 由程序开发文档与动作需求表合并为综合文档 | — |
+109
View File
@@ -0,0 +1,109 @@
# E006 讙
| 项 | 值 |
|------|------|
| 文档类型 | 小怪 |
| 版本 | v1.0 |
| 更新日期 | 2026-07-21 |
| 状态 | 进行中 |
| 负责模块 | `BaseGames.Enemies.AI` / `ENM_` 资产 |
| 关联文档 | [敌人总览](../敌人总览.md) |
---
## 概述
| 字段 | 内容 |
|------|------|
| 编号 | E006_Huan |
| 类别 | 小怪 |
| 行动方式 | 地面巡逻 + 跳跃突进攻击 |
| 核心机制 | 发现玩家后向前跳跃爪击;跳跃位移由程序控制,动画只做原地滞空攻击动作 |
| 形象设定 | 随处可见的小型野兽,身形似狸猫,独眼长耳,三条尾巴向上卷起 |
---
## 状态机
```
[Idle] ──感知玩家──▶ [Skill](循环,每次抵达玩家位置后判断是否继续追击)
[Idle] ──巡逻计时──▶ [Move] ──到达边界/计时结束──▶ [Flip] ──▶ [Move / Idle]
[Skill] ──丢失目标──▶ [Idle]
[任意状态] ──HP归零──▶ [Death]
```
| AI 状态标识符 | 动画 Clip 名 | 类型 | 说明 |
|--------------|-------------|------|------|
| Idle | Idle | 循环 | 静止呼吸 |
| Move | Move | 循环 | 慢步巡逻 |
| Flip | Flip | 单次 | 转向衔接 |
| Skill | Skill | 循环 | 动画做原地起跳 + 滞空爪击动作;程序负责在起跳时给予水平方向速度(向玩家方向冲刺) |
| Death | Death | 单次 | 四肢瘫软倒地 |
---
## AI 行为
```
感知条件:视线检测(正面范围扇形)
├── 未感知 → Move 巡逻 / Idle 间歇站立
└── 感知玩家
├── 进入 Skill:起跳前摇帧触发水平速度(程序施加冲量)
├── 滞空到达玩家附近或落地 → 造成伤害判定
└── 落地后:
├── 玩家仍在感知范围 → 等待 [attackInterval] 秒 → 再次 Skill
└── 玩家离开范围 → 回到 Idle
⚠️ 落地后无专用着地动画(需求表未标注),程序直接切回 Idle 或 Move
```
---
## 技能规格
| 技能 | 触发条件 | 伤害类型 | 攻击范围 | 备注 |
|------|----------|----------|----------|------|
| 跳跃爪击 | 感知玩家 | 瞬时伤害 | 爪部碰撞盒(滞空期间开启) | 动画仅原地,程序在动画起跳帧给 Rigidbody 施加水平冲量 |
---
## 动画需求
| 动作类别 | 命名 | 动画类型 | 描述 | 帧数 | 图片参考 |
|----------|------|----------|------|------|----------|
| 待机 | Idle | 循环 | 静止时的呼吸待机 | — | — |
| 移动 | Move | 循环 | 日常巡逻时慢步走动 | — | — |
| 转身 | Flip | 单次 | 转身衔接动作 | — | — |
| 技能 | Skill | 循环 | 发现目标后向前小跳爪击,有少许起跳前摇;动画只做原地滞空攻击,前跳位移由程序实现 | — | — |
| 死亡 | Death | 单次 | 四肢瘫软倒地(程序做尸体消散) | — | — |
---
## 数值参数表
| 参数名 | 说明 | 参考值 |
|--------|------|--------|
| `maxHP` | 最大生命值 | — |
| `moveSpeed` | 巡逻速度 | — |
| `detectRange` | 感知距离(正面扇形半径) | — |
| `jumpForceX` | 起跳水平冲量 | — |
| `jumpForceY` | 起跳垂直冲量 | — |
| `attackDamage` | 爪击伤害值 | — |
| `attackInterval` | 落地到下次起跳的间隔(秒) | — |
---
## 技术备注
- 跳跃时机:动画起跳帧(AnimationEvent)触发程序施加水平 + 垂直速度。
- 攻击碰撞盒仅在滞空爪击关键帧区间内开启。
- 死亡后尸体消散由程序控制(淡出/粒子),动画仅播放倒地。
- 多只讙建议使用同一 ScriptableObject 共享 AI 参数。
---
## 修订记录
| 版本 | 日期 | 修改内容 | 修改人 |
|------|------|----------|--------|
| 1.0 | 2026-07-21 | 由程序开发文档与动作需求表合并为综合文档 | — |