4.0 KiB
技能/UI 混音试听收尾(2026-10-22)
已生成五份可试听的离线混音,使用正式入库音频、Unity Pipeline 读取的真实音源参数及第20关 T2 权威轨迹。这是离线重建,不是 Unity 实录或微信设备录音;主观听审尚待确认。
| 试听文件 | 内容与时间定位 | 长度 | 4倍过采样峰值 |
|---|---|---|---|
| menu_ui.wav | 《微风小镇》+10个v3 UI音效;1.0秒起每1.4秒依次 Click/Confirm/Back/Open/Close/Tab/Claim/Deny/Toggle/Notify | 17秒 | -4.31 dBFS |
| skill_bank.wav | 0.75秒起每1.6秒依次 FireCharge/FireLaunch/FireHit/RockHit/Shield/Heal/Slow/Lightning/EnemyHit,保持正式单音增益 | 16秒 | -30.29 dBFS |
| battle_1x.wav | 第20关T2轨迹前23.5秒,技能+敌人反馈;tick200时模拟UI开关音(1×为10.5秒)。菜单BGM按现有战斗规则暂停 | 26秒 | -9.47 dBFS |
| battle_2x.wav | 同一轨迹双速,原音高,5.5秒模拟UI开关音;技能与敌人池抢占、同cast去重及敌人75ms同音保护 | 26秒 | -9.47 dBFS |
| overlap_stress.wav | 1~4.75秒每0.25秒叠加9种技能、5种敌人攻击和1种UI音效;人为压力样例 | 8秒 | -3.47 dBFS |
输出为48kHz/PCM16/立体声。对应 *_float.wav 保留未截幅浮点母带,逐文件JSON包含事件时刻、声道池、增益及源音频SHA256。validation.json 汇总PCM哈希、样本峰值、4倍过采样峰值、RMS和越界样本数。五份越界样本数均为0,未加归一化或限幅器;这个结果只代表所列样例,不是任意输入或设备的零削波保证。
混音关注点
- 正式技能音源每路0.0375(0.3÷8),敌人池预算0.7/单路上限0.4,UI为0.8,菜单BGM为1.0。当前技能单音峰值约-30dBFS,应重点听治疗、护盾、减速在敌人连续攻击中是否被遮盖;本轮未擅自改变正式增益。
- 对比
menu_ui的 Claim/Deny/Toggle 与battle_2x,确认UI提示清晰但不过分突出;密集叠加检查刺耳、疲劳与抢占尾音。 skill_bank与前一首的听感响度不同,这是正式参数的实际比例,不能把逐文件归一化后的播放用作混音判断。- 音色喜好、遮蔽感和舒适度仍需人工试听;微信真机延迟、帧耗、内存和输出设备差异未在本轮验收。
方法与边界
入口 python Tools/build_audio_mix_review.py。输入参数回执 unity_snapshot.json 来自 ReviewAudioMix.Snapshot,通过Pipeline读取持久化Prefab;脚本只读正式资源和既有轨迹,不改服务器、账号、声音文件、Prefab或运行时代码。战斗离线重建遵循 PrototypeBattle.Trace 的命中映射以及 PrototypeFlow.DrainBattleFeedback 的敌人先于技能队列顺序;省略普通受击重复声音,重用8+8音源,技能按cast去重。没有模拟真实帧抖动、播放器过期事件或音频驱动延迟,不能替代实机同步测试。
曾尝试通过 UnityEngine.AudioRenderer 导出实录,但调用超时且Pipeline停止响应,没有产出可用实录。已移除录音入口,关闭本轮临时Play并重新打开原项目;启动前Boot无脏内容,恢复回执 unity_recovery.json 确认Boot无脏内容、非Play、无临时对象,当前音乐与音效开关均开启。原音效开关值只保存在被中断的内存任务中,重启后无法重新核验此前偏好;不声称该偏好已逐值还原。失败尝试不作为验收证据。API用途参考Unity AudioRenderer官方文档。
python Tools/verify_partner_skills.py 与 python Tools/validate_skill_runtime.py 通过:9/9音效与源/请求/成品哈希、25技能、10伙伴、5敌人和20关正式契约一致。TangoFlux来源声音沿用现有许可记录,本轮没有变更授权结论。未构建或发布Player。