遊戲開發認識Unity 的混音器AudioMixer

在以前的Unity版本中,不可能實現音頻局部混合。在5.0版本聲音可以在AudioSource中進行播放,並且可以將音效效果作為組件來添加,遊戲中的所有聲音都會混合在AudioListener中,AudioListener還可以在整個音景中添加效果。

我們決定用AudioMixer來解決這個問題,與此同時,我們覺得可以將其更進一步,集成了許多你可以在已有數字音頻工作站應用程序中找到的功能。

聲音的分類


遊戲開發認識Unity 的混音器AudioMixer

許多音響師都知道,能夠將聲音集合合併成不同分類,並在某一處對一個類別中的所有聲音進行音量控制是超級實用的功能。將音量和效果參數與遊戲的邏輯連接起來,就相當於對遊戲中的整個音景區域有了有效的控制。

對整個混合音景的控制真的超級重要,是控制音頻混縮的情緒和身臨其境之感的絕佳方式。好的混音和音樂能帶領玩家在遊戲中經歷各種情緒的變化,營造出僅憑圖形效果根本無法產生的氣氛。

用Unity進行混音

這正是AudioMixer的目的所在,它是一種資源,可以被用戶整合到場景之中,控制遊戲裡的所有音頻混縮。場景中播放的所有聲音都會被放入一個或多個AudioMixer中,之後再進行分類,並將各種修改和效果應用到混縮音頻中。

遊戲開發認識Unity 的混音器AudioMixer

每個AudioMixer都有類定義的層次結構,這在AudioMixer中被稱為AudioGroup。您也可以在音樂或電影界人士較為熟悉的傳統調音檯布局中查看這些AudioGroup。

遊戲開發認識Unity 的混音器AudioMixer

當然,AudioMixer並不僅僅只是設置混縮層次而已。正如大家預期的那樣,每一個AudioGroup都可以包含各種不同的DSP音頻效果,這些效果以信號形式按順序疊加到音頻上。

現在我們有一些進展了!你不僅可以創建自定義傳送方案和混合層次結構,還可以將各種DSP的好效果放在信號鏈上的任何地方,為你的音景提供各種效果選項。你甚至還可以添加蒙版路徑,只允許其對一部分信號進行處理。

但如果你想在Unity的內置效果裡就獲得更多的DSP控制,怎麼辦?這在以前完全由OnAudioFilterRead腳本回調來處理,它可以讓你直接在腳本中處理音頻採樣。

這對於處理輕量級效果或將一時的奇思妙想做成原型來說是非常棒的,但有時,你希望能夠寫出原生編譯的效果,以達到最佳性能,讓你能夠寫出更重量級的想法,比如自定義採樣混響或多波段均衡器。

遊戲開發認識Unity 的混音器AudioMixer

Unity現在還支持自定義DSP插件效果,使用戶能夠為遊戲寫出自己的原生DSP,或許還可以將他們的絕佳音效創意放到資源商店中供他人使用。這樣便開闢了無限可能,可以編寫自己的合成器引擎,甚至還能與Pure Data等其他音頻應用對接。自定義DSP插件還可以請求旁鏈支持,可以從混合音頻中的任何地方得到旁鏈數據!簡直棒極了!

AudioGroup中效果堆棧可以實現的一個很酷的事情便是,你可以在堆棧中的任何地方應用組衰減。現在甚還至可以增強信號,因為我們允許高達+20分貝的音量水平。檢測器中甚至還集成有聲量計來告訴你信號在衰減點處經歷了怎樣的變化。

遊戲開發認識Unity 的混音器AudioMixer

當與非線性DSP、發送/接收和新的閃避插入相結合時(將在後文中做出解釋),這將成為一種通過混音控制音頻信號的超強方法。

情緒轉變

剛才談及了憑藉音景的混音來控制遊戲的情緒。這可以通過引入或引出新的音樂主幹或環境聲效來實現。實現這點的另一種常見方法是轉變混音本身的狀態。更改混音部分的音量和過渡至不同的效果參數狀態是按照自己的意圖來引導玩家情緒的一種有效方法。

所有AudioMixers都有定義快照的能力。快照會捕獲AudioMixer內所有參數的狀態。效果溼度水平和AudioGroup音高水平等內容均可被捕獲並在它們之間進行轉換。

遊戲開發認識Unity 的混音器AudioMixer

想象一下,從地圖上的一片開放領域走入一個險惡的洞穴,利用混音過渡來強調更微妙的氛圍,加入樂團的不同樂器,改變配樂的混響特性。想象一下無需編寫任何一行腳本代碼便可設置此功能的感覺。

分支信號

而當結合發送、接收和閃避時,快照的能力將尤為加強。

發送

遊戲開發認識Unity 的混音器AudioMixer

除了可在Unity中插入傳統的DSP效果之外,您也可以在混音的任何位置插入“發送”。“發送”可在其插入的任何位置有效地分支音頻信號,並且在發送內,您可以選擇希望分支的信號量。

事情現在變得更加有趣了!鑑於您分支的信號水平是快照系統的一部分,您可以把信號流的變化與快照過渡相結合。由此,潛在的設置可能性便開始如滾雪球般增長。

但是被分支的信號去了哪裡呢?目前,Unity內有兩個可供發送選擇的目標,即接收和音量閃避。

接收

接收是相當簡單的處理單元。它們是如同任何其他效果一樣,可以插入其中,簡單地把所有從發送瞄準它們的分支聲音混合在一起,將其傳遞給AudioGroup中的下一種效果。

接收可被置於一組效果和AudioGroup衰減點的任意位置,這將使得分支信號應被引入混音時獲得巨大的靈活性。

音量閃避

發送也可針對音量閃避插入單元。就如同接收一樣,這些單元可與其他DSP效果一同被置於混音之內。


遊戲開發認識Unity 的混音器AudioMixer

當發送瞄準音量閃避插入時,它的作用就像側鏈壓縮器設置,這意味著您可以從混音的任何位置做側鏈,並從其任何其他位置應用音量閃避!

這對於外行而言意味著什麼呢?想象一下,您在為FPS遊戲混音,您希望玩家突然聽到一陣槍聲和爆炸聲。好吧,但是如果當你走向戰場上的NPC時,你需要聽到他們所說的話又該怎麼辦呢?音量閃避允許您動態地調整混音整個部分的音量(在此情況下是所有的軍械聲),使其低於其他部分的音量(NPC說話聲)。您只需從包含所有NPC對話的AudioGroup發送到軍械AudioGroup上的音量閃避單位即可。

您甚至可以將側鏈壓縮動態地應用於音樂設置,讓其餘的樂器壓縮掉低音軌道。

最棒的一點是您無需任何一行代碼便可以在編輯器中設置這一切內容!

結束語

儘管在本文中我僅僅介紹了AudioMixer所提供可能性的皮毛,但是我希望它足以激發人們對Unity 5.0中音頻可能性的興趣。

我們真心希望通過Unity 5.0及後續產品來推動遊戲音效的未來,為您提供製作震撼音效所需的工具套件!


分享到:


相關文章: