43 KiB
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 层攻击 Buff,Bad 只维持相位但不增加 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 / Future,AttackBuff 层数减少 2 层
→ EnemySystem / AudioLayerController / VisualLayer / UI 更新
4.2.1 连击、时间锚点和攻击 Buff 的数据流
玩家连续成功执行动作
→ ComboCounter 增加
→ TimeAnchorSystem 根据当前连击数调整 TimeAnchor 生成频率
→ TimeAnchorEvent 出现
→ 玩家成功锚定
→ Perfect / Good:AttackBuffStack + 1;Bad:AttackBuffStack + 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 / 等级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 敌人类型
敌人至少分为两类:
PastStrongEnemy
FutureStrongEnemy
普通小怪基础生命建议值:
小怪 HP:650
小怪只有一条真实生命值。相位切换不会重算小怪当前 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 HP:28000
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 音量 1,Future 音量 0。
Future 相位:Past 音量 0,Future 音量 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 同步播放。
相位切换时交叉淡入淡出。
音乐不重启。
节奏判定不受切换影响。
阶段 7:Boss 与表现优化
目标:
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 HP,Good 20 HP,Bad 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
高级特效
相位切换演出
更多敌人类型
复杂条件型时间锚点