Files
SoundGame/docs/audio/round6-report.md
T

4.8 KiB
Raw Blame History

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 评估,但会破坏既有响度平衡,不建议。