Audio Container解密
約 4487 字大約 15 分鐘
WwiseAudio Container
2025-10-03
什麼是容器?
在Wwise中,容器(Container)是用來組織和管理聲音對象(Sound Object)的重要工具。如果類比FMOD的話就是Event裡面的Actions概念。
每種容器就像一個可以設定屬性的資料夾,裡面可以存放各式各樣的元素材,並且透過設定資料夾的屬性來設計裡面素材的播放方式。
容器的界面
Property Tabs (屬性標籤)
我們可以在Property Editor的上方看到許多選項卡,每個選項卡都有他們特定的功能和用途。
通用的標籤類型
![]()
RTPC:用來設定參數化的屬性,可以根據遊戲中的變量來動態調整音效的屬性,例如音量、音調等。STATES:透過State Group來設定音效的狀態,可以根據遊戲中的狀態來切換不同的音效行為。EFFECTS:用來添加和管理音效效果器,可以對音效進行各種處理,例如混響、延遲等。METADATA:用來設定Audio Object的元數據,可將該音效發送到Main或是Passthrough Mix。
音樂軌道的標籤類型
![]()
除了上方通用的標籤外,當我們選擇到Track時,會多出一個個專屬的選項卡:
TRANSITION:此選項卡用來設定音樂軌道之間的過渡效果,例如淡入淡出、交叉淡化等。
為什麽在Track的選項卡中,有時候Transition可以設定,有時候卻不能?
這是因為Transition的設定是根據Track的類型來決定的,例如:
- Normal Track / Random Track / Sequence Track:這些類型的Track不支援Transition的設定,因為它們的播放方式都是根據機率或順序,因此播放的內容是在當下的狀態決定的,無法進行過渡效果。
- Switch Track:可以設定Transition,因為它會根據Switch或State來切換播放不同的音樂片段。
關於Trainsition,你應該看看這一章
音樂物件的標籤類型
![]()
當我們使用了Music Segment的容器,或是Playlist / Switch Container時,會多出一個STINGER的選項卡。
Stinger是一種特殊的音效(音樂片段),可以在音樂播放的過程中插入短暫的音效片段,例如短短幾秒的鼓聲、或是一段刺激的音樂等。在這個選項卡中,我們可以設定Stinger的觸發條件、播放方式和其他屬性。
關於Stinger,我們有關於完整的章節!
Property Editor (屬性編輯器)
在中間的編輯區域中,屬性編輯器會根據我們選擇的容器類型顯示不同的屬性和設定選項,通常位置在左側或右側(可以調整)。
容器類型
Physical & Virtual Folder
![]()
在 Wwise 中,Physical Folder 是指實際存在於硬碟上的資料夾結構,而 Virtual Folder 則是 Wwise 內部用來組織和分類資源的邏輯結構。這兩者之間的區別在於:
- Physical Folder:實際的檔案系統資料夾,存放在硬碟上,可以直接透過檔案管理器訪問。
- Virtual Folder:Wwise 內部的邏輯資料夾,用於組織和分類音效資源,並不直接對應於檔案系統中的資料夾。
注意
你只能在最外層的Physical Folder裡建立Physical Folder和Work Unit,不能在Work Unit和Virtual Folder裡建立任何的Physical Folder。
Property Container
Property Container 是什麼?
![]()
簡單來說就是一個空的容器,可以用來組織和分類其他音效物件或容器。它本身不會產生聲音,但可以用來設定共用的屬性或效果,讓底下的子物件繼承這些設定。
根據Wwise官方的說法,Property Container和Container的差異在於(官方表格):
| 功能 | Container(容器)容器 | Property Container 財產容器 |
|---|---|---|
| 設置屬性值 設定屬性值 | ✔️ | ✔️ |
| 設置對象行為 設定物件行為 | ✔️ | |
| 播放對象 播放對象 | ✔️ |
也就是說,我們可以利用Property Container來設定一些共用的屬性,例如音量、音調、3D設定等,讓底下的子物件都能繼承這些設定,這樣可以大大減少重複設定的工作量。
首先,我們可以從上方的列表找到Property Container,點擊它來新建一個屬性容器。 具體操作方式可以參考以下影片:
注意
Property Container 不能直接播放聲音,也無法被做成事件來播放。
Random Container
隨機容器是什麼?
![]()
隨機容器是一種特殊的容器,可以用來隨機播放其內部的音效物件。這對於需要隨機化音效播放的情況非常有用,例如在遊戲中隨機播放不同的腳步聲。
隨機容器除了可以隨機播放內部的音效物件外,另外可以在Property中設定隨機播放的邏輯,例如:
- Play Mode:
- Continuous:會將所有聲音物件隨機播放完一次后停止。
- Step:每次觸發事件時隨機播放一個聲音物件。
- Transition
- Xfade Amp : 線性淡入淡出的音量。
- Xfade Power : 非線性淡入淡出的音量。
- Delay:播放完第一個素材後,延遲多少時間後再播放下一個素材。
- Sample Accurate:啟用後可以讓聲音在精確的時間點切換,避免因為淡入淡出而產生的延遲。
- Trigger Rate:觸發頻率,可以設定每個聲音觸發的最小間隔時間。
具體操作方法參考如下:
Sequence Container
序列容器是什麼?
![]()
序列容器其和隨機容器類似,它甚至可以在屬性欄中直接切換成隨機容器。但主要的功能還是用來順序播放其內部的音效物件。
在屬性設定的部分幾乎和隨機容器一樣,但多了一個At End of Playlist的選項,可以設定當播放完所有音效物件後的行為:
- Play in reverse order:反向播放。
- Restart: 從頭開始播放。
重要
通常我們會用序列容器來製作一些有順序的音效,例如:連續性的技能音效:當某個角色施放一個連續性的技能,但每個技能之間彼此有些微間隔,我們就可以透過組合隨機容器或其他容器,依序在序列容器中播放來達成這個需求。
Switch Container
切換容器是什麼?
![]()
切換容器是一個非常強大的容器,可以根據遊戲中的狀態或條件來切換播放不同的音效物件。 同時也可以在裡面設定不同的 Switch Group 和 State。
Swtich
在範例中,我們建立了一個Switch Container,並在裡面放入了三個不同材質的腳步聲音效(草地、金屬、木頭)。接著我們建立了一個Switch Group - FootstepType,並定義了三個Switch State,分別對應到不同的材質。
在屬性設定中我們可以讓他選擇自動分配,或是點擊左邊的"+"號手動分配Switch給每個音效物件。
直接做成三個獨立的Event不是更直覺嗎?
對於程式端來說,如果未來某一天聲音設計師刪除了一個不要的材質,或是新增一個材質聲音,在沒有通知程式端的情況下,可能會造成程序在運行時出現警告或錯誤,因為程式碼中有引用到不存在的Event,這對工作流來說是非常不友善的。
State
我們同樣建立了一個Switch Container,並在裡面用一首音樂作為範例,接着我們新建一個State Group - Occlusion,並定義了兩種不同的State,分別是True和False以及原本預設的None。(True表示聲音被遮蔽了,透過調整音量和LPF來模擬該效果。)
關於 State 和 Switch 還是不太理解...
State是全局的,也就是任何音效都可以被State影響,而Switch是局部的,只會影響到該Switch Container內的音效物件。
我可以用State來切換音效嗎?
原理上可以,但原則上是不建議。這部分的觀念我們可以到State vs Switch的章節來瞭解其中的細微差異。
Blend Container
混合容器是什麼?
![]()
混合容器允許我們根據一個或多個參數來動態調整音效的播放方式。這對於需要根據遊戲中的變量(例如角色速度、距離等)來改變音效的情況非常有用。
情境模擬
我們想要設計一個角鬥士在不同危險等級下,會有不同的群眾聲音和心跳聲音效,當危險等級越高時,群眾聲音會越大聲,而心跳聲音也會越快。希望使用一個容器和簡單的參數來完成。
為了達成上面的設計需求,我們可以使用Blend Container來實現。我們透過下方的影片來示範如何設定這個混合容器:
我們可以將上方的影片逐步分析:
步驟拆解
- 首先,我們將兩組(6個音效)分別放入混合容器中。
- DarkMist
- Applause
- Clap Rhythm
- Heartbeat
- Heartbeat Fast
- Heartbeat Fastest
- 接著,我們位於中間的Property Editor區域的部分 點擊
New Blend Track,新增一個準備用來混合的軌道。- 幫我們Track重新命名為
Crowd。 - 勾選Crossfade,並點擊右邊的
>>符號來新增一個用來混合的參數(如果尚未創建可以新增一個)。 - 重新命名為
Danger_Level(危險等級)並設定混合參數的範圍,例如:0到100。
- 幫我們Track重新命名為
- 此時我們可以在下方的
Name區塊看到我們剛才放入的6個音效物件。- 選中DarkMist,並放入右側
Blend Tracks的Crowd區域中,會將這個音效分類到這個軌道中。 - 重複上述步驟,將另外兩個音效Applause和Clap Rhythm也放入
Crowd軌道中。
- 選中DarkMist,並放入右側
- 此時我們想要再新增一個Blend Track,並命名為Heartbeat,同樣勾選Crossfade並將
Danger_Level參數放入這個軌道中。- 將剩下的三個音效Heartbeat、Heartbeat Fast和Heartbeat Fastest放入這個軌道中。
- 這樣我們就完成了兩個Blend Track的設定。
- 此時在Blend Tracks的部分已經看到設定好的兩組軌道,但需要從上到下依次安排混合的順序。
- 排序好後可以看到上方的軌道內已經出現了兩組音效混合在一起的圖表,分別從0-100的範圍(和你設定的RTPC範圍有關)
- 將他們調整到你想要的區間,並彼此重疊做交叉的淡入淡出。
- 最後,當我們在遊戲中調整
Danger_Level參數時,Wwise會根據這個參數的值來動態調整音效的播放方式,實現平滑的過渡效果。
Sound SFX Container
音效容器是什麼?
![]()
音效容器是一種特殊的容器,可以用來管理和播放多個音效物件。它允許我們將多個音效組織在一起,並根據需要進行觸發和控制。
為什麽SFX Container上有藍色和紅色的差別?
![]()
藍色表示這個音效容器已經有正確關聯的音效檔案,而紅色表示這個音效容器目前沒有關聯任何音效檔案。
Sound Voice Container
語音容器是什麼?
![]()
語音容器是一種專門用來管理和播放語音音效的容器。非常適合用來組織角色對話、旁白等語音資源。並提供了良好的多語系支援。
如何使用語音容器來管理多語系的語音資源,可以參考以下影片:
Music Switch Container
音樂切換容器是什麼?
![]()
音樂切換容器是一個非常強大的封裝容器,他可以讓我們依據條件、參數或是狀態來切換不同的音樂片段,並透過其他功能來做到無縫銜接的效果。
初次創建這個容器時,界面看起來稍微有點複雜,但我們可以一步步來理解它的功能。 
我們將工作區域分成三個部分:
- 紅色區域(Path Area)
- 這裡是用來放置Switch Group和State的區域,可以選擇透過
>>來新增Switch Group或是State Group,並將它們拖放到這裡進行管理。 - 添加Switch Group和State Group後,可以從我們的Projec Explorer中選取我們要的音樂播放片段,並將它們拖放到這個區域中,然後根據需要分配對應的
Switch State或State Group。
- 這裡是用來放置Switch Group和State的區域,可以選擇透過
- 黃色區域(Content Area)
- 這裡是用來放置音樂片段(Music Segment)的區域,可以將不同的音樂片段拖放到這裡,並根據需要進行編輯和管理。
- 綠色區域(Property Area)
- 如同一般的Sound SFX一樣,這裡用來設定相關的屬性和參數,其中的Time區域可以定義樂曲的節拍(BPM)和小節數,這對於音樂的同步和切換非常重要。
什麽是Path?
Path就像是一個Condition(條件),用來決定在什麼情況下播放特定的音樂片段。 在紅色區域中的上半部分是放置要“設置的條件”,而下半部分則是放置如果滿足“該條件”後需要播放的對應音樂片段。
我們會在音樂互動的專門章節中,詳細介紹如何使用這個容器來實現動態音樂系統。
可以在Switch Container中放入何種容器?
在Switch Container中,我們可以放入以下幾種容器:
- Switch Container(是的,我們總是可以讓整件事情變得更複雜起來)
- Music Playlist Container(如果你的音樂需要有順序或循環播放,請務必添加!)
- Music Segment(這是最基本的單位,必須要有)
Music Playlist Container
音樂播放列表容器是什麼?
![]()
音樂播放容器是用來管理音樂片段的容器,可以講它想象成在DAW裡面的音樂軌道編輯區域,我們可以在裡面添加多個軌道,設定每個軌道的播放方式,音量和其他邏輯屬性。
- 在新建完
Music Playlist Container後,我們可以將已經導入的音樂片段(Segment)拖放到這個容器中。
- 接著,我們從內容區域中選擇想要播放的片段,將他們拖到上方的播放列表區域中。 這裡可以設定每個片段的播放順序,隨機或是連續,並且可以設定是否循環。

Music Segment (音樂片段)
音樂片段是什麼?

音樂片段是Wwise中用來表示一段音樂的基本單位,音樂片段可以包含多個音軌. 如果你有一首已經分軌好的音樂,並且想要將他們組合在一起播放,這個容器就是最好的方式。 我們可以在裡面添加多個音樂軌道,並且可以設定每個軌道的播放方式,例如

我在下方示範了如何將多個音樂軌道組合在一起,並且可以單獨設定每個軌道的屬性,例如隨機、切換、順序播放等。 可以查看影片來了解如何使用Music Segment。
影片中使用的是購買來自Dropgun的Samples,希望大家多支持正版音樂素材!
Music Track
音樂軌是什麼?

音樂軌是Wwise中最基小的音樂單位,和Sound SFX的層級是一樣的。但最為做小的單位,他只能被放入Music Segment中。
一個Track只能包含一個音樂檔案,並且每個Track都是獨立的,可以單獨設定屬性,例如音量、音調、3D位置等。
屬性設置

在Track的屬性中,我們可以為它設定這個軌道的播放方式:
- Normal:正常的音樂軌道(預設,並且無法添加任何Subtrack)
- Random:隨機播放在該軌道和Sub-Track底下的音樂片段
- Sequence:順序播放在該軌道和Sub-Track底下的音樂片段
- Switch:根據
Switch Group或是State Group來切換播放在該軌道和Sub-Track底下的音樂片段
軌道旁邊的"F"是什麽?
![]()
如果你注意到了當在Track處於Normal以外,並且有多個軌道的狀態時,軌道旁邊會出現一個"F"的符號,如果點擊這個符號,則會讓可以專注於這個軌道的聆聽,達到類似 Solo的效果。