feat(rhythm): 鼓手模式重构——屏幕六区鼓组 + 无鼓伴奏合拍(用户裁定重构)
- 屏幕3列×2行六区鼓组(列=声像左中右/行=音高上亮下沉),六件程序合成打击乐,三重冗余蒙眼可辨
- 无鼓伴奏BGM上跟随领奏 call&response + 加花句;3曲90/105/120 BPM解锁制,BPM实测89.99/105.00/120.01
- 引擎后向兼容扩展:onGesture补{x,y}坐标(单参回调零感知,15游戏+3引擎测试全量回归零失败)
- 判定简化:全部音符=分区点按零延迟,旧双击补偿/下滑折中退役;键盘Digit1-6+空格=家区
- 教学摸鼓认区(摸哪报哪,8s无触摸自动进阶)+重教≤2+降速DDA+归因真话律
- 保留旧作好评:跟随领奏核心/S~C评级/解锁制/判定口径/guide工程遗产
- 语音49id双性别+8key;R1+R2连续2轮4/4愿意玩P0=0裁定可交付;live直证33 Perfect dt≈0.00s
- 03号文档仅文末加取代指针;新设计24号;档案research/rhythm-drummer/;Mureka累计$1.35
This commit is contained in:
+36
-33
@@ -1,41 +1,45 @@
|
||||
# 节拍行者(RHYTHM)
|
||||
# 节拍行者(RHYTHM)· 鼓手模式
|
||||
|
||||
跟随领奏的节奏游戏,纯音频。系统奏一句,你在下一小节原样跟打——
|
||||
音要对,拍点也要对。建议戴耳机(有线优先,蓝牙延迟由 Good 窗口吸收)。
|
||||
屏幕分区打击乐节奏游戏,纯音频。整面屏幕是一面鼓:你在无鼓伴奏的乐队里
|
||||
当鼓手,系统(领奏)敲一小节,你在下一小节照着敲回来——鼓要选对,拍点也要对。
|
||||
建议戴耳机(有线优先,蓝牙延迟由 Good 窗口吸收)。
|
||||
|
||||
## 玩法
|
||||
|
||||
- 每个乐句 = **领奏 1 小节 + 应答 1 小节**:先听系统用打击乐器演奏
|
||||
2-4 个音的节奏型,然后在下一小节的相同拍点用相同手势跟打。
|
||||
- 判定:**Perfect ±150ms**(乐器音 + 亮音 accent)/ **Good ±350ms**(只播乐器音)/
|
||||
**Miss**(手势错或错过拍点:该音符不出声 + 一声闷镲 + 震动提醒)。
|
||||
判定时刻按真实触摸时刻算(引擎 immediateTap 按下即发 tap;滑动/双击按
|
||||
识别延迟补偿回触摸时刻)。Miss 不中断不掉血,歌照唱完。
|
||||
- 每个乐句 = **领奏 1 小节 + 应答 1 小节**:先听系统用打击乐演奏 2-4 音的
|
||||
节奏型(曲三 4-6 音),然后在下一小节的相同拍点敲相同的鼓。曲子开头有
|
||||
1 小节底鼓数拍。
|
||||
- **加花**:曲中/曲尾有八分音符密集加花(领奏一串快鼓),跟着连打,最后
|
||||
一记吊镲收束。
|
||||
- 判定:**Perfect ±150ms**(鼓音 + 亮音 accent)/ **Good ±350ms**(只播鼓音)/
|
||||
**Miss**(敲错鼓或错过拍点:闷镲 + 震动提醒)。点按按下即判(零识别延迟),
|
||||
Miss 不中断不掉血,歌照唱完。
|
||||
- 计分:Perfect=2 / Good=1 / Miss=0,评级 **S≥95% / A≥85% / B≥70% / C**。
|
||||
- 连击每 16 次有震动鼓励;乐句全 Perfect 有额外震动。
|
||||
- **3 首曲目解锁制**:《启程》90 BPM → 《追风》105 BPM(反拍)→ 《星爆》120 BPM
|
||||
(切分密集)。曲目 n 拿到 B 级以上解锁 n+1,解锁状态本地保存并同步大厅。
|
||||
|
||||
## 手势 → 乐器音
|
||||
## 屏幕分区 → 鼓组(3 列 × 2 行)
|
||||
|
||||
| 手势 | 乐器音 | 声像 |
|
||||
|---|---|---|
|
||||
| 单击 | 底鼓 kick | 中央低频 |
|
||||
| 双击 | 军鼓 snare | 中央偏上 |
|
||||
| 左滑 | 闭合镲 hat | 极左 |
|
||||
| 右滑 | 开放镲 hat | 极右 |
|
||||
| 上滑 | 高通 tom | 升调感 |
|
||||
| 下滑 | 低通 tom | 降调感 |
|
||||
| 长按 | —(非演奏手势) | Miss 反馈音 + 震动提醒 |
|
||||
| 区 | 位置 | 乐器 | 声像 |
|
||||
|---|---|---|---|
|
||||
| 踩镲 | 左上 | 闭合踩镲 | 左 |
|
||||
| 高嗵 | 上中 | 高音嗵 | 中 |
|
||||
| 吊镲 | 右上 | 吊镲(长尾) | 右 |
|
||||
| 军鼓 | 左下 | 军鼓 | 左 |
|
||||
| 底鼓 | 下中 | 底鼓(你的「家」) | 中 |
|
||||
| 低嗵 | 右下 | 低音嗵 | 右 |
|
||||
|
||||
你的每次出手都会实时奏响对应乐器音——跟对了,就能听到自己在演奏。
|
||||
**横着三列 = 左中右声像;竖着两行 = 上清亮下沉闷。** 六件乐器音色各异,
|
||||
声像 + 音高 + 音色三重线索,蒙眼可辨。键盘:数字 1-6 = 六区(1-3 上排,
|
||||
4-6 下排),空格 = 下中底鼓。
|
||||
|
||||
## 流程
|
||||
|
||||
- **首次进入**:一句欢迎后进入 5 步交互教学(单击 → 左右滑 → 上滑 → 下滑 →
|
||||
三音带双击),做错有纠正语音(早了/晚了/不是这个手势),同一步失败 2 次
|
||||
自动跳过;全程零通过时收尾播中性句(不夸"很好");教学中**下滑 = 跳过
|
||||
教学**(教到下滑步、临近下滑音符时除外——那时它是演奏)。
|
||||
- **首次进入**:欢迎 → 摸鼓认区(随便摸,听到哪面鼓就告诉你它在哪,摸到
|
||||
3 个不同的地方开始)→ 3 步跟打教学(底鼓家区 → 左右军鼓低嗵 → 上排
|
||||
踩镲高嗵吊镲),做错有纠正语音(早了/晚了/敲错鼓),同一步失败 2 次会
|
||||
放慢再教一遍,全程零惩罚;教学中**下滑 = 跳过教学**。
|
||||
- **选曲**(二周目起):左右滑切曲目(播曲目名/未解锁提示),单击开始,
|
||||
上滑听规则,下滑回大厅。
|
||||
- **结算**:播报评级(含准确率档位)与连击纪录;**单击 = 再来一遍(同曲),
|
||||
@@ -43,18 +47,17 @@
|
||||
|
||||
## 菜单
|
||||
|
||||
演奏中**下滑呼出**(模态暂停:谱面、判定、BGM 全部冻结,BGM 断点续播)→
|
||||
**单击循环选项**(继续演奏/回大厅)→ **双击确认** → **上滑 = 帮助**(规则 +
|
||||
设置引导)。菜单打开后 **1 秒去抖独占期**:期内不收任何手势(防演奏途中被
|
||||
弹菜单时,已在路上的手势直接穿透菜单误确认)。
|
||||
注意:下滑同时是"低通 tom"的演奏手势——**自下滑音符的领奏响起到判定
|
||||
死线之间**,下滑永远是演奏;音符刚被判定死线拖死的短窗内(识别延迟、手势
|
||||
还在路上)同样按演奏处理,绝不弹菜单;仅当没有悬置、临近或刚拖死的下滑
|
||||
音符时才呼出菜单。
|
||||
演奏中**下滑呼出**(模态暂停:谱面、判定、BGM 全部冻结,BGM 断点续播,
|
||||
恢复前先听 4 拍数拍)→ **单击循环选项**(继续演奏/回大厅)→ **双击确认**
|
||||
→ **上滑 = 帮助**(规则 + 设置引导)。菜单打开后 **1 秒去抖独占期**:期内
|
||||
不收任何手势(防已在路上的手势穿透菜单误确认)。
|
||||
|
||||
## 运行
|
||||
|
||||
```bash
|
||||
python3 -m http.server 8105 --directory /home/ubuntu/SoundGame/web
|
||||
python3 -m http.server 8105 --directory /home/xsl/AutoVideo/SoundGame/web
|
||||
# 浏览器打开 http://localhost:8105/rhythm/ ,建议戴耳机
|
||||
```
|
||||
|
||||
无头试玩:`tools/node/bin/node web/rhythm/test/playtest.mjs`
|
||||
(断言清单 docs/design/24-rhythm-drummer.md §11)。
|
||||
|
||||
Reference in New Issue
Block a user