1722 lines
43 KiB
Markdown
1722 lines
43 KiB
Markdown
# Anchor策划书1.0
|
||
|
||
## 0. 文档目标
|
||
|
||
本文档用于统一《Anchor》的核心玩法机制、系统边界、系统耦合关系、Godot 节点架构、动作规则、相位规则、敌人规则、UI 反馈、音乐音效要求与开发验收标准。
|
||
|
||
本文档只描述当前确认的游戏机制与实现结构,不包含世界观背景、剧情设定和宣传文案。
|
||
|
||
---
|
||
|
||
## 1. 游戏核心规则概述
|
||
|
||
《Anchor》是一款 **2D 节奏横板动作游戏**。
|
||
|
||
玩家没有自由移动。玩家的位置变化来自攻击、技能、浮空、击飞、击退、下坠、受击和其他动作位移。玩家通过节奏窗口输入 `A / W / S / Space`,输入先经过节奏判定,再决定动作是否执行、动作效果强弱、能量变化和四拍槽记录。
|
||
|
||
游戏中存在两种时间相位:
|
||
|
||
```text
|
||
Past
|
||
Future
|
||
```
|
||
|
||
Past 与 Future 共用同一套场地碰撞结构。相位切换只影响视觉表现、音乐层、UI 主题、敌人强弱和 Boss 状态,不改变玩家可站立区域和关卡碰撞结构。
|
||
|
||
谱面中存在普通节奏判定点,也存在特殊的 **时间锚点**。并非所有节奏判定点都是时间锚点。
|
||
|
||
普通节奏判定点只影响动作;时间锚点额外影响 Past / Future 相位。
|
||
|
||
```text
|
||
普通节奏点:用于动作输入判定。
|
||
时间锚点:用于维持或切换当前时间相位。
|
||
```
|
||
|
||
时间锚点会周期性出现,也可以由战斗条件触发。
|
||
|
||
当时间锚点出现时:
|
||
|
||
```text
|
||
玩家在锚点窗口内成功输入 Perfect / Good / Bad
|
||
→ 维持当前相位
|
||
|
||
玩家没有输入,或输入结果为 Miss
|
||
→ 切换到另一相位
|
||
```
|
||
|
||
时间锚点同时承担攻击成长功能。玩家成功锚定时间锚点时,Perfect / Good 获得 1 层攻击 Buff,Bad 只维持相位但不增加 Buff;连击数越高,时间锚点在每 4 拍窗口内出现得越密集;发生相位切换时,当前攻击 Buff 层数减少 2 层。
|
||
|
||
攻击 Buff 规则:
|
||
|
||
```text
|
||
每层攻击 Buff:攻击力 +50%
|
||
最大层数:7 层
|
||
最大攻击增幅:+350%
|
||
相位切换损失:当前层数减少 2 层,最低为 0 层
|
||
```
|
||
|
||
---
|
||
|
||
## 2. 设计原则
|
||
|
||
### 2.1 动作原则
|
||
|
||
```text
|
||
所有玩家主动行为都来自节奏输入。
|
||
所有按键先判定,再执行。
|
||
Miss 不执行动作。
|
||
Miss 写入四拍槽为 ∅。
|
||
动作位移由动作数据决定。
|
||
角色没有自由行走位移。
|
||
```
|
||
|
||
### 2.2 时间锚点原则
|
||
|
||
```text
|
||
时间锚点是特殊谱面事件,不是每个节奏点。
|
||
时间锚点不会指定玩家必须按哪个键。
|
||
玩家可以用任意当前可用输入尝试锚定。
|
||
Perfect / Good 锚定维持当前相位,并获得 1 层攻击 Buff。
|
||
Bad 锚定维持当前相位,但不增加攻击 Buff。
|
||
失败锚定切换 Past / Future。
|
||
连击数越高,时间锚点在每 4 拍窗口内出现得越密集。
|
||
时间锚点频率档位为:0-7 连击每 4 拍 1 个,8-15 连击每 4 拍 2 个,16+ 连击每 4 拍 4 个。
|
||
时间锚点频率上限是:每 4 拍内 4 个 RhythmBeat 都升级为 TimeAnchor。
|
||
```
|
||
|
||
### 2.3 相位原则
|
||
|
||
```text
|
||
Past / Future 共用同一套碰撞结构。
|
||
相位切换不改变关卡通路。
|
||
相位切换影响敌人强弱、视觉、音乐、UI。
|
||
相位切换是战斗策略,不是单纯惩罚。
|
||
```
|
||
|
||
### 2.4 Game Jam 范围原则
|
||
|
||
优先保证核心闭环:
|
||
|
||
```text
|
||
节奏判定
|
||
→ 动作执行
|
||
→ 四拍槽
|
||
→ 时间锚点
|
||
→ 相位切换
|
||
→ 敌人强弱变化
|
||
→ 双相位音乐切换
|
||
```
|
||
|
||
低优先级内容不得阻塞核心闭环完成。
|
||
|
||
---
|
||
|
||
## 3. 系统总览
|
||
|
||
### 3.1 系统列表
|
||
|
||
| 系统 | 职责 |
|
||
|---|---|
|
||
| 节奏判定系统 | 将输入判定为 Perfect / Good / Bad / Miss |
|
||
| 谱面事件系统 | 生成普通节奏提示、时间锚点、敌人提示、Boss 提示 |
|
||
| 时间锚点系统 | 判断锚点是否成功,并决定是否切换相位 |
|
||
| 时间锚点增益系统 | 根据连击数调整时间锚点频率,并管理攻击 Buff 层数 |
|
||
| Past / Future 相位系统 | 管理当前相位,并通知视觉、音乐、敌人、UI |
|
||
| 输入与动作系统 | 接收判定后的输入,执行普攻、技能、蓄力、防御、空中动作 |
|
||
| 四拍槽系统 | 记录最近四次输入结果,用于技能派生和 UI 展示 |
|
||
| 能量系统 | 管理普攻回复、技能消耗、蓄力释放消耗 |
|
||
| 战斗结算系统 | 处理命中、伤害、浮空、击飞、击退、霸体、冲刺、防御、受击、死亡 |
|
||
| 敌人系统 | 管理敌人行为、相位强弱倍率、攻击节奏 |
|
||
| UI 反馈系统 | 显示节奏、时间锚点、四拍槽、相位、判定、能量、血量 |
|
||
| 音乐音效系统 | 管理 Past / Future 双音乐层同步切换和动作音效 |
|
||
|
||
---
|
||
|
||
## 4. 系统关系与数据流
|
||
|
||
### 4.1 一次普通动作输入的数据流
|
||
|
||
```text
|
||
玩家按键
|
||
→ InputIntent
|
||
→ RhythmJudge 输出 JudgeResult
|
||
→ ActionSystem 判断当前条件是否能执行动作
|
||
→ 执行动作或判定失败
|
||
→ ComboSlotBuffer 写入槽位
|
||
→ EnergySystem 处理回复或消耗
|
||
→ Animation / SFX / UI 反馈
|
||
```
|
||
|
||
### 4.2 一次时间锚点的数据流
|
||
|
||
```text
|
||
ChartRunner 触发 TimeAnchorEvent
|
||
→ UI 显示时间锚点
|
||
→ 玩家在窗口内输入或没有输入
|
||
→ RhythmJudge 输出 JudgeResult
|
||
→ TimeAnchorSystem 读取锚点窗口结果
|
||
→ 成功:PhaseManager 保持当前相位;Perfect / Good 使 AttackBuff 增加 1 层,Bad 不增加
|
||
→ 失败:PhaseManager 切换 Past / Future,AttackBuff 层数减少 2 层
|
||
→ EnemySystem / AudioLayerController / VisualLayer / UI 更新
|
||
```
|
||
|
||
### 4.2.1 连击、时间锚点和攻击 Buff 的数据流
|
||
|
||
```text
|
||
玩家连续成功执行动作
|
||
→ ComboCounter 增加
|
||
→ TimeAnchorSystem 根据当前连击数调整 TimeAnchor 生成频率
|
||
→ TimeAnchorEvent 出现
|
||
→ 玩家成功锚定
|
||
→ Perfect / Good:AttackBuffStack + 1;Bad:AttackBuffStack + 0
|
||
→ DamageResolver 按 AttackBuffStack 提高玩家攻击伤害
|
||
|
||
发生相位切换
|
||
→ AttackBuffStack 减少 2 层,最低为 0 层
|
||
→ DamageResolver 使用减少后的层数计算伤害
|
||
```
|
||
|
||
### 4.3 动作与时间锚点的关系
|
||
|
||
时间锚点不替代动作输入。玩家在时间锚点窗口内输入时,这次输入同时进入两个系统:
|
||
|
||
```text
|
||
ActionSystem:决定动作是否执行。
|
||
TimeAnchorSystem:决定是否维持相位。
|
||
```
|
||
|
||
因此:
|
||
|
||
```text
|
||
普通节奏输入可以只影响动作。
|
||
时间锚点输入既影响动作,也影响相位。
|
||
```
|
||
|
||
### 4.4 相位系统的输出对象
|
||
|
||
当当前相位变化时,PhaseManager 通知:
|
||
|
||
```text
|
||
EnemySystem:更新敌人强弱倍率。
|
||
VisualLayer:切换 Past / Future 视觉表现。
|
||
AudioLayerController:切换 Past / Future 音乐层。
|
||
HUD:切换 UI 相位提示与主题色。
|
||
BossController:更新 Boss 当前相位状态。
|
||
```
|
||
|
||
---
|
||
|
||
## 5. 核心循环流程
|
||
|
||
```text
|
||
音乐时间推进
|
||
→ 谱面标志向中心移动
|
||
→ 玩家根据节奏输入 A / W / S / Space
|
||
→ 输入进行 Perfect / Good / Bad / Miss 判定
|
||
→ 普通输入尝试执行动作
|
||
→ 动作结果写入四拍槽
|
||
→ 普攻回复能量,技能或蓄力释放消耗能量
|
||
→ 命中敌人后进行战斗结算
|
||
→ 连击数影响后续时间锚点出现频率
|
||
→ 若当前存在时间锚点事件,则同时判断是否维持相位
|
||
→ 时间锚点 Perfect / Good 成功时获得 1 层攻击 Buff,Bad 成功时只维持相位
|
||
→ 时间锚点失败时切换 Past / Future,并减少 2 层攻击 Buff
|
||
→ 敌人强弱、视觉、音乐、UI 跟随相位变化
|
||
```
|
||
|
||
---
|
||
|
||
## 6. Godot 节点架构
|
||
|
||
### 6.1 总体结构
|
||
|
||
```text
|
||
GameRoot
|
||
├─ RhythmManager
|
||
├─ ChartRunner
|
||
├─ TimeAnchorSystem
|
||
├─ PhaseManager
|
||
├─ CombatManager
|
||
├─ LevelRoot
|
||
├─ HUD
|
||
└─ AudioLayerController
|
||
```
|
||
|
||
### 6.2 节点职责
|
||
|
||
| 节点 | 职责 |
|
||
|---|---|
|
||
| `RhythmManager` | 播放音乐,提供 song_time、beat_index、beat_phase、节奏判定接口 |
|
||
| `ChartRunner` | 按音乐时间生成普通节奏提示、时间锚点、敌人提示、Boss 提示 |
|
||
| `TimeAnchorSystem` | 接收 TimeAnchorEvent,判断锚点成功或失败 |
|
||
| `PhaseManager` | 保存当前相位 Past / Future,并广播相位变化 |
|
||
| `CombatManager` | 统一处理 Hitbox / Hurtbox 命中结算 |
|
||
| `LevelRoot` | 当前关卡、场景表现、敌人容器、相位视觉层 |
|
||
| `HUD` | 节奏轨道、时间锚点、四拍槽、能量、血量、相位提示 |
|
||
| `AudioLayerController` | Past / Future 音乐层同步播放与交叉淡入淡出 |
|
||
|
||
---
|
||
|
||
## 7. 玩家节点架构
|
||
|
||
```text
|
||
Player
|
||
├─ InputComponent
|
||
├─ ActionController
|
||
├─ ComboSlotBuffer
|
||
├─ ComboCounter
|
||
├─ AttackBuffComponent
|
||
├─ EnergyComponent
|
||
├─ ActorStateMachine
|
||
├─ ActorMotor
|
||
├─ HitboxController
|
||
├─ Hurtbox
|
||
├─ AnimationBridge
|
||
└─ AudioEmitter
|
||
```
|
||
|
||
### 7.1 玩家组件职责
|
||
|
||
| 组件 | 职责 |
|
||
|---|---|
|
||
| `InputComponent` | 监听 A / W / S / Space 的 pressed / released,生成 InputIntent |
|
||
| `ActionController` | 根据输入、判定、四拍槽、能量、空地条件执行动作 |
|
||
| `ComboSlotBuffer` | 保存最近四次输入符号和内部判定数据 |
|
||
| `ComboCounter` | 统计连续成功动作,用于影响时间锚点生成频率 |
|
||
| `AttackBuffComponent` | 保存时间锚点攻击 Buff 层数,并向伤害结算提供攻击倍率 |
|
||
| `EnergyComponent` | 处理能量回复与消耗 |
|
||
| `ActorStateMachine` | 保存生命状态、空地状态、动作阶段、受击状态 |
|
||
| `ActorMotor` | 根据动作数据执行横向 / 纵向位移 |
|
||
| `HitboxController` | 根据动作 Active 阶段开启或关闭 Hitbox |
|
||
| `Hurtbox` | 接收敌人攻击检测 |
|
||
| `AnimationBridge` | 根据动作事件播放动画、特效、震屏 |
|
||
| `AudioEmitter` | 播放角色动作、命中、受击、判定反馈音效 |
|
||
|
||
---
|
||
|
||
## 8. 输入系统
|
||
|
||
### 8.1 输入按键
|
||
|
||
| 输入 | 用途 |
|
||
|---|---|
|
||
| `A` | 地面普攻、地面连段、A 蓄力、空中连斩 |
|
||
| `W` | 地面上挑,进入空中 |
|
||
| `S` | 地面短按防御、地面长按 S 蓄力、空中下坠攻击 |
|
||
| `Space` / `sp` | 技能派生、S 蓄力期间释放斩波 |
|
||
|
||
### 8.2 输入阶段
|
||
|
||
```text
|
||
pressed
|
||
released
|
||
held
|
||
```
|
||
|
||
### 8.3 输入处理规则
|
||
|
||
```text
|
||
所有输入先进入 RhythmJudge。
|
||
Perfect / Good / Bad 可以尝试执行动作。
|
||
Miss 不执行动作。
|
||
Miss 写入四拍槽为 ∅。
|
||
非 Miss 但动作条件不满足时,输入可以写入槽位,但不视为成功动作。
|
||
S 键在地面采用短按 / 长按区分:短按 S 触发防御;长按 S 进入 S 蓄力。
|
||
```
|
||
|
||
---
|
||
|
||
## 9. 节奏判定系统
|
||
|
||
### 9.1 判定结果
|
||
|
||
```text
|
||
Perfect
|
||
Good
|
||
Bad
|
||
Miss
|
||
```
|
||
|
||
### 9.2 判定用途
|
||
|
||
判定结果用于影响:
|
||
|
||
```text
|
||
动作是否执行
|
||
动作伤害倍率
|
||
普攻能量回复
|
||
技能能量消耗
|
||
蓄力释放消耗
|
||
防御减伤比例
|
||
时间锚点是否成功
|
||
时间锚点是否增加攻击 Buff
|
||
时间锚点回血量
|
||
UI 与音效反馈
|
||
```
|
||
|
||
判定不影响动作基础横向位移、动作基础纵向位移、冲刺距离、击退距离、击飞距离、霸体时间、防御持续时间、动作基础时长和敌人当前生命值。上述数值一旦由动作或状态确定,不因 Perfect / Good / Bad 重新缩放。
|
||
|
||
### 9.3 判定建议倍率
|
||
|
||
| 判定 | 普攻能量回复 | 技能消耗 | 伤害倍率 |
|
||
|---|---:|---:|---:|
|
||
| Perfect | 100% | 90% | 100% |
|
||
| Good | 80% | 100% | 85% |
|
||
| Bad | 60% | 110% | 70% |
|
||
| Miss | 0% | 不释放 | 不释放 |
|
||
|
||
说明:技能消耗倍率采用较窄区间,避免伤害、Buff、回血、相位惩罚与能量惩罚叠加过重;Perfect 略省,Bad 略贵。
|
||
|
||
### 9.4 防御判定与效果
|
||
|
||
| 判定 | 防御效果 | 动作结果 |
|
||
|---|---|---|
|
||
| Perfect | 正面防御成功,伤害减免 100%。 | 不进入 `[受击]` 状态。 |
|
||
| Good | 正面防御成功,伤害减免 80%。 | 不进入 `[受击]` 状态。 |
|
||
| Bad | 正面防御成功,伤害减免 60%。 | 进入短防御硬直,但不进入 `[受击]` 状态。 |
|
||
| Miss | 防御不释放。 | 四拍槽写入 `∅`,受到攻击时正常进入 `[受击]` 状态。 |
|
||
|
||
防御只对正面普通攻击生效;背后攻击、抓取、破防攻击、范围环境伤害不受防御减免。
|
||
|
||
---
|
||
|
||
## 10. 谱面事件系统
|
||
|
||
### 10.1 事件类型
|
||
|
||
| 事件 | 作用 |
|
||
|---|---|
|
||
| `RhythmBeat` | 普通节奏提示,只辅助动作输入 |
|
||
| `TimeAnchor` | 时间锚点,成功维持相位,失败切换相位 |
|
||
| `EnemyCue` | 敌人攻击提示 |
|
||
| `BossCue` | Boss 技能提示 |
|
||
| `PhaseWarning` | 相位相关事件预警 |
|
||
|
||
### 10.2 RhythmBeat 与 TimeAnchor 的区别
|
||
|
||
```text
|
||
RhythmBeat 是底层节奏网格。
|
||
TimeAnchor 是挂在节奏网格上的特殊事件。
|
||
```
|
||
|
||
普通 RhythmBeat 不影响相位。
|
||
TimeAnchor 会影响相位。
|
||
|
||
### 10.3 时间锚点出现方式
|
||
|
||
时间锚点有两种生成方式。
|
||
|
||
周期性出现:
|
||
|
||
```text
|
||
以每 4 拍为一个频率窗口生成 TimeAnchorEvent。
|
||
每 4 拍内 TimeAnchorEvent 数量随当前连击数提高。
|
||
```
|
||
|
||
条件触发:
|
||
|
||
```text
|
||
当前相位持续时间达到阈值
|
||
场上出现强势相位敌人
|
||
Boss 准备相位技能
|
||
玩家连段达到指定数量
|
||
关卡流程进入指定段落
|
||
```
|
||
|
||
时间锚点频率受连击数影响。连击数越高,每 4 拍窗口内的 TimeAnchorEvent 数量越多。
|
||
|
||
频率上限不是额外生成更多图标,也不是让画面出现额外锚点。频率上限是:每 4 拍内 4 个 RhythmBeat 都升级为 TimeAnchor。
|
||
|
||
```text
|
||
0-7 连击:每 4 拍 1 个 RhythmBeat 是 TimeAnchor。
|
||
8-15 连击:每 4 拍 2 个 RhythmBeat 是 TimeAnchor。
|
||
16+ 连击:每 4 拍 4 个 RhythmBeat 是 TimeAnchor。
|
||
```
|
||
|
||
因此,时间锚点最多只会把每 4 拍内已有的 4 个 RhythmBeat 全部标记为 TimeAnchor,不会额外增加屏幕图标密度。
|
||
|
||
实际开发中优先实现周期性时间锚点,再扩展条件触发。
|
||
|
||
---
|
||
|
||
## 11. 时间锚点系统
|
||
|
||
### 11.1 系统职责
|
||
|
||
时间锚点系统负责判断玩家是否成功维持当前时间相位。
|
||
|
||
### 11.2 成功条件
|
||
|
||
当 TimeAnchorEvent 处于判定窗口内,玩家任意有效输入获得:
|
||
|
||
```text
|
||
Perfect
|
||
Good
|
||
Bad
|
||
```
|
||
|
||
即视为时间锚点成功。
|
||
|
||
### 11.3 失败条件
|
||
|
||
```text
|
||
时间锚点窗口内没有任何输入
|
||
输入结果为 Miss
|
||
```
|
||
|
||
即视为时间锚点失败。
|
||
|
||
### 11.4 成功结果
|
||
|
||
```text
|
||
保持当前相位。
|
||
Perfect / Good:增加 1 层攻击 Buff。
|
||
Bad:不增加攻击 Buff。
|
||
按时间锚点回血规则结算生命回复。
|
||
播放锚定成功反馈。
|
||
不重置音乐时间。
|
||
```
|
||
|
||
### 11.5 失败结果
|
||
|
||
```text
|
||
当前相位从 Past 切换到 Future,或从 Future 切换到 Past。
|
||
播放相位切换反馈。
|
||
不重置音乐时间。
|
||
```
|
||
|
||
### 11.6 时间锚点攻击 Buff
|
||
|
||
成功收集时间锚点时,Perfect / Good 让玩家获得 1 层攻击 Buff;Bad 只维持当前相位,不增加攻击 Buff。
|
||
|
||
```text
|
||
每层攻击 Buff:攻击力 +50%
|
||
最大层数:7 层
|
||
最大攻击增幅:+350%
|
||
最大总攻击倍率:450%
|
||
```
|
||
|
||
攻击 Buff 按加算处理,只影响玩家造成的伤害,不影响节奏判定窗口、动作时长、动作位移、能量回复和能量消耗。
|
||
|
||
伤害计算建议:
|
||
|
||
```text
|
||
最终伤害 = 动作基础伤害 × 节奏判定伤害倍率 × (1 + 攻击 Buff 层数 × 50%)
|
||
```
|
||
|
||
当攻击 Buff 达到 7 层后,继续成功收集时间锚点不再增加层数,但仍播放锚点成功反馈。
|
||
|
||
### 11.7 相位切换对攻击 Buff 的影响
|
||
|
||
每次发生 Past / Future 相位切换时,当前攻击 Buff 层数减少 2 层,最低降至 0 层。
|
||
|
||
示例:
|
||
|
||
```text
|
||
7 层 → 5 层
|
||
5 层 → 3 层
|
||
2 层 → 0 层
|
||
1 层 → 0 层
|
||
0 层 → 0 层
|
||
```
|
||
|
||
建议公式:
|
||
|
||
```text
|
||
attack_buff_stack = max(attack_buff_stack - 2, 0)
|
||
```
|
||
|
||
这个规则只在相位实际切换时触发。成功维持当前相位不会减少攻击 Buff。
|
||
|
||
### 11.8 连击数对时间锚点频率的影响
|
||
|
||
连击数越高,后续时间锚点在每 4 拍窗口内出现得越频繁。
|
||
|
||
该规则用于奖励稳定节奏输入和连续成功动作。连击越高,玩家越容易获得更多时间锚点,从而获得更多攻击 Buff。
|
||
|
||
时间锚点频率存在上限:
|
||
|
||
```text
|
||
上限 = 每 4 拍内 4 个 RhythmBeat 都被标记为 TimeAnchor。
|
||
```
|
||
|
||
频率提高时,系统只改变已有 RhythmBeat 的事件类型,不额外生成新的屏幕元素。
|
||
|
||
### 11.9 推荐频率档位
|
||
|
||
第一版使用每 4 拍为一个频率窗口,便于玩家理解和调参。
|
||
|
||
| 连击数 | 每 4 拍内 TimeAnchor 数量 | 说明 |
|
||
|---:|---:|---|
|
||
| 0 - 7 | 1 个 | 基础频率 |
|
||
| 8 - 15 | 2 个 | 低连击奖励 |
|
||
| 16+ | 4 个 | 频率上限 |
|
||
|
||
具体数值可以根据歌曲 BPM 和操作密度调整,但必须保持“不额外生成节奏点,只升级已有 RhythmBeat”的原则。
|
||
|
||
---
|
||
|
||
## 12. Past / Future 相位系统
|
||
|
||
### 12.1 相位状态
|
||
|
||
```text
|
||
Past
|
||
Future
|
||
```
|
||
|
||
### 12.2 相位影响范围
|
||
|
||
相位影响:
|
||
|
||
```text
|
||
敌人强弱倍率
|
||
Boss 状态
|
||
背景和场景视觉层
|
||
UI 主题色
|
||
音乐层音量
|
||
部分特效颜色
|
||
```
|
||
|
||
相位不影响:
|
||
|
||
```text
|
||
TileMap 碰撞
|
||
平台位置
|
||
玩家输入规则
|
||
四拍槽容量
|
||
基础节奏 BPM
|
||
音乐播放时间轴
|
||
```
|
||
|
||
### 12.3 相位切换规则
|
||
|
||
```text
|
||
Past → Future
|
||
Future → Past
|
||
```
|
||
|
||
切换由 TimeAnchorSystem 触发。
|
||
|
||
每次相位实际切换时,当前攻击 Buff 层数减少 2 层,最低为 0 层。
|
||
|
||
```text
|
||
attack_buff_stack = max(attack_buff_stack - 2, 0)
|
||
```
|
||
|
||
相位切换不清空四拍槽,不重置音乐时间,不重置玩家能量。
|
||
|
||
相位切换不改变玩家、小怪或 Boss 的当前生命值,也不追溯已经结算完成的伤害。相位切换后,小怪后续受到伤害倍率、造成伤害倍率和攻击拍点按新相位规则生效。若小怪攻击动作已经开始,本次攻击保留动作开始时的相位参数,下一次攻击再使用新相位参数。
|
||
|
||
### 12.4 相位切换表现
|
||
|
||
```text
|
||
短暂画面闪白 / 闪色
|
||
UI 相位标识变化
|
||
敌人外观状态变化
|
||
Past / Future 音乐层交叉淡入淡出
|
||
```
|
||
|
||
---
|
||
|
||
## 13. 四拍槽系统
|
||
|
||
### 13.1 显示符号
|
||
|
||
```text
|
||
A
|
||
W
|
||
S
|
||
sp
|
||
∅
|
||
```
|
||
|
||
`sp` 表示 Space。
|
||
`∅` 表示 Miss。
|
||
|
||
### 13.2 容量规则
|
||
|
||
```text
|
||
最多保存 4 个槽位。
|
||
每次输入判定并尝试动作后写入 1 个槽位。
|
||
第 4 槽写入后进行结算,然后清空。
|
||
技能成功释放后立即清空。
|
||
```
|
||
|
||
### 13.3 技能读取规则
|
||
|
||
地面技能读取以 `sp` 结尾的连续有效序列:
|
||
|
||
```text
|
||
[A][sp] → 突进
|
||
[A][A][sp] → 连段终结
|
||
[A][A][A][sp] → 震地击飞
|
||
```
|
||
|
||
包含 `∅` 的序列不能跨槽读取。
|
||
|
||
### 13.4 时间锚点与四拍槽关系
|
||
|
||
TimeAnchor 本身不写入四拍槽。只有玩家在时间锚点窗口内实际输入时,才按普通输入规则写入四拍槽。
|
||
|
||
---
|
||
|
||
## 14. 能量系统
|
||
|
||
### 14.1 能量来源
|
||
|
||
普攻成功释放回复能量。
|
||
|
||
```text
|
||
Perfect:回复完整数值
|
||
Good:回复较少
|
||
Bad:回复更少
|
||
Miss:不回复
|
||
```
|
||
|
||
### 14.2 能量消耗
|
||
|
||
技能和蓄力释放消耗能量。
|
||
|
||
```text
|
||
Perfect:消耗较低
|
||
Good:标准消耗
|
||
Bad:消耗较高
|
||
Miss:不释放,不消耗
|
||
```
|
||
|
||
### 14.3 能量不足
|
||
|
||
如果能量不足:
|
||
|
||
```text
|
||
技能不释放。
|
||
动作结果为失败。
|
||
可以写入输入槽,但 action_executed = false。
|
||
不触发技能伤害。
|
||
```
|
||
|
||
### 14.4 生命恢复
|
||
|
||
生命恢复绑定时间锚点,不绑定具体攻击动作,避免玩家为了回血重复刷单一动作。
|
||
|
||
```text
|
||
每个 4 拍窗口内,第一次成功锚定时间锚点时回复生命。
|
||
Perfect:回复 30 HP
|
||
Good:回复 20 HP
|
||
Bad:回复 10 HP
|
||
Miss / 未输入:不回复,并触发相位切换
|
||
```
|
||
|
||
当玩家当前生命低于最大生命 50% 时,本次时间锚点回血量翻倍:
|
||
|
||
```text
|
||
Perfect:回复 60 HP
|
||
Good:回复 40 HP
|
||
Bad:回复 20 HP
|
||
```
|
||
|
||
回血量不能超过玩家最大生命。攻击 Buff 是否增加与回血分开结算:Bad 可以维持相位并触发对应回血,但不增加攻击 Buff。
|
||
|
||
---
|
||
|
||
## 15. 动作系统
|
||
|
||
### 15.1 动作分类
|
||
|
||
```text
|
||
普攻
|
||
技能
|
||
蓄力
|
||
防御
|
||
生命状态
|
||
基础状态
|
||
```
|
||
|
||
### 15.2 分类规则
|
||
|
||
普攻:成功释放回复能量,回复数值和节奏判定有关。
|
||
技能:成功释放消耗能量,消耗数值和节奏判定有关。
|
||
蓄力:进入蓄力状态不消耗能量,释放攻击时才消耗能量;蓄力分为 3 个等级,等级越高伤害越高,消耗越高。
|
||
防御:主动防御状态,成功释放后可抵挡正面攻击;防御效果受节奏判定影响。
|
||
生命状态:由战斗结果触发,不由玩家主动释放。
|
||
基础状态:用于表现待机、转身等,不参与伤害结算。
|
||
|
||
### 15.3 效果定义
|
||
|
||
浮空:让自身或目标离开 `[地面]`,用于自身起跳、空中连段或进入空中状态。
|
||
击退:让目标进入 `[击退]` 状态,并按动作的击退距离向受击方向后移。
|
||
击飞:让目标离开 `[地面]`,进入空中受击或浮空状态,位移由击飞距离决定。
|
||
霸体:动作过程中在霸体时间内受到伤害不会进入 `[受击]` / `[击退]` 状态。
|
||
冲刺:动作过程中自身碰撞体积消失,可以穿过敌人。
|
||
防御:动作过程中可抵挡正面普通攻击,具体减伤比例由节奏判定决定。
|
||
|
||
### 15.3.1 效果参数
|
||
|
||
有对应效果的动作必须填写对应参数;没有该效果时参数为 0。
|
||
|
||
| 参数 | 适用效果 | 说明 |
|
||
|---|---|---|
|
||
| 击退距离 | 击退 | 目标在 `[击退]` 状态中的水平后退距离。 |
|
||
| 击飞距离 | 击飞 | 目标被打离地面的高度 / 上抛距离。 |
|
||
| 霸体时间 | 霸体 | 动作开始后保持霸体的时间;超过该时间后恢复正常受击规则。 |
|
||
| 冲刺距离 | 冲刺 | 自身在冲刺动作中的水平位移距离。 |
|
||
| 防御时间 | 防御 | 正面防御有效的持续时间。 |
|
||
|
||
### 15.4 释放条件
|
||
|
||
所有主动动作的释放条件只使用:
|
||
|
||
```text
|
||
[地面]
|
||
[空中]
|
||
```
|
||
|
||
动作前置、四拍槽要求、能量要求、蓄力等级写入动作数据。
|
||
|
||
S 键在地面采用短按 / 长按区分:短按 S 触发防御;长按 S 进入 S 蓄力。
|
||
|
||
---
|
||
|
||
## 16. 动作设定表
|
||
|
||
### 动作名称:普攻一段
|
||
|
||
编号:01
|
||
分类:普攻
|
||
释放条件:[地面]
|
||
按键判定:[A]
|
||
技能描述:向前移动时挥出一剑,是地面连段起手动作。
|
||
前缀动作:无
|
||
后缀动作:普攻二段 [A][A] / 突进 [A][sp] / A 蓄力 / 防御 [S]
|
||
效果:无
|
||
基础伤害:100
|
||
基础横向位移:100
|
||
基础纵向位移:20
|
||
能量回复:10
|
||
能量消耗:0
|
||
动作时长:0.5s
|
||
|
||
### 动作名称:普攻二段
|
||
|
||
编号:02
|
||
分类:普攻
|
||
释放条件:[地面]
|
||
按键判定:[A][A]
|
||
技能描述:在普攻一段后继续向前追击,挥出第二剑。
|
||
前缀动作:普攻一段 [A]
|
||
后缀动作:普攻三段 [A][A][A] / 连段终结 [A][A][sp] / A 蓄力 / 防御 [S]
|
||
效果:无
|
||
基础伤害:120
|
||
基础横向位移:110
|
||
基础纵向位移:24
|
||
能量回复:12
|
||
能量消耗:0
|
||
动作时长:0.55s
|
||
|
||
### 动作名称:普攻三段
|
||
|
||
编号:03
|
||
分类:普攻
|
||
释放条件:[地面]
|
||
按键判定:[A][A][A]
|
||
技能描述:地面普通连段的第三击,向前压制敌人。
|
||
前缀动作:普攻二段 [A][A]
|
||
后缀动作:震地击飞 [A][A][A][sp] / A 蓄力 / 防御 [S]
|
||
效果:无
|
||
基础伤害:150
|
||
基础横向位移:120
|
||
基础纵向位移:28
|
||
能量回复:15
|
||
能量消耗:0
|
||
动作时长:0.65s
|
||
|
||
### 动作名称:突进
|
||
|
||
编号:04
|
||
分类:技能
|
||
释放条件:[地面]
|
||
按键判定:[A][sp]
|
||
技能描述:向前高速突进并攻击路径上的敌人。
|
||
前缀动作:普攻一段 [A]
|
||
后缀动作:无
|
||
效果:冲刺
|
||
基础伤害:160
|
||
基础横向位移:260
|
||
基础纵向位移:0
|
||
能量回复:0
|
||
能量消耗:20
|
||
动作时长:0.45s
|
||
|
||
### 动作名称:连段终结
|
||
|
||
编号:05
|
||
分类:技能
|
||
释放条件:[地面]
|
||
按键判定:[A][A][sp]
|
||
技能描述:在二段普攻后接出强力终结斩,造成更高伤害。
|
||
前缀动作:普攻二段 [A][A]
|
||
后缀动作:无
|
||
效果:击退
|
||
基础伤害:220
|
||
基础横向位移:0
|
||
基础纵向位移:0
|
||
击退距离:160
|
||
能量回复:0
|
||
能量消耗:30
|
||
动作时长:0.7s
|
||
|
||
### 动作名称:震地击飞
|
||
|
||
编号:06
|
||
分类:技能
|
||
释放条件:[地面]
|
||
按键判定:[A][A][A][sp]
|
||
技能描述:三段普攻后原地释放震地重击,将敌人打离地面。
|
||
前缀动作:普攻三段 [A][A][A]
|
||
后缀动作:无
|
||
效果:击飞 / 霸体
|
||
基础伤害:280
|
||
基础横向位移:0
|
||
基础纵向位移:0
|
||
击飞距离:140
|
||
霸体时间:0.6s
|
||
能量回复:0
|
||
能量消耗:40
|
||
动作时长:0.85s
|
||
|
||
### 动作名称:上挑
|
||
|
||
编号:07
|
||
分类:普攻
|
||
释放条件:[地面]
|
||
按键判定:[W]
|
||
技能描述:向上挥剑攻击,将自身带入空中,并可衔接空中动作。
|
||
前缀动作:无
|
||
后缀动作:空中连斩 [空中A] / 下坠攻击 [空中S]
|
||
效果:自身浮空 / 击飞
|
||
基础伤害:120
|
||
基础横向位移:60
|
||
基础纵向位移:180
|
||
击飞距离:160
|
||
能量回复:12
|
||
能量消耗:0
|
||
动作时长:0.55s
|
||
|
||
### 动作名称:A 蓄力
|
||
|
||
编号:08
|
||
分类:蓄力
|
||
释放条件:[地面]
|
||
按键判定:[A长按]
|
||
技能描述:A 按下时先释放当前普攻段;如果在普攻尾段仍保持 A,则进入蓄力状态。蓄力分为 3 个等级,等级越高,后续剑雨伤害越高、消耗越高。
|
||
前缀动作:普攻一段 [A] / 普攻二段 [A][A] / 普攻三段 [A][A][A]
|
||
后缀动作:剑雨 [A松开]
|
||
效果:霸体
|
||
霸体时间:0.35s
|
||
基础伤害:0
|
||
基础横向位移:0
|
||
基础纵向位移:0
|
||
能量回复:0
|
||
能量消耗:0
|
||
动作时长:持续蓄力,最多 3 级
|
||
|
||
### 动作名称:剑雨
|
||
|
||
编号:09
|
||
分类:蓄力
|
||
释放条件:[地面]
|
||
按键判定:[A蓄力后松开]
|
||
技能描述:结束 A 蓄力后释放剑雨攻击。蓄力等级越高,伤害越高,攻击范围越强,能量消耗越高。
|
||
前缀动作:A 蓄力
|
||
后缀动作:无
|
||
效果:无
|
||
基础伤害:等级1:180 / 等级2:280 / 等级3:420
|
||
基础横向位移:0
|
||
基础纵向位移:0
|
||
能量回复:0
|
||
能量消耗:等级1:20 / 等级2:35 / 等级3:50
|
||
动作时长:等级1:0.8s / 等级2:1.0s / 等级3:1.2s
|
||
|
||
### 动作名称:防御
|
||
|
||
编号:10
|
||
分类:防御
|
||
释放条件:[地面]
|
||
按键判定:[S]
|
||
技能描述:短按 S 进入防御架势,用于抵挡正面普通攻击。若持续按住 S 超过蓄力判定阈值,则转入 S 蓄力。
|
||
前缀动作:待机 / 转身 / 任意地面动作结束
|
||
后缀动作:S 蓄力 [S长按] / 待机
|
||
效果:防御 / 霸体
|
||
霸体时间:1.0s
|
||
基础伤害:0
|
||
基础横向位移:0
|
||
基础纵向位移:0
|
||
能量回复:0
|
||
能量消耗:0
|
||
动作时长:0.4s
|
||
|
||
### 动作名称:S 蓄力
|
||
|
||
编号:11
|
||
分类:蓄力
|
||
释放条件:[地面]
|
||
按键判定:[S长按]
|
||
技能描述:地面按住 S 时,先进入防御架势;持续按住超过蓄力判定阈值后进入远程蓄力状态。蓄力分为 3 个等级,等级越高,后续斩波伤害越高、消耗越高。
|
||
前缀动作:防御 [S] / 待机
|
||
后缀动作:斩波 [S长按][sp]
|
||
效果:霸体
|
||
霸体时间:0.35s
|
||
基础伤害:0
|
||
基础横向位移:0
|
||
基础纵向位移:0
|
||
能量回复:0
|
||
能量消耗:0
|
||
动作时长:持续蓄力,最多 3 级
|
||
|
||
### 动作名称:斩波
|
||
|
||
编号:12
|
||
分类:蓄力
|
||
释放条件:[地面]
|
||
按键判定:[S长按][sp]
|
||
技能描述:S 蓄力期间按下 Space,向前释放远程斩波。蓄力等级越高,斩波伤害越高,能量消耗越高。
|
||
前缀动作:S 蓄力
|
||
后缀动作:无
|
||
效果:击退
|
||
基础伤害:等级1:120 / 等级2:200 / 等级3:320
|
||
基础横向位移:0
|
||
基础纵向位移:0
|
||
击退距离:60
|
||
能量回复:0
|
||
能量消耗:等级1:15 / 等级2:25 / 等级3:40
|
||
动作时长:0.45s
|
||
|
||
### 动作名称:空中连斩
|
||
|
||
编号:13
|
||
分类:普攻
|
||
释放条件:[空中]
|
||
按键判定:[A]
|
||
技能描述:在空中快速挥剑连斩,主要用于空中追击。
|
||
前缀动作:上挑 [W] / 其他进入空中的动作
|
||
后缀动作:下坠攻击 [空中S]
|
||
效果:无
|
||
基础伤害:130
|
||
基础横向位移:120
|
||
基础纵向位移:20
|
||
能量回复:10
|
||
能量消耗:0
|
||
动作时长:0.6s
|
||
|
||
### 动作名称:下坠攻击
|
||
|
||
编号:14
|
||
分类:普攻
|
||
释放条件:[空中]
|
||
按键判定:[S]
|
||
技能描述:从空中向下坠落攻击,命中或落地时造成冲击。
|
||
前缀动作:上挑 [W] / 空中连斩 [空中A] / 其他进入空中的动作
|
||
后缀动作:无
|
||
效果:击飞
|
||
基础伤害:180
|
||
基础横向位移:0
|
||
基础纵向位移:-260
|
||
击飞距离:120
|
||
能量回复:15
|
||
能量消耗:0
|
||
动作时长:0.65s
|
||
|
||
### 动作名称:落下
|
||
|
||
编号:15
|
||
分类:基础状态
|
||
释放条件:[空中]
|
||
按键判定:无(自动)
|
||
技能描述:角色处于空中且没有其他可接入动作时,自动进入落下动作;落下期间若输入满足空中动作条件,可立即接入该动作。
|
||
前缀动作:上挑 [W] / 空中连斩 [空中A] / 下坠攻击结束后仍在空中 / 其他进入空中的动作
|
||
后缀动作:空中连斩 [空中A] / 下坠攻击 [空中S] / 落地后待机
|
||
效果:无
|
||
基础伤害:0
|
||
基础横向位移:0
|
||
基础纵向位移:向下落至地面
|
||
击退距离:0
|
||
击飞距离:0
|
||
霸体时间:0
|
||
能量回复:0
|
||
能量消耗:0
|
||
动作时长:循环,直到落地或被空中动作接入
|
||
|
||
### 动作名称:击退
|
||
|
||
编号:16
|
||
分类:生命状态
|
||
释放条件:[地面] / [空中]
|
||
按键判定:无
|
||
技能描述:角色受到带击退距离的可打断攻击后进入击退状态,按攻击动作配置的击退距离 / 击飞距离产生位移,期间无法主动行动。
|
||
前缀动作:任意可被打断动作
|
||
后缀动作:待机 / 落下(若击退结束后仍在空中)
|
||
效果:击退
|
||
基础伤害:0
|
||
基础横向位移:0
|
||
基础纵向位移:0
|
||
击退距离:按攻击动作配置
|
||
击飞距离:按攻击动作配置,若为 0 则不离地
|
||
霸体时间:0
|
||
能量回复:0
|
||
能量消耗:0
|
||
动作时长:0.4s 或按攻击动作配置
|
||
|
||
### 动作名称:受击
|
||
|
||
编号:17
|
||
分类:生命状态
|
||
释放条件:[地面] / [空中]
|
||
按键判定:无
|
||
技能描述:角色受到不带击退距离的可打断攻击后进入受击状态,短时间无法行动。
|
||
前缀动作:任意可被打断动作
|
||
后缀动作:待机
|
||
效果:无
|
||
基础伤害:0
|
||
基础横向位移:0
|
||
基础纵向位移:0
|
||
能量回复:0
|
||
能量消耗:0
|
||
动作时长:0.4s
|
||
|
||
### 动作名称:死亡
|
||
|
||
编号:18
|
||
分类:生命状态
|
||
释放条件:[地面] / [空中]
|
||
按键判定:无
|
||
技能描述:生命值归零后进入死亡状态,停止所有输入和动作。
|
||
前缀动作:任意状态
|
||
后缀动作:无
|
||
效果:无
|
||
基础伤害:0
|
||
基础横向位移:0
|
||
基础纵向位移:0
|
||
能量回复:0
|
||
能量消耗:0
|
||
动作时长:按死亡动画长度
|
||
|
||
### 动作名称:待机
|
||
|
||
编号:19
|
||
分类:基础状态
|
||
释放条件:[地面]
|
||
按键判定:无
|
||
技能描述:角色没有执行动作时的默认状态。
|
||
前缀动作:任意动作结束
|
||
后缀动作:任意可释放动作
|
||
效果:无
|
||
基础伤害:0
|
||
基础横向位移:0
|
||
基础纵向位移:0
|
||
能量回复:0
|
||
能量消耗:0
|
||
动作时长:循环
|
||
|
||
### 动作名称:转身
|
||
|
||
编号:20
|
||
分类:基础状态
|
||
释放条件:[地面]
|
||
按键判定:方向变化 / 目标切换
|
||
技能描述:角色调整朝向,用于决定后续攻击方向。
|
||
前缀动作:待机 / 动作结束
|
||
后缀动作:任意方向相关动作
|
||
效果:无
|
||
基础伤害:0
|
||
基础横向位移:0
|
||
基础纵向位移:0
|
||
能量回复:0
|
||
能量消耗:0
|
||
动作时长:0.15s
|
||
---
|
||
|
||
## 17. 敌人与相位规则
|
||
|
||
### 17.1 敌人类型
|
||
|
||
敌人至少分为两类:
|
||
|
||
```text
|
||
PastStrongEnemy
|
||
FutureStrongEnemy
|
||
```
|
||
|
||
普通小怪基础生命建议值:
|
||
|
||
```text
|
||
小怪 HP:650
|
||
```
|
||
|
||
小怪只有一条真实生命值。相位切换不会重算小怪当前 HP,也不会按百分比换算或恢复生命。
|
||
|
||
### 17.2 PastStrongEnemy
|
||
|
||
```text
|
||
Past 相位:强
|
||
Future 相位:弱
|
||
```
|
||
|
||
建议倍率:
|
||
|
||
| 相位 | 状态 | 造成伤害 | 受到伤害 | 攻击拍点 |
|
||
|---|---|---:|---:|---|
|
||
| Past | 强势 | 140% | 25% | 每 1 拍攻击一次 |
|
||
| Future | 弱势 | 70% | 250% | 每 2 拍攻击一次 |
|
||
|
||
### 17.3 FutureStrongEnemy
|
||
|
||
```text
|
||
Future 相位:强
|
||
Past 相位:弱
|
||
```
|
||
|
||
建议倍率:
|
||
|
||
| 相位 | 状态 | 造成伤害 | 受到伤害 | 攻击拍点 |
|
||
|---|---|---:|---:|---|
|
||
| Future | 强势 | 140% | 25% | 每 1 拍攻击一次 |
|
||
| Past | 弱势 | 70% | 250% | 每 2 拍攻击一次 |
|
||
|
||
### 17.4 小怪相位切换结算
|
||
|
||
```text
|
||
相位切换不改变小怪当前生命值。
|
||
相位切换不追溯已经结算完成的伤害。
|
||
相位切换后,小怪后续受到伤害倍率、造成伤害倍率和攻击拍点按新相位规则生效。
|
||
若小怪攻击动作已经开始,本次攻击保留动作开始时的相位参数,下一次攻击再使用新相位参数。
|
||
```
|
||
|
||
设计目标:
|
||
|
||
```text
|
||
弱势相位:小怪约 1 个重技能加补刀,或 2 个技能击杀。
|
||
强势相位:无攻击 Buff 时约十几到二十多次攻击击杀。
|
||
满攻击 Buff 时允许玩家强行击杀强势相位小怪,作为高水平维持节奏的奖励。
|
||
```
|
||
|
||
### 17.5 敌人行为原则
|
||
|
||
```text
|
||
敌人行为可以简单,但相位强弱必须清楚。
|
||
敌人不依赖复杂 AI。
|
||
敌人攻击应能被节奏动作、防御、浮空、击飞、击退或相位策略影响。
|
||
```
|
||
|
||
---
|
||
|
||
## 18. Boss 规则
|
||
|
||
Boss 是可选扩展内容。若时间允许,Boss 使用同一个 Boss 在 Past / Future 下不同状态的方式实现。
|
||
|
||
Boss 基础生命建议值:
|
||
|
||
```text
|
||
Boss HP:28000
|
||
```
|
||
|
||
Boss 设计目标:玩家在满攻击 Buff 且能稳定维持输出的情况下,约 30 秒击败 Boss。
|
||
|
||
### 18.1 Boss 相位差异
|
||
|
||
```text
|
||
Past 状态:攻击慢,单次伤害高。
|
||
Future 状态:攻击快,频率高,单次伤害低。
|
||
```
|
||
|
||
Boss 行为、招式节奏和演出可以随相位变化;Boss 最大生命、当前生命和受到伤害倍率不随相位变化。
|
||
|
||
### 18.2 Boss 与时间锚点
|
||
|
||
Boss 可以触发条件型 TimeAnchorEvent。
|
||
|
||
```text
|
||
Boss 准备特殊攻击
|
||
→ 生成 TimeAnchorEvent
|
||
→ 成功:维持当前相位
|
||
→ 失败:切换相位,Boss 状态变化,攻击 Buff 减少 2 层
|
||
```
|
||
|
||
相位切换不改变 Boss 当前生命值,也不追溯已经结算完成的伤害。
|
||
|
||
Boss 不作为第一优先级,核心目标仍是普通敌人与相位切换闭环。
|
||
|
||
---
|
||
|
||
## 19. UI 反馈系统
|
||
|
||
### 19.1 必要 UI
|
||
|
||
```text
|
||
节奏轨道
|
||
时间锚点图标
|
||
四拍槽
|
||
中央判定反馈
|
||
当前相位显示
|
||
玩家血量
|
||
玩家能量
|
||
敌人血量或状态
|
||
```
|
||
|
||
### 19.2 四拍槽显示
|
||
|
||
只显示:
|
||
|
||
```text
|
||
A / W / S / sp / ∅
|
||
```
|
||
|
||
不在槽内显示:
|
||
|
||
```text
|
||
Perfect / Good / Bad / Miss
|
||
```
|
||
|
||
### 19.3 时间锚点显示
|
||
|
||
时间锚点必须区别于普通节奏点。
|
||
|
||
建议显示内容:
|
||
|
||
```text
|
||
特殊锚点图标
|
||
明显颜色
|
||
靠近中心时强化提示
|
||
成功时锁定反馈
|
||
失败时相位切换反馈
|
||
```
|
||
|
||
### 19.4 相位显示
|
||
|
||
HUD 必须始终显示当前相位:
|
||
|
||
```text
|
||
Past
|
||
Future
|
||
```
|
||
|
||
相位切换时应有明显短反馈,但不遮挡节奏判断。
|
||
|
||
---
|
||
|
||
## 20. 音乐音效系统
|
||
|
||
### 20.1 音乐层
|
||
|
||
游戏需要两套音乐层:
|
||
|
||
```text
|
||
Past Loop
|
||
Future Loop
|
||
```
|
||
|
||
### 20.2 音乐要求
|
||
|
||
两套音乐必须满足:
|
||
|
||
```text
|
||
BPM 一致
|
||
拍号一致
|
||
小节长度一致
|
||
Loop 长度一致
|
||
起始点严格对齐
|
||
每一拍的位置严格对齐
|
||
```
|
||
|
||
### 20.3 切换规则
|
||
|
||
相位切换时不重启音乐。
|
||
|
||
```text
|
||
当前播放到第 N 秒
|
||
→ 从另一相位音乐的第 N 秒继续播放
|
||
```
|
||
|
||
建议实现:
|
||
|
||
```text
|
||
Past Loop 与 Future Loop 同时播放。
|
||
Past 相位:Past 音量 1,Future 音量 0。
|
||
Future 相位:Past 音量 0,Future 音量 1。
|
||
切换时 0.2s - 0.5s 交叉淡入淡出。
|
||
```
|
||
|
||
核心原则:
|
||
|
||
```text
|
||
世界可以切换,节奏不能断。
|
||
```
|
||
|
||
### 20.4 必要音效
|
||
|
||
```text
|
||
普通按键反馈
|
||
Perfect
|
||
Good
|
||
Bad
|
||
Miss
|
||
时间锚点出现
|
||
时间锚点成功
|
||
时间锚点失败
|
||
相位切换 Past → Future
|
||
相位切换 Future → Past
|
||
普攻击中
|
||
技能释放
|
||
蓄力开始
|
||
蓄力等级提升
|
||
蓄力释放
|
||
防御成功
|
||
防御硬直
|
||
受击
|
||
死亡
|
||
```
|
||
|
||
---
|
||
|
||
## 21. 数据资源结构
|
||
|
||
### 21.1 ActionData
|
||
|
||
每个动作一份数据:
|
||
|
||
```text
|
||
action_id
|
||
name
|
||
category
|
||
input_pattern
|
||
release_condition
|
||
prefix_actions
|
||
suffix_actions
|
||
effects
|
||
base_damage
|
||
base_horizontal_move
|
||
base_vertical_move
|
||
knockback_distance
|
||
knockup_distance
|
||
super_armor_duration
|
||
guard_duration
|
||
dash_distance
|
||
energy_gain
|
||
energy_cost
|
||
duration
|
||
hitbox_profile
|
||
animation_name
|
||
sfx_name
|
||
```
|
||
|
||
### 21.2 ChartEventData
|
||
|
||
```text
|
||
event_id
|
||
event_type
|
||
beat_time
|
||
window_size
|
||
visual_marker
|
||
audio_cue
|
||
condition
|
||
```
|
||
|
||
### 21.3 TimeAnchorData
|
||
|
||
```text
|
||
anchor_id
|
||
beat_time
|
||
trigger_type
|
||
combo_frequency_profile
|
||
success_rule
|
||
fail_rule
|
||
perfect_good_buff_gain
|
||
phase_shift_buff_loss_stack
|
||
success_feedback
|
||
fail_feedback
|
||
```
|
||
|
||
字段约定:
|
||
|
||
```text
|
||
perfect_good_buff_gain = 1
|
||
bad_buff_gain = 0
|
||
phase_shift_buff_loss_stack = 2
|
||
```
|
||
|
||
### 21.4 AttackBuffData
|
||
|
||
```text
|
||
buff_id
|
||
stack_count
|
||
max_stack = 7
|
||
damage_bonus_per_stack = 0.50
|
||
max_damage_bonus = 3.50
|
||
phase_shift_loss_stack = 2
|
||
```
|
||
|
||
### 21.5 PhaseProfile
|
||
|
||
```text
|
||
phase_id: Past / Future
|
||
visual_profile
|
||
audio_layer
|
||
enemy_modifier_table
|
||
ui_theme
|
||
```
|
||
|
||
### 21.6 EnemyData
|
||
|
||
```text
|
||
enemy_id
|
||
enemy_type
|
||
base_hp
|
||
base_damage
|
||
phase_strength_type
|
||
past_modifier
|
||
future_modifier
|
||
actions
|
||
animation_set
|
||
```
|
||
|
||
---
|
||
|
||
## 22. 开发阶段
|
||
|
||
### 阶段 1:节奏输入与普攻闭环
|
||
|
||
目标:
|
||
|
||
```text
|
||
A 可以判定并释放普攻一段、二段、三段。
|
||
Miss 写入 ∅。
|
||
四拍槽正常显示。
|
||
能量回复生效。
|
||
```
|
||
|
||
### 阶段 2:技能与能量闭环
|
||
|
||
目标:
|
||
|
||
```text
|
||
[A][sp] 释放突进。
|
||
[A][A][sp] 释放连段终结。
|
||
[A][A][A][sp] 释放震地击飞。
|
||
技能消耗能量。
|
||
能量不足时技能失败。
|
||
```
|
||
|
||
### 阶段 3:空中动作与蓄力
|
||
|
||
目标:
|
||
|
||
```text
|
||
W 释放上挑并进入空中。
|
||
空中 A 释放空中连斩。
|
||
空中 S 释放下坠攻击。
|
||
短按 S 释放防御。
|
||
A 长按进入蓄力,松开释放剑雨。
|
||
S 长按进入蓄力,Space 释放斩波。
|
||
```
|
||
|
||
### 阶段 4:时间锚点、攻击 Buff 与相位切换
|
||
|
||
目标:
|
||
|
||
```text
|
||
TimeAnchorEvent 周期性出现。
|
||
Perfect / Good 输入维持相位,并获得 1 层攻击 Buff;Bad 输入只维持相位。
|
||
AttackBuff 每层提供 +50% 攻击力,最高 7 层。
|
||
Miss 或无输入切换 Past / Future。
|
||
相位切换时 AttackBuff 层数减少 2 层。
|
||
HUD 显示当前相位和攻击 Buff 层数。
|
||
```
|
||
|
||
### 阶段 5:敌人相位强弱
|
||
|
||
目标:
|
||
|
||
```text
|
||
PastStrongEnemy 在 Past 强、Future 弱。
|
||
FutureStrongEnemy 在 Future 强、Past 弱。
|
||
小怪基础 HP 为 650。
|
||
强势相位每 1 拍攻击一次,受到伤害 25%。
|
||
弱势相位每 2 拍攻击一次,受到伤害 250%。
|
||
相位切换不改变小怪当前生命值,后续倍率按新相位生效。
|
||
```
|
||
|
||
### 阶段 6:双音乐层切换
|
||
|
||
目标:
|
||
|
||
```text
|
||
Past Loop 与 Future Loop 同步播放。
|
||
相位切换时交叉淡入淡出。
|
||
音乐不重启。
|
||
节奏判定不受切换影响。
|
||
```
|
||
|
||
### 阶段 7:Boss 与表现优化
|
||
|
||
目标:
|
||
|
||
```text
|
||
Boss 行为状态可随相位切换,但 Boss HP 与受伤倍率不随相位变化。
|
||
增加相位切换特效。
|
||
完善 UI、音效、震屏、命中反馈。
|
||
```
|
||
|
||
---
|
||
|
||
## 23. 验收清单
|
||
|
||
### 23.1 输入与动作
|
||
|
||
```text
|
||
所有输入先节奏判定。
|
||
Perfect / Good / Bad 可以执行动作。
|
||
Miss 不执行动作。
|
||
Miss 写入 ∅。
|
||
A 能打出一段、二段、三段。
|
||
[A][sp] 能释放突进。
|
||
[A][A][sp] 能释放连段终结。
|
||
[A][A][A][sp] 能释放震地击飞。
|
||
W 能释放上挑并进入空中。
|
||
空中 A 能释放空中连斩。
|
||
空中 S 能释放下坠攻击。
|
||
空中没有可接入动作时自动进入落下。
|
||
短按 S 能释放防御。
|
||
防御能抵挡正面普通攻击。
|
||
防御效果受 Perfect / Good / Bad 判定影响。
|
||
Miss 时防御不释放。
|
||
A 长按可以进入蓄力并释放剑雨。
|
||
S 长按可以进入蓄力并释放斩波。
|
||
```
|
||
|
||
### 23.2 四拍槽
|
||
|
||
```text
|
||
四拍槽最多 4 个。
|
||
四拍槽只显示 A / W / S / sp / ∅。
|
||
四拍槽不显示 Perfect / Good / Bad / Miss。
|
||
第 4 槽写入后结算并清空。
|
||
技能成功释放后清空。
|
||
包含 ∅ 的序列不能跨槽读取技能。
|
||
```
|
||
|
||
### 23.3 时间锚点
|
||
|
||
```text
|
||
普通节奏点不会切换相位。
|
||
TimeAnchorEvent 会周期性出现。
|
||
TimeAnchorEvent 可以被条件触发。
|
||
锚点窗口内 Perfect / Good / Bad 输入维持当前相位。
|
||
锚点窗口内 Perfect / Good 输入增加 1 层攻击 Buff;Bad 输入不增加攻击 Buff。
|
||
锚点窗口内 Miss 或无输入切换 Past / Future。
|
||
相位切换时攻击 Buff 层数减少 2 层,最低为 0 层。
|
||
TimeAnchor 本身不写入四拍槽。
|
||
玩家在锚点窗口内的实际输入照常写入四拍槽。
|
||
连击数越高,TimeAnchorEvent 出现越频繁。
|
||
TimeAnchorEvent 频率档位为:0-7 连击每 4 拍 1 个,8-15 连击每 4 拍 2 个,16+ 连击每 4 拍 4 个。
|
||
TimeAnchorEvent 频率上限为每 4 拍内 4 个 RhythmBeat 都升级为 TimeAnchor。
|
||
每个 4 拍窗口内,第一次成功锚定 TimeAnchorEvent 时回复生命。
|
||
TimeAnchorEvent 回血量为:Perfect 30 HP,Good 20 HP,Bad 10 HP。
|
||
玩家当前生命低于最大生命 50% 时,本次 TimeAnchorEvent 回血翻倍。
|
||
TimeAnchorEvent 回血不能超过玩家最大生命。
|
||
```
|
||
|
||
### 23.4 相位系统
|
||
|
||
```text
|
||
当前相位只有 Past / Future。
|
||
Past / Future 共用碰撞结构。
|
||
相位切换不改变 TileMap 碰撞。
|
||
相位切换改变视觉、音乐、敌人倍率、UI。
|
||
PastStrongEnemy 与 FutureStrongEnemy 的强弱倍率正确变化。
|
||
小怪当前 HP 是单一真实值,相位切换不重算、不按百分比转换、不回复。
|
||
```
|
||
|
||
### 23.4.1 攻击 Buff
|
||
|
||
```text
|
||
攻击 Buff 初始为 0 层。
|
||
Perfect / Good 成功收集 1 个时间锚点后增加 1 层;Bad 不增加层数。
|
||
每层攻击 Buff 提供 +50% 攻击力。
|
||
最大层数为 7 层。
|
||
最大攻击增幅为 +350%。
|
||
达到 7 层后继续收集时间锚点不再增加层数。
|
||
相位切换时当前层数减少 2 层,最低为 0 层。
|
||
攻击 Buff 只影响玩家造成的伤害。
|
||
```
|
||
|
||
### 23.5 音乐音效
|
||
|
||
```text
|
||
Past Loop 与 Future Loop BPM 一致。
|
||
两套音乐起始点和拍点严格对齐。
|
||
切换相位时音乐不重启。
|
||
切换时使用交叉淡入淡出。
|
||
节奏判定不受音乐层切换影响。
|
||
Perfect / Good / Bad / Miss 有清晰音效反馈。
|
||
时间锚点成功和失败有不同音效反馈。
|
||
```
|
||
|
||
### 23.6 战斗
|
||
|
||
```text
|
||
普攻成功回复能量。
|
||
技能成功消耗能量。
|
||
蓄力进入状态不消耗能量,释放时消耗能量。
|
||
浮空和击飞能让角色或敌人离开地面。
|
||
击退能让目标进入击退状态并后退。
|
||
霸体期间受到伤害不会进入受击或击退状态。
|
||
冲刺期间可以穿过敌人。
|
||
防御期间可以抵挡正面普通攻击。
|
||
背后攻击、抓取、破防攻击、范围环境伤害不受防御减免。
|
||
受击和死亡能正确打断玩家动作。
|
||
小怪基础 HP 为 650。
|
||
小怪强势相位受到玩家伤害倍率为 25%,每 1 拍可攻击一次。
|
||
小怪弱势相位受到玩家伤害倍率为 250%,每 2 拍可攻击一次。
|
||
Boss HP 为 28000。
|
||
Boss 行为和表现可随相位变化。
|
||
Boss 当前 HP 与受到伤害倍率不随相位变化。
|
||
```
|
||
|
||
---
|
||
|
||
## 24. 当前版本优先级
|
||
|
||
最高优先级:
|
||
|
||
```text
|
||
节奏输入
|
||
动作执行
|
||
四拍槽
|
||
时间锚点
|
||
攻击 Buff 层数
|
||
相位切换
|
||
敌人相位强弱
|
||
双音乐层同步切换
|
||
```
|
||
|
||
第二优先级:
|
||
|
||
```text
|
||
蓄力动作
|
||
空中动作
|
||
防御动作
|
||
技能手感
|
||
UI 强反馈
|
||
音效完整性
|
||
```
|
||
|
||
第三优先级:
|
||
|
||
```text
|
||
Boss
|
||
高级特效
|
||
相位切换演出
|
||
更多敌人类型
|
||
复杂条件型时间锚点
|
||
```
|