跳轉到

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, panningModelequalpower 起步並把 HRTF 留作後續選項;listener 綁實際 camera,source 消費呈現位姿。音訊只讀 presentation event, 不得進 consensus、rollback、ledger、checksum 或回饋 physics。

後果與影響

補音檔仍是主題資料變更,不需修改播放程式;新增事件槽位則要更新單一名錄與對應測試。空間音 生命週期、平面 UI cue 與設定音量軸有明確邊界,觀戰可重用呈現資料而不擴張賽事協議權威。