Files
2026-07-06 22:59:47 -07:00

43 KiB
Raw Permalink Blame History

Anchor策划书1.0

0. 文档目标

本文档用于统一《Anchor》的核心玩法机制、系统边界、系统耦合关系、Godot 节点架构、动作规则、相位规则、敌人规则、UI 反馈、音乐音效要求与开发验收标准。

本文档只描述当前确认的游戏机制与实现结构,不包含世界观背景、剧情设定和宣传文案。


1. 游戏核心规则概述

《Anchor》是一款 2D 节奏横板动作游戏

玩家没有自由移动。玩家的位置变化来自攻击、技能、浮空、击飞、击退、下坠、受击和其他动作位移。玩家通过节奏窗口输入 A / W / S / Space,输入先经过节奏判定,再决定动作是否执行、动作效果强弱、能量变化和四拍槽记录。

游戏中存在两种时间相位:

Past
Future

Past 与 Future 共用同一套场地碰撞结构。相位切换只影响视觉表现、音乐层、UI 主题、敌人强弱和 Boss 状态,不改变玩家可站立区域和关卡碰撞结构。

谱面中存在普通节奏判定点,也存在特殊的 时间锚点。并非所有节奏判定点都是时间锚点。

普通节奏判定点只影响动作;时间锚点额外影响 Past / Future 相位。

普通节奏点:用于动作输入判定。
时间锚点:用于维持或切换当前时间相位。

时间锚点会周期性出现,也可以由战斗条件触发。

当时间锚点出现时:

玩家在锚点窗口内成功输入 Perfect / Good / Bad
→ 维持当前相位

玩家没有输入,或输入结果为 Miss
→ 切换到另一相位

时间锚点同时承担攻击成长功能。玩家成功锚定时间锚点时,Perfect / Good 获得 1 层攻击 BuffBad 只维持相位但不增加 Buff;连击数越高,时间锚点在每 4 拍窗口内出现得越密集;发生相位切换时,当前攻击 Buff 层数减少 2 层。

攻击 Buff 规则:

每层攻击 Buff:攻击力 +50%
最大层数:7 层
最大攻击增幅:+350%
相位切换损失:当前层数减少 2 层,最低为 0 层

2. 设计原则

2.1 动作原则

所有玩家主动行为都来自节奏输入。
所有按键先判定,再执行。
Miss 不执行动作。
Miss 写入四拍槽为 ∅。
动作位移由动作数据决定。
角色没有自由行走位移。

2.2 时间锚点原则

时间锚点是特殊谱面事件,不是每个节奏点。
时间锚点不会指定玩家必须按哪个键。
玩家可以用任意当前可用输入尝试锚定。
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 相位原则

Past / Future 共用同一套碰撞结构。
相位切换不改变关卡通路。
相位切换影响敌人强弱、视觉、音乐、UI。
相位切换是战斗策略,不是单纯惩罚。

2.4 Game Jam 范围原则

优先保证核心闭环:

节奏判定
→ 动作执行
→ 四拍槽
→ 时间锚点
→ 相位切换
→ 敌人强弱变化
→ 双相位音乐切换

低优先级内容不得阻塞核心闭环完成。


3. 系统总览

3.1 系统列表

系统 职责
节奏判定系统 将输入判定为 Perfect / Good / Bad / Miss
谱面事件系统 生成普通节奏提示、时间锚点、敌人提示、Boss 提示
时间锚点系统 判断锚点是否成功,并决定是否切换相位
时间锚点增益系统 根据连击数调整时间锚点频率,并管理攻击 Buff 层数
Past / Future 相位系统 管理当前相位,并通知视觉、音乐、敌人、UI
输入与动作系统 接收判定后的输入,执行普攻、技能、蓄力、防御、空中动作
四拍槽系统 记录最近四次输入结果,用于技能派生和 UI 展示
能量系统 管理普攻回复、技能消耗、蓄力释放消耗
战斗结算系统 处理命中、伤害、浮空、击飞、击退、霸体、冲刺、防御、受击、死亡
敌人系统 管理敌人行为、相位强弱倍率、攻击节奏
UI 反馈系统 显示节奏、时间锚点、四拍槽、相位、判定、能量、血量
音乐音效系统 管理 Past / Future 双音乐层同步切换和动作音效

4. 系统关系与数据流

4.1 一次普通动作输入的数据流

玩家按键
→ InputIntent
→ RhythmJudge 输出 JudgeResult
→ ActionSystem 判断当前条件是否能执行动作
→ 执行动作或判定失败
→ ComboSlotBuffer 写入槽位
→ EnergySystem 处理回复或消耗
→ Animation / SFX / UI 反馈

4.2 一次时间锚点的数据流

ChartRunner 触发 TimeAnchorEvent
→ UI 显示时间锚点
→ 玩家在窗口内输入或没有输入
→ RhythmJudge 输出 JudgeResult
→ TimeAnchorSystem 读取锚点窗口结果
→ 成功:PhaseManager 保持当前相位;Perfect / Good 使 AttackBuff 增加 1 层,Bad 不增加
→ 失败:PhaseManager 切换 Past / FutureAttackBuff 层数减少 2 层
→ EnemySystem / AudioLayerController / VisualLayer / UI 更新

4.2.1 连击、时间锚点和攻击 Buff 的数据流

玩家连续成功执行动作
→ ComboCounter 增加
→ TimeAnchorSystem 根据当前连击数调整 TimeAnchor 生成频率
→ TimeAnchorEvent 出现
→ 玩家成功锚定
→ Perfect / GoodAttackBuffStack + 1BadAttackBuffStack + 0
→ DamageResolver 按 AttackBuffStack 提高玩家攻击伤害

发生相位切换
→ AttackBuffStack 减少 2 层,最低为 0 层
→ DamageResolver 使用减少后的层数计算伤害

4.3 动作与时间锚点的关系

时间锚点不替代动作输入。玩家在时间锚点窗口内输入时,这次输入同时进入两个系统:

ActionSystem:决定动作是否执行。
TimeAnchorSystem:决定是否维持相位。

因此:

普通节奏输入可以只影响动作。
时间锚点输入既影响动作,也影响相位。

4.4 相位系统的输出对象

当当前相位变化时,PhaseManager 通知:

EnemySystem:更新敌人强弱倍率。
VisualLayer:切换 Past / Future 视觉表现。
AudioLayerController:切换 Past / Future 音乐层。
HUD:切换 UI 相位提示与主题色。
BossController:更新 Boss 当前相位状态。

5. 核心循环流程

音乐时间推进
→ 谱面标志向中心移动
→ 玩家根据节奏输入 A / W / S / Space
→ 输入进行 Perfect / Good / Bad / Miss 判定
→ 普通输入尝试执行动作
→ 动作结果写入四拍槽
→ 普攻回复能量,技能或蓄力释放消耗能量
→ 命中敌人后进行战斗结算
→ 连击数影响后续时间锚点出现频率
→ 若当前存在时间锚点事件,则同时判断是否维持相位
→ 时间锚点 Perfect / Good 成功时获得 1 层攻击 Buff,Bad 成功时只维持相位
→ 时间锚点失败时切换 Past / Future,并减少 2 层攻击 Buff
→ 敌人强弱、视觉、音乐、UI 跟随相位变化

6. Godot 节点架构

6.1 总体结构

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. 玩家节点架构

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 输入阶段

pressed
released
held

8.3 输入处理规则

所有输入先进入 RhythmJudge。
Perfect / Good / Bad 可以尝试执行动作。
Miss 不执行动作。
Miss 写入四拍槽为 ∅。
非 Miss 但动作条件不满足时,输入可以写入槽位,但不视为成功动作。
S 键在地面采用短按 / 长按区分:短按 S 触发防御;长按 S 进入 S 蓄力。

9. 节奏判定系统

9.1 判定结果

Perfect
Good
Bad
Miss

9.2 判定用途

判定结果用于影响:

动作是否执行
动作伤害倍率
普攻能量回复
技能能量消耗
蓄力释放消耗
防御减伤比例
时间锚点是否成功
时间锚点是否增加攻击 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 的区别

RhythmBeat 是底层节奏网格。
TimeAnchor 是挂在节奏网格上的特殊事件。

普通 RhythmBeat 不影响相位。 TimeAnchor 会影响相位。

10.3 时间锚点出现方式

时间锚点有两种生成方式。

周期性出现:

以每 4 拍为一个频率窗口生成 TimeAnchorEvent。
每 4 拍内 TimeAnchorEvent 数量随当前连击数提高。

条件触发:

当前相位持续时间达到阈值
场上出现强势相位敌人
Boss 准备相位技能
玩家连段达到指定数量
关卡流程进入指定段落

时间锚点频率受连击数影响。连击数越高,每 4 拍窗口内的 TimeAnchorEvent 数量越多。

频率上限不是额外生成更多图标,也不是让画面出现额外锚点。频率上限是:每 4 拍内 4 个 RhythmBeat 都升级为 TimeAnchor。

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 处于判定窗口内,玩家任意有效输入获得:

Perfect
Good
Bad

即视为时间锚点成功。

11.3 失败条件

时间锚点窗口内没有任何输入
输入结果为 Miss

即视为时间锚点失败。

11.4 成功结果

保持当前相位。
Perfect / Good:增加 1 层攻击 Buff。
Bad:不增加攻击 Buff。
按时间锚点回血规则结算生命回复。
播放锚定成功反馈。
不重置音乐时间。

11.5 失败结果

当前相位从 Past 切换到 Future,或从 Future 切换到 Past。
播放相位切换反馈。
不重置音乐时间。

11.6 时间锚点攻击 Buff

成功收集时间锚点时,Perfect / Good 让玩家获得 1 层攻击 Buff;Bad 只维持当前相位,不增加攻击 Buff。

每层攻击 Buff:攻击力 +50%
最大层数:7 层
最大攻击增幅:+350%
最大总攻击倍率:450%

攻击 Buff 按加算处理,只影响玩家造成的伤害,不影响节奏判定窗口、动作时长、动作位移、能量回复和能量消耗。

伤害计算建议:

最终伤害 = 动作基础伤害 × 节奏判定伤害倍率 × (1 + 攻击 Buff 层数 × 50%)

当攻击 Buff 达到 7 层后,继续成功收集时间锚点不再增加层数,但仍播放锚点成功反馈。

11.7 相位切换对攻击 Buff 的影响

每次发生 Past / Future 相位切换时,当前攻击 Buff 层数减少 2 层,最低降至 0 层。

示例:

7 层 → 5 层
5 层 → 3 层
2 层 → 0 层
1 层 → 0 层
0 层 → 0 层

建议公式:

attack_buff_stack = max(attack_buff_stack - 2, 0)

这个规则只在相位实际切换时触发。成功维持当前相位不会减少攻击 Buff。

11.8 连击数对时间锚点频率的影响

连击数越高,后续时间锚点在每 4 拍窗口内出现得越频繁。

该规则用于奖励稳定节奏输入和连续成功动作。连击越高,玩家越容易获得更多时间锚点,从而获得更多攻击 Buff。

时间锚点频率存在上限:

上限 = 每 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 相位状态

Past
Future

12.2 相位影响范围

相位影响:

敌人强弱倍率
Boss 状态
背景和场景视觉层
UI 主题色
音乐层音量
部分特效颜色

相位不影响:

TileMap 碰撞
平台位置
玩家输入规则
四拍槽容量
基础节奏 BPM
音乐播放时间轴

12.3 相位切换规则

Past → Future
Future → Past

切换由 TimeAnchorSystem 触发。

每次相位实际切换时,当前攻击 Buff 层数减少 2 层,最低为 0 层。

attack_buff_stack = max(attack_buff_stack - 2, 0)

相位切换不清空四拍槽,不重置音乐时间,不重置玩家能量。

相位切换不改变玩家、小怪或 Boss 的当前生命值,也不追溯已经结算完成的伤害。相位切换后,小怪后续受到伤害倍率、造成伤害倍率和攻击拍点按新相位规则生效。若小怪攻击动作已经开始,本次攻击保留动作开始时的相位参数,下一次攻击再使用新相位参数。

12.4 相位切换表现

短暂画面闪白 / 闪色
UI 相位标识变化
敌人外观状态变化
Past / Future 音乐层交叉淡入淡出

13. 四拍槽系统

13.1 显示符号

A
W
S
sp
∅

sp 表示 Space。 表示 Miss。

13.2 容量规则

最多保存 4 个槽位。
每次输入判定并尝试动作后写入 1 个槽位。
第 4 槽写入后进行结算,然后清空。
技能成功释放后立即清空。

13.3 技能读取规则

地面技能读取以 sp 结尾的连续有效序列:

[A][sp]         → 突进
[A][A][sp]      → 连段终结
[A][A][A][sp]   → 震地击飞

包含 的序列不能跨槽读取。

13.4 时间锚点与四拍槽关系

TimeAnchor 本身不写入四拍槽。只有玩家在时间锚点窗口内实际输入时,才按普通输入规则写入四拍槽。


14. 能量系统

14.1 能量来源

普攻成功释放回复能量。

Perfect:回复完整数值
Good:回复较少
Bad:回复更少
Miss:不回复

14.2 能量消耗

技能和蓄力释放消耗能量。

Perfect:消耗较低
Good:标准消耗
Bad:消耗较高
Miss:不释放,不消耗

14.3 能量不足

如果能量不足:

技能不释放。
动作结果为失败。
可以写入输入槽,但 action_executed = false。
不触发技能伤害。

14.4 生命恢复

生命恢复绑定时间锚点,不绑定具体攻击动作,避免玩家为了回血重复刷单一动作。

每个 4 拍窗口内,第一次成功锚定时间锚点时回复生命。
Perfect:回复 30 HP
Good:回复 20 HP
Bad:回复 10 HP
Miss / 未输入:不回复,并触发相位切换

当玩家当前生命低于最大生命 50% 时,本次时间锚点回血量翻倍:

Perfect:回复 60 HP
Good:回复 40 HP
Bad:回复 20 HP

回血量不能超过玩家最大生命。攻击 Buff 是否增加与回血分开结算:Bad 可以维持相位并触发对应回血,但不增加攻击 Buff。


15. 动作系统

15.1 动作分类

普攻
技能
蓄力
防御
生命状态
基础状态

15.2 分类规则

普攻:成功释放回复能量,回复数值和节奏判定有关。 技能:成功释放消耗能量,消耗数值和节奏判定有关。 蓄力:进入蓄力状态不消耗能量,释放攻击时才消耗能量;蓄力分为 3 个等级,等级越高伤害越高,消耗越高。 防御:主动防御状态,成功释放后可抵挡正面攻击;防御效果受节奏判定影响。 生命状态:由战斗结果触发,不由玩家主动释放。 基础状态:用于表现待机、转身等,不参与伤害结算。

15.3 效果定义

浮空:让自身或目标离开 [地面],用于自身起跳、空中连段或进入空中状态。 击退:让目标进入 [击退] 状态,并按动作的击退距离向受击方向后移。 击飞:让目标离开 [地面],进入空中受击或浮空状态,位移由击飞距离决定。 霸体:动作过程中在霸体时间内受到伤害不会进入 [受击] / [击退] 状态。 冲刺:动作过程中自身碰撞体积消失,可以穿过敌人。 防御:动作过程中可抵挡正面普通攻击,具体减伤比例由节奏判定决定。

15.3.1 效果参数

有对应效果的动作必须填写对应参数;没有该效果时参数为 0。

参数 适用效果 说明
击退距离 击退 目标在 [击退] 状态中的水平后退距离。
击飞距离 击飞 目标被打离地面的高度 / 上抛距离。
霸体时间 霸体 动作开始后保持霸体的时间;超过该时间后恢复正常受击规则。
冲刺距离 冲刺 自身在冲刺动作中的水平位移距离。
防御时间 防御 正面防御有效的持续时间。

15.4 释放条件

所有主动动作的释放条件只使用:

[地面]
[空中]

动作前置、四拍槽要求、能量要求、蓄力等级写入动作数据。

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 / 等级350 动作时长:等级10.8s / 等级21.0s / 等级31.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 / 等级340 动作时长: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 敌人类型

敌人至少分为两类:

PastStrongEnemy
FutureStrongEnemy

普通小怪基础生命建议值:

小怪 HP650

小怪只有一条真实生命值。相位切换不会重算小怪当前 HP,也不会按百分比换算或恢复生命。

17.2 PastStrongEnemy

Past 相位:强
Future 相位:弱

建议倍率:

相位 状态 造成伤害 受到伤害 攻击拍点
Past 强势 140% 25% 每 1 拍攻击一次
Future 弱势 70% 250% 每 2 拍攻击一次

17.3 FutureStrongEnemy

Future 相位:强
Past 相位:弱

建议倍率:

相位 状态 造成伤害 受到伤害 攻击拍点
Future 强势 140% 25% 每 1 拍攻击一次
Past 弱势 70% 250% 每 2 拍攻击一次

17.4 小怪相位切换结算

相位切换不改变小怪当前生命值。
相位切换不追溯已经结算完成的伤害。
相位切换后,小怪后续受到伤害倍率、造成伤害倍率和攻击拍点按新相位规则生效。
若小怪攻击动作已经开始,本次攻击保留动作开始时的相位参数,下一次攻击再使用新相位参数。

设计目标:

弱势相位:小怪约 1 个重技能加补刀,或 2 个技能击杀。
强势相位:无攻击 Buff 时约十几到二十多次攻击击杀。
满攻击 Buff 时允许玩家强行击杀强势相位小怪,作为高水平维持节奏的奖励。

17.5 敌人行为原则

敌人行为可以简单,但相位强弱必须清楚。
敌人不依赖复杂 AI。
敌人攻击应能被节奏动作、防御、浮空、击飞、击退或相位策略影响。

18. Boss 规则

Boss 是可选扩展内容。若时间允许,Boss 使用同一个 Boss 在 Past / Future 下不同状态的方式实现。

Boss 基础生命建议值:

Boss HP28000

Boss 设计目标:玩家在满攻击 Buff 且能稳定维持输出的情况下,约 30 秒击败 Boss。

18.1 Boss 相位差异

Past 状态:攻击慢,单次伤害高。
Future 状态:攻击快,频率高,单次伤害低。

Boss 行为、招式节奏和演出可以随相位变化;Boss 最大生命、当前生命和受到伤害倍率不随相位变化。

18.2 Boss 与时间锚点

Boss 可以触发条件型 TimeAnchorEvent。

Boss 准备特殊攻击
→ 生成 TimeAnchorEvent
→ 成功:维持当前相位
→ 失败:切换相位,Boss 状态变化,攻击 Buff 减少 2 层

相位切换不改变 Boss 当前生命值,也不追溯已经结算完成的伤害。

Boss 不作为第一优先级,核心目标仍是普通敌人与相位切换闭环。


19. UI 反馈系统

19.1 必要 UI

节奏轨道
时间锚点图标
四拍槽
中央判定反馈
当前相位显示
玩家血量
玩家能量
敌人血量或状态

19.2 四拍槽显示

只显示:

A / W / S / sp / ∅

不在槽内显示:

Perfect / Good / Bad / Miss

19.3 时间锚点显示

时间锚点必须区别于普通节奏点。

建议显示内容:

特殊锚点图标
明显颜色
靠近中心时强化提示
成功时锁定反馈
失败时相位切换反馈

19.4 相位显示

HUD 必须始终显示当前相位:

Past
Future

相位切换时应有明显短反馈,但不遮挡节奏判断。


20. 音乐音效系统

20.1 音乐层

游戏需要两套音乐层:

Past Loop
Future Loop

20.2 音乐要求

两套音乐必须满足:

BPM 一致
拍号一致
小节长度一致
Loop 长度一致
起始点严格对齐
每一拍的位置严格对齐

20.3 切换规则

相位切换时不重启音乐。

当前播放到第 N 秒
→ 从另一相位音乐的第 N 秒继续播放

建议实现:

Past Loop 与 Future Loop 同时播放。
Past 相位:Past 音量 1Future 音量 0。
Future 相位:Past 音量 0Future 音量 1。
切换时 0.2s - 0.5s 交叉淡入淡出。

核心原则:

世界可以切换,节奏不能断。

20.4 必要音效

普通按键反馈
Perfect
Good
Bad
Miss
时间锚点出现
时间锚点成功
时间锚点失败
相位切换 Past → Future
相位切换 Future → Past
普攻击中
技能释放
蓄力开始
蓄力等级提升
蓄力释放
防御成功
防御硬直
受击
死亡

21. 数据资源结构

21.1 ActionData

每个动作一份数据:

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

event_id
event_type
beat_time
window_size
visual_marker
audio_cue
condition

21.3 TimeAnchorData

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

字段约定:

perfect_good_buff_gain = 1
bad_buff_gain = 0
phase_shift_buff_loss_stack = 2

21.4 AttackBuffData

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

phase_id: Past / Future
visual_profile
audio_layer
enemy_modifier_table
ui_theme

21.6 EnemyData

enemy_id
enemy_type
base_hp
base_damage
phase_strength_type
past_modifier
future_modifier
actions
animation_set

22. 开发阶段

阶段 1:节奏输入与普攻闭环

目标:

A 可以判定并释放普攻一段、二段、三段。
Miss 写入 ∅。
四拍槽正常显示。
能量回复生效。

阶段 2:技能与能量闭环

目标:

[A][sp] 释放突进。
[A][A][sp] 释放连段终结。
[A][A][A][sp] 释放震地击飞。
技能消耗能量。
能量不足时技能失败。

阶段 3:空中动作与蓄力

目标:

W 释放上挑并进入空中。
空中 A 释放空中连斩。
空中 S 释放下坠攻击。
短按 S 释放防御。
A 长按进入蓄力,松开释放剑雨。
S 长按进入蓄力,Space 释放斩波。

阶段 4:时间锚点、攻击 Buff 与相位切换

目标:

TimeAnchorEvent 周期性出现。
Perfect / Good 输入维持相位,并获得 1 层攻击 Buff;Bad 输入只维持相位。
AttackBuff 每层提供 +50% 攻击力,最高 7 层。
Miss 或无输入切换 Past / Future。
相位切换时 AttackBuff 层数减少 2 层。
HUD 显示当前相位和攻击 Buff 层数。

阶段 5:敌人相位强弱

目标:

PastStrongEnemy 在 Past 强、Future 弱。
FutureStrongEnemy 在 Future 强、Past 弱。
小怪基础 HP 为 650。
强势相位每 1 拍攻击一次,受到伤害 25%。
弱势相位每 2 拍攻击一次,受到伤害 250%。
相位切换不改变小怪当前生命值,后续倍率按新相位生效。

阶段 6:双音乐层切换

目标:

Past Loop 与 Future Loop 同步播放。
相位切换时交叉淡入淡出。
音乐不重启。
节奏判定不受切换影响。

阶段 7Boss 与表现优化

目标:

Boss 行为状态可随相位切换,但 Boss HP 与受伤倍率不随相位变化。
增加相位切换特效。
完善 UI、音效、震屏、命中反馈。

23. 验收清单

23.1 输入与动作

所有输入先节奏判定。
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 四拍槽

四拍槽最多 4 个。
四拍槽只显示 A / W / S / sp / ∅。
四拍槽不显示 Perfect / Good / Bad / Miss。
第 4 槽写入后结算并清空。
技能成功释放后清空。
包含 ∅ 的序列不能跨槽读取技能。

23.3 时间锚点

普通节奏点不会切换相位。
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 HPGood 20 HPBad 10 HP。
玩家当前生命低于最大生命 50% 时,本次 TimeAnchorEvent 回血翻倍。
TimeAnchorEvent 回血不能超过玩家最大生命。

23.4 相位系统

当前相位只有 Past / Future。
Past / Future 共用碰撞结构。
相位切换不改变 TileMap 碰撞。
相位切换改变视觉、音乐、敌人倍率、UI。
PastStrongEnemy 与 FutureStrongEnemy 的强弱倍率正确变化。
小怪当前 HP 是单一真实值,相位切换不重算、不按百分比转换、不回复。

23.4.1 攻击 Buff

攻击 Buff 初始为 0 层。
Perfect / Good 成功收集 1 个时间锚点后增加 1 层;Bad 不增加层数。
每层攻击 Buff 提供 +50% 攻击力。
最大层数为 7 层。
最大攻击增幅为 +350%。
达到 7 层后继续收集时间锚点不再增加层数。
相位切换时当前层数减少 2 层,最低为 0 层。
攻击 Buff 只影响玩家造成的伤害。

23.5 音乐音效

Past Loop 与 Future Loop BPM 一致。
两套音乐起始点和拍点严格对齐。
切换相位时音乐不重启。
切换时使用交叉淡入淡出。
节奏判定不受音乐层切换影响。
Perfect / Good / Bad / Miss 有清晰音效反馈。
时间锚点成功和失败有不同音效反馈。

23.6 战斗

普攻成功回复能量。
技能成功消耗能量。
蓄力进入状态不消耗能量,释放时消耗能量。
浮空和击飞能让角色或敌人离开地面。
击退能让目标进入击退状态并后退。
霸体期间受到伤害不会进入受击或击退状态。
冲刺期间可以穿过敌人。
防御期间可以抵挡正面普通攻击。
背后攻击、抓取、破防攻击、范围环境伤害不受防御减免。
受击和死亡能正确打断玩家动作。
小怪基础 HP 为 650。
小怪强势相位受到玩家伤害倍率为 25%,每 1 拍可攻击一次。
小怪弱势相位受到玩家伤害倍率为 250%,每 2 拍可攻击一次。
Boss HP 为 28000。
Boss 行为和表现可随相位变化。
Boss 当前 HP 与受到伤害倍率不随相位变化。

24. 当前版本优先级

最高优先级:

节奏输入
动作执行
四拍槽
时间锚点
攻击 Buff 层数
相位切换
敌人相位强弱
双音乐层同步切换

第二优先级:

蓄力动作
空中动作
防御动作
技能手感
UI 强反馈
音效完整性

第三优先级:

Boss
高级特效
相位切换演出
更多敌人类型
复杂条件型时间锚点