3D 定位與衰減
約 753 字大約 3 分鐘
2025-10-03
🧭 讓聲音真正「在場景裡」
平面的聲音缺乏臨場感;藉由距離衰減、方向性與空間定位,玩家能直覺理解「聲音在哪裡」。本節是從『好聽』邁向『可信』的轉捩點。
🎯 本節你會收穫
- 🛰️ 理解 2D 與 3D Spatialization 差異與使用時機
- 📉 規劃距離衰減曲線(線性 / 指數 / 自訂)
- 🎯 設計指向性(Cone)應用情境
- 🛠️ 為單一聲音套用 Attenuation 與 3D 設定實作流程
- 🧪 建立測試方法與排查距離異常
🧠 3D Spatialization 是什麼?
依 Listener 與聲源相對距離 / 方向 → 改變:聲像(Pan)、音量、濾波(可選)與混響比例(延伸設計)。
📉 距離衰減曲線設計
| 策略 | 適用 | 聽感特徵 | 風險 |
|---|---|---|---|
| 線性 | 快速草稿 / Debug | 均勻下降,可預測 | 不自然(過平) |
| 指數 | 火焰 / 單點環境 | 近距離明顯,遠處柔和 | 參數過陡易突降 |
| 分段自訂 | 關鍵互動物件 | 精準貼合需求 | 耗時、易過度雕刻 |
設計步驟:
- 先標記「玩家能靠多近」= Min Distance(滿音量區)
- 再標記「再遠就不該聽到」= Max Distance(幾乎靜音)
- 避免中段過度起伏(UI 情境除外)
🎯 指向性(Cone)應用
適合:營火、擴音器、怪獸吼叫、引擎排氣。避免濫用在所有物件(浪費調整時間)。
| 參數 | 說明 |
|---|---|
| Inner Angle | 完整音量範圍 |
| Outer Angle | 超出後開始衰減 |
| Outer Volume | 外部最終音量(例 -6dB / -12dB) |
設計原則:角度不要太窄(否則玩家稍微偏移就突兀變暗)。
🛠️ 實作步驟(案例:營火)
- 新建 Attenuation ShareSet:
Att_Fire_Medium - 設距離:Min 0.5m / Max 25m(依地圖尺度調整)
- 曲線:前 2m 幾乎保持滿量,8m 之後緩降,20m 以後接近靜音
- 開啟 3D Spatialization(Positioning → 3D)
- 套用 Attenuation;如需方向性,再開 Cone 並測試背面差異
🔍 測試流程
- 在 Wwise Positioning 模擬:拖動 Listener 背前左右
- 驗證距離:不應過早消失或超範圍仍可聽到
- 驗證平滑:移動過程無瞬間跳音量
- 在遊戲內:實際場景空間大小是否與設計匹配(地圖縮放差異常見)
🧯 常見問題排查
| 問題 | 可能原因 | 解法 |
|---|---|---|
| 過早消失 | Max Distance 太小 | 放大範圍或改曲線尾段 |
| 近距離爆音 | Min 距離=0 + 過度疊加 | 設最小 0.3~0.5m 並檢查多實例 |
| 背面差異過大 | Cone Outer Volume 太低 | 調高或放寬角度 |
| 聲像偏移怪 | 聲源錨點位置錯 | 檢查遊戲端掛點 |
🚀 下節預告:效果與 Reverb Send
建立空間定位後,我們要補上「空氣感」與環境反射。下一節會學:Insert vs Aux、室內外 Reverb 策略與濁度控制技巧。
🎊 恭喜!你已經讓聲音真正進入三維世界——接下來加上空間尾韻讓它更有呼吸感!