SoundBank 管理與平台策略
約 621 字大約 2 分鐘
2025-10-03
📦 打包與載入策略 = 效能 + 穩定的根基
設計不良的 SoundBank 架構會導致:載入尖峰、記憶體爆、語音缺失、回歸測試困難。本章建立「資產 → Bank → 載入節奏」的乾淨策略。
🎯 本節你會收穫
- 🧬 理解 SoundBank 實際包含的內容與生成原理
- 🧩 掌握拆分策略(單大包 / 模組化 / 場景化)的取捨
- 📱 各平台(PC / 手機 / Switch)壓縮格式選擇與權衡
- 🔁 建立可追溯的版本與更新流程(Manifest / 日誌)
- 🧯 常見錯誤(播放失敗 / 漏載 / 語音缺)排查方法
一、SoundBank 內容
包含:Event 定義、媒體(音檔資料)、結構關聯、參數設定。
⚠️ SoundBank 命名官方限制
SoundBank 是受官方嚴格限制的元素之一:
- ✅ 只能使用:
A-Z、a-z、_、0-9(數字不開頭) - ❌ 不能使用:中文、特殊符號、空格、重音字母
- 範例:
Init_Bank✅、UI_Bank✅、Init-Bank❌、初始_Bank❌、3D_Audio❌ - 建議:使用 PascalCase 或 snake_case,如
UI_Bank、MusicBank、VO_English
二、拆分策略
| 策略 | 優點 | 風險 |
|---|---|---|
| 單大 Bank | 簡單 | 載入時間 / 記憶體大 |
| 模組化 | 可按需載入 | 管理複雜度提升 |
| 場景化 | 只載入需要場景 | 場景切換頻繁時易抖動 |
建議:至少拆出 Init + UI + Music + VO + 主要玩法模組。
三、平台差異
| 平台 | 推薦格式 | 備註 |
|---|---|---|
| PC / 主機 | PCM / ADPCM / Vorbis | 注重音質 |
| 行動 | Vorbis / Opus | 降低體積 |
| Switch | ADPCM / Vorbis | 平衡效能 |
四、壓縮與品質
- 長音樂:Vorbis(中高品質)
- 短 SFX:ADPCM 或 PCM(避免起音損失)
- VO:視語言密度與品質需求選 Vorbis / Opus
五、生成流程最佳實踐
- 每次資產改動 → 局部重建(Partial Generate)
- 版本標記:在 CI 建置過程輸出
banks_manifest.json - 遊戲啟動記錄實際載入 Bank 與失敗訊息
六、常見問題排查
| 現象 | 可能原因 | 解法 |
|---|---|---|
| Event 播放失敗 | Bank 未載入 | 確認載入順序(Init 首先) |
| 記憶體爆 | 一次載太多 Bank | 模組化載入 / Unload 不用的 |
| 語音缺失 | 語系未生成 | 勾選語系重新 Generate |
🚀 下節預告:效能與資源管理
下一節將聚焦 Voice 數量、Streaming / Memory 分配、壓縮解碼成本與 Profiler 優化流程。
🎊 恭喜!你已經為後續效能優化打下「資產打包與載入」的堅實地基!