- 新增 web/ 纯音频 HTML5 平台:共享引擎(手势/WebAudio 三层/设置/震动)、 Node 零依赖服务器(静态 + 注册登录 + 进度存档 API) - 游戏:剑与声(RPG 新作)、声命线、暗室(重设计)、音序回响(重设计)、 节拍行者(跟随领奏重构)、盲航(同向闪避重构);声东击西删除 - 全局功能:男声/女声双套 TTS 资产、三档语速、BGM 音量三档、 震动反馈语言(10 种震型)、服务器进度同步 - 资产:899 ogg + 899 m4a(Qwen3-TTS 双性别语音、Stable Audio 3 音效、 Mureka BGM 4+3 首),终检零缺失 - 文档:docs/design/ 13 篇设计审查文档、docs/audio/ 资产管线、 web/server/README.md API 文档
节拍行者(RHYTHM)
跟随领奏的节奏游戏,纯音频。系统奏一句,你在下一小节原样跟打—— 音要对,拍点也要对。建议戴耳机(有线优先,蓝牙延迟由 Good 窗口吸收)。
玩法
- 每个乐句 = 领奏 1 小节 + 应答 1 小节:先听系统用打击乐器演奏 2-4 个音的节奏型,然后在下一小节的相同拍点用相同手势跟打。
- 判定:Perfect ±120ms(乐器音 + 亮音 accent)/ Good ±250ms(只播乐器音)/ 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,解锁状态本地保存并同步大厅。
手势 → 乐器音
| 手势 | 乐器音 | 声像 |
|---|---|---|
| 单击 | 底鼓 kick | 中央低频 |
| 双击 | 军鼓 snare | 中央偏上 |
| 左滑 | 闭合镲 hat | 极左 |
| 右滑 | 开放镲 hat | 极右 |
| 上滑 | 高通 tom | 升调感 |
| 下滑 | 低通 tom | 降调感 |
你的每次出手都会实时奏响对应乐器音——跟对了,就能听到自己在演奏。
流程
- 首次进入:一句欢迎后进入 3 步交互教学(单底鼓 → 左右 → 三音带双击), 做错有纠正语音(早了/晚了/不是这个手势),同一步失败 2 次自动跳过; 教学中下滑 = 跳过教学。
- 选曲(二周目起):左右滑切曲目(播曲目名/未解锁提示),单击开始, 上滑听规则,下滑回大厅。
- 结算:播报评级(含准确率档位)与连击纪录;单击 = 再来一遍(同曲), 右滑 = 下一首(需已解锁),下滑 = 回大厅。
菜单
演奏中下滑呼出(模态暂停,BGM 断点续播)→ 单击循环选项(继续演奏/回大厅) → 双击确认 → 上滑 = 帮助(规则 + 设置引导)。 注意:下滑同时是"低通 tom"的演奏手势——仅当没有悬置或临近(1 秒内)的下滑 音符时,下滑才会呼出菜单;有下滑音符时它永远是演奏。
运行
python3 -m http.server 8105 --directory /home/ubuntu/SoundGame/web
# 浏览器打开 http://localhost:8105/rhythm/ ,建议戴耳机