61 lines
4.8 KiB
Markdown
61 lines
4.8 KiB
Markdown
# R6 音频轮次报告(2026-08-30,音乐音效总监)
|
||
|
||
本轮主题:爆音资产排查修复 + 状态 BGM 7 首 + RPG 战斗教学/全局跳过提示语音。Mureka 本轮 $0.21 / $1.00,**累计 $0.63 / $2.00**。
|
||
|
||
## 1. 爆音排查与修复
|
||
|
||
**工具**:`tools/scan_clicks.py`(扫描)/ `tools/fix_clicks.py`(修复),全程可复跑;原件备份在 `tools/asset_fix_backup/`(71 个文件)。
|
||
|
||
**扫描口径**:峰值 >-1dBFS / 首尾电平突变(首末 1ms 幅值 > 局部 50ms 峰值 15%,局部低于 -40dB 的静音区不判)/ 直流偏置 |DC|>0.001。voice 目录按任务要求**不动**(峰值 0.89 归一策略保留)。
|
||
|
||
**初扫结果(899 个 ogg 全量)**:
|
||
|
||
| 类别 | 数量 | 说明 |
|
||
|---|---|---|
|
||
| sfx/bgm 峰值过热 | 27 | 其中 rpg 15 个 SA3 one-shot 解码峰值高达 +0.9~+6.6dBFS(真·爆音源) |
|
||
| sfx/bgm 直流偏置 | 43 | 最大 0.076(rpg/atk_swing) |
|
||
| sfx/bgm 首尾突变 | 48 | 老资产无淡入淡出(storyline/escape/simon/space 为主) |
|
||
| voice 过热 | 340 | 不修(语音响度策略不动,见任务说明) |
|
||
|
||
**根因发现(重要)**:R4 的 rpg SA3 one-shot 源是近满幅高密度波形(rms 0.84 / 峰值 0dBFS,>15kHz 能量 22%),MDCT 有损编码(vorbis/aac/opus 全部)重建时过冲 +4~8dB——ffmpeg `volumedetect` 走 s16 中间格式把超幅削到 0.0dB 显示,**之前的 QC 完全没发现**。本轮修复 encode 环节改为「编码→解码回读真峰值→超 -3dB 则降增益 + 首轮 18kHz 低通→重编」(最多 3 次迭代)。
|
||
|
||
**修复结果**:71 个 sfx/bgm 文件重处理(storyline 10 / escape 10 / simon 7 / rhythm 7 / space 11 / rpg 26),统一标准:one-shot 去直流 + 首尾 8ms cos² 淡入淡出 + 峰值 -3dBFS(真峰值校验后);loop(amb_*/bgm)只去直流(交叉淡化循环不加首尾淡入淡出,避免破坏循环)。rpg one-shot 从 staging 无损 wav 重做,其余从备份初代源修复(避免多次有损转码)。
|
||
|
||
**复扫(终态)**:sfx/bgm 99 个 —— 过热 0 / 直流 0 / 首尾突变 0。**全绿。**
|
||
|
||
## 2. 状态 BGM(7 首,docs/design/10-feedback2-state-bgm.md)
|
||
|
||
| 资产 | task id | 响度 | 成品 |
|
||
|---|---|---|---|
|
||
| storyline `bgm/menu` | 158096439705601 | -24 LUFS(menu pad 档) | 90s 循环,mean -24.4dB |
|
||
| escape `bgm/menu` | 158096580149249 | -24 | mean -26.1dB |
|
||
| simon `bgm/menu` | 158096714629126 | -24(引擎再按 volume 0.3) | mean -25.8dB |
|
||
| rhythm `bgm/menu` | 158096850812929 | -24 | mean -25.3dB |
|
||
| space `bgm/menu` | 158097039425538 | -24 | mean -25.1dB |
|
||
| rpg `bgm/menu` | 158097182294017 | -24 | mean -25.9dB |
|
||
| rpg `bgm/explore`(恢复) | 158097360420865 | -20(引擎 volume 0.35) | mean -22.3dB |
|
||
|
||
全部一次成功选候选 0;强 onset 起点 + 90s + 3s crossfade 无缝循环 + ogg q3/m4a。既有主题曲全部不动(storyline dark_drone、escape drone、rhythm track90/105/120、space engine、rpg village/battle/boss/ending)。状态→BGM 映射与切换时机以 10 文档 §2-§7 为准。
|
||
|
||
## 3. 新语音(22 条,双性别)
|
||
|
||
| id | 游戏 | 条数 | 文案 |
|
||
|---|---|---|---|
|
||
| `tut_battle_1..5` | rpg | 5×2 | 首次战斗教学:回合制说明 / 左右滑选招式单击出手 / 听前摇双击格挡 / 防御减半与金疮药 / 开场收束 |
|
||
| `skip_hint` | 全 6 游戏 | 1×2×6 | 「单击可跳过旁白。」(各游戏既有 instruct 常量) |
|
||
|
||
均已合入 `tools/gen_voice_dual.py` 台词表并落盘 male/female 双格式。rpg 旁白现 113 id ×2(+NPC 14 平铺)。
|
||
|
||
## 4. 给游戏层的接线约定
|
||
|
||
1. **菜单/结算音乐**:所有游戏统一 `bgm/menu` id;切换时机与淡入时长按 10 文档逐游戏表(storyline 500ms、escape 400ms/结算 1500ms、simon 600ms/结算延后 1000ms、rhythm 800ms、space 300ms、rpg 战斗 400ms 快切)。
|
||
2. simon 游玩全程不得加载任何 bgm;`bgm/menu` 仅菜单与结算,volume 0.3。
|
||
3. rpg 双层:BGM 层报状态(menu/explore/village/battle/boss/ending),sfx 层 amb 报场景(手动 loop 接 `_sfxBus`,不变);胜利过渡 = battle 淡出 1500ms → explore 淡入 2000ms。
|
||
4. `tut_battle_1..5`:首场战斗(enc_teach_wolf)B_START 时按序链播,二周目起跳过;`skip_hint` 为备选通用句,接入与否由游戏层定。
|
||
5. `bgm=0` 时全部状态音乐不加载(含 menu pad 与 space engine——10 文档 §1.5 裁定)。
|
||
|
||
## 5. 复跑与终检
|
||
|
||
- `tools/check_all_assets.py` 终检已更新(`docs/audio/final-asset-check.md`):928 ogg + 928 m4a,双格式/0 字节/解码/性别集合一致性全绿。
|
||
- 遗留:voice 层 340 个文件峰值 >-1dBFS 属 R1 既定归一(0.89 峰值),非爆音(有 TTS 天然淡入);如需统一可考虑 R7 评估,但会破坏既有响度平衡,不建议。
|