D-20260809-05|音訊槽位、UI Cue 與賽事空間音訊¶
背景與驅動力¶
主題契約允許音效槽為空並安全 no-op,但缺少單一槽位權威、全站 UI cue 埠、賽事事件路由與世界 音空間化邊界。各元件若直接挑音檔或自行解讀 physics event,會產生重複映射、生命週期洩漏,並 可能讓 presentation 狀態反向影響模擬。
考慮過的選項¶
- 原生 Web Audio 空間層以
equalpower起步:成本較低,並把 HRTF 留作後續選項,採納。 - 原生 Web Audio 空間層直接使用 HRTF:方位感較完整,但原裁決只把它列為後續選項。
(流水帳未記錄「各頁直接播放」或「引入第三方空間音訊引擎」作為正式替代方案。)
決定¶
音訊槽位由單一型別權威列出 UI、賽事與世界音;主題只提供對應資產,空槽安全 no-op。UI kit
透過最小 cue port 統一 button/toast 事件,RaceAudioRouter 集中把倒數、過圈、完賽、損壞、
碰撞、技能、武器與車輛 loop 映射到槽位。世界音使用原生 Web Audio 的 listener/source,
panningModel 以 equalpower 起步並把 HRTF 留作後續選項;listener 綁實際 camera,source 消費呈現位姿。音訊只讀 presentation event,
不得進 consensus、rollback、ledger、checksum 或回饋 physics。
後果與影響¶
補音檔仍是主題資料變更,不需修改播放程式;新增事件槽位則要更新單一名錄與對應測試。空間音 生命週期、平面 UI cue 與設定音量軸有明確邊界,觀戰可重用呈現資料而不擴張賽事協議權威。