《NieR: Automata》的空間聲學設計以及藉助Wwise實現對多種遊戲玩法的支援(二)
利用 Wwise 控制元件為各種遊戲玩法提供支援
正如本文開頭所說,遊戲當中鏡頭視角會頻繁切換,從標準的後視視角(第三人稱視角)到其他各種視角(如俯視視角、橫向視角和射擊視角)。因此,空間聲學效果也要隨之變化,以此來反映這種視角切換。
- 互動變換聽者位置
首先,我們要確定將預設聽者位置設在哪裡。為了展現遊戲中打鬥部分的爽快感,我們試著平衡了各種鏡頭視角的聲學效果,發現最理想的預設聽者位置是玩家身旁。
因為,在將聽者設在角色近旁時,即便鏡頭視角變換,混音和衰減的基本平衡也不會有太大波動,所以玩家可以繼續玩遊戲,而不會感到聽覺上有什麼異樣。
預設聽者位置
除射擊視角外,其他各種視角(包括俯視視角、後視視角和大部分橫向視角)下的預設聽者位置通常都挺合理。不過,有些情況(如劇情動畫)需要特殊處理。
下面這個場景就比較特別:2B 機器人戰士聚集到劇院觀看敵人(機械生命體)表演。因為玩家離舞臺不夠近,所以假如還將聽者設在預設位置,那麼實際聽到的表演聲音的音量就會跟預期有所不同。對於這種場景,我們加入了一項功能,讓聲音設計師可以根據需要隨意變換聽者位置。
舞臺和玩家之間的距離(遠處紅色小點代表聽者位置)
將聽者位置從預設位置移到舞臺中央(Preset No. 11)
我們為聽者位置建立了多種預設,方便聲音設計師將其切換到指定區域或利用 Wwise Event(事件)觸發預設切換。
前面場景在 Wwise 中對應的 Event Editor(切換聽者預設選項)
在聽者位置變換時會插入相應的引數,確保採用 3D 定位的聲音不會跳變得太厲害。音訊在這種切換點處的無縫過渡對遊戲總監橫尾太郎 (Yoko Taro) 先生來說特別重要,所以我們就試著在整個遊戲當中應用了平滑、自然的聲學過渡。
- 採用獨特的衰減手法
衰減設定中有一些特殊的衰減曲線,專門用於各種獨特的鏡頭角度。
在下面這個場景中,鏡頭離玩家較遠,在遊戲過程中可以縱觀整個舞臺。從圖中可能看不太清楚,其實中間的紅色小點就是玩家所在位置。在此,聽者設在了遠離舞臺的位置而非玩家身旁的預設位置,所以聲音聽起來稍遠一些。
玩家角色及其與聽者位置的距離(右下角紅點代表聽者位置)
聽者位置和玩家之間的距離始終都是固定的,音量較小時自然就會感覺稍遠一些。不過,因為這裡的敵人角色離得比正常情況下遠得多,所以很容易超出衰減範圍。如此一來,就很難聽到為該敵人角色設定的音效。
從精準控制方面來說,系統的這種響應是對的。但是,這樣玩家將無法注意到敵人角色,這樣的話有時難免在戰鬥時會感到被動(即便是在上圖中,敵人也小得看不太清楚,因為距離太遠了)。
為了解決這個問題,我們設定了一條略為特殊的衰減曲線。在超出特定距離時,它會禁止衰減聲音。如此一來,便通過插值的方式避免了玩家在遊戲當中感到聽覺上的不自然。
- 控制多個聲源發出的聲音
最後,我們來介紹一下這款遊戲中採用的發聲控制系統。在這款遊戲中,有些場景會出現很多敵人角色。假如將他們的聲音全部播放而不加以限制,很容易會耗盡 CPU 處理資源。
為此,我們對聲音系統進行了調整,確保同時播放的聲音數始終保持在 50 和 60 之間。下面,我們說說如何分兩步來控制發出的聲音數。
- 在呼叫 Wwise Event 之前,由遊戲程式利用內建控制元件來限制 Event。
- 在 Event 發出聲音之後,藉助 Wwise 控制元件來限制同時播放的聲音數。
第 2 步是標準操作,只要根據 Distance(距離)值來控制 Voice Limit(聲部限值)和 Priority(優先順序)就行了;所以,在此我們只解釋下第 1 步較為複雜的控制系統。
該系統有三種主要功能:根據距離範圍等級剔除 Event 呼叫、限制那些通過了根據距離剔除從而保留下來的聲音、限制同時播放的聲音數。這些操作全部在呼叫 Wwise Event 之前完成。通過引入這一機制,可以避免呼叫大量不必要的 Wwise Event 命令,進而給 Wwise 帶來過重的處理負荷,最終導致卡頓。
這些控制功能作為命令寫入到了 Wwise Event 或衰減引數的備註區域。
針對衰減設定插入的命令(-C = 剔除;-L2 = 限制同時播放的聲音數)
- 剔除 Event 呼叫
首先,在剔除過程中會排除發聲距離超出最大衰減距離的聲音。這一命令寫入到了多個衰減引數中。
- 限制通過了根據範圍等級剔除而保留的聲音
在這款遊戲中,我們採用這種方式控制待播迴圈音效,比如遠處遊蕩的敵人聲音及其他迴圈音效。我們經常會在最大距離之外部署這些角色。在這種情況下,並不會剔除 Event 呼叫。只是在最大距離之外時會延遲對Wwise Event的實際呼叫,直到進入最大距離以內才會真的觸發該 Event。
- 限制同時播放的聲音數
最後,對於在最大距離以內呼叫的 Wwise Event,假如其在同一時間可能會被呼叫很多次,就會限制同時播放的聲音數。若在指定幀內多次呼叫同一 Event,則下一次發生該 Event 時不再呼叫。
所有這些控制功能都可以由聲音設計師自行設定和調整,無需求助於程式設計師,確保這一點對我們來說非常重要。
利用定製 Wwise 外掛來增強音訊的互動性
- Lo-Fi 外掛
Lo-Fi 濾波器比較常用,但要想生成自然的 Lo-Fi 聲音並不容易。因此,我們認為能夠自由地操控這類效果器是實時音訊訊號處理技術的重要作用之一。
其實,在《NieR: Automata》中玩家角色出現無線電語音或知覺問題時,就使用了 Lo-Fi 效果器。這種效果器在很多場景中都有應用,不過它本身其實並不會耗費太多資源,所以我們就將其插入到了各個 Audio Bus(音訊匯流排)和 Actor-Mixer 中。另外,Lo-Fi 效果器其實是我們這個效果器外掛集合中的其中一個。這個集合還包含了很多不同的效果外掛,如失真、濾波和鑲邊(如下圖所示)。它是我們的音訊程式設計師木幡周治的傑作(他在製作硬體吉他效果器方面很有經驗)。利用它,只需要簡單的幾步操作,就可以輕鬆地改變聲音。這一點對我們的聲音設計師來說非常難得。
在玩家角色 2B 被病毒侵蝕時使用的 Lo-Fi 引數
* 在最左側,侵蝕程度為 0,向右越來越嚴重,Lo-Fi 效果也逐漸增強。
下面是 Lo-Fi 外掛的 DSP 示意圖。圖中顯示的是單聲道情況。在有多個聲道時,將針對每個聲道重複相同的流程。
Lo-fi DSP 圖解
- Lo-Fi 處理
將取樣率暫時降低 50% 或 24kHz。
(這樣既是為了降低處理負荷,也是因為 Lo-Fi 不需要太高的取樣率)
減小取值與前值的差距,然後進行量化。
(這樣是為了避免在量化後聲音過於嘈雜)
注意,取值與前值相差越小,削波失真越嚴重;假如量化不夠精細,聲音嘈雜程度就會加重。總之,原理很簡單,但一定要注意把握取值和前值之間的差距。
恢復取樣率並輸出結果。
即便是像這樣的標準操作,只需多加一兩個步驟,一樣可以增強遊戲的沉浸感。
- Voice Changer 外掛
除了互動音訊,我們還使用了一個強大的 Wwise 外掛來表達遊戲的世界觀,就是 Voice Changer。在玩家達到一定的遊戲條件後,就可以解鎖各種可選設定,並將效果器應用於玩家角色的聲音。
考慮到玩家角色為機器人,我們就想到應該允許自由地設定他們說話的聲音。為此,我們應用了音高變換和其他變聲效果(如機器人聲音)。
這個效果器結合了多種功能,如音高變換、時間拉伸、雜音效果和音高修正。
在實際遊戲中,我們建立了 11 種預設。通過指定不同的引數值,使用者可以設計出風格迥異的語音效果。預設的構建過程雖然有趣但也很麻煩。所以,我們很佩服那些為商用效果器和合成器構建預設的人…
這款遊戲中使用的 Voice Changer 引數
- 機械生命體的語音效果
雖然實現這種效果並沒有直接用到 Wwise,不過的確有很多人問我們是如何為機械生命體設計語音效果的。所以,我們藉此機會來簡單介紹一下。
機械生命體屬於敵人角色,他們每一個都自帶語音效果,聽起來像機器人。機器人語音的關鍵在於校準音高。商用音高修正效果器有很多種,提供有各種不同的選項。為此,我們特地試用了幾款。最終,我們選擇了 Nuendo 的 Pitchcorrect。當然,其他幾種效果器也不錯,也能恰當地修正音高。
我們之所以選擇 Nuendo 是因為,它可以在對原始聲音進行音高變換的基礎上新增一定的跳變效果,從而生成一種比較獨特的聲音,而這是其他效果器無法做到的。另外,它的 Formant 功能還有一種其他效果器所沒有的數字感,它可以在數字效果之上增添一絲人性化色彩。另外,音高的跳變還可以營造出機械生命期妄圖模仿人類說話語調的感覺。
- 機械生命體使用的語音處理外掛
就個人而言,我覺得這一點很重要。跟沉著冷靜、面無表情的 2B 機器人相比,雖然敵人派來的機械生命體也是機器人,但我們想讓他們聽起來性情更加溫和、情緒更加豐富一點。
其實,我們錄製了兩種版本的機械生命體原始語音。其中一種音高儘量不變,另一種沒有校準音高,語調也正常。最終,我們選擇了後者。
在決定機械生命體的音高後,我們還使用了 Delay、Flanger 和 Speakerphone,來讓說話聲音聽起來像是從內部揚聲器發出來的一樣。
結語
回顧整個開發過程,我們可以說藉助 Wwise 成功地實現了對音訊的多方面控制。能用這樣一款工具進行統一控制,對管理各類聲音設計相關引數和除錯遊戲來說真的省了不少事,更不用說這些經驗還可以輕鬆運用到其他工程中。
我們希望能通過空間聲學表現手法來提升遊戲音訊的品質,但也注意到其中使用的各種方法和外掛還有待進一步完善。
比方說,Simple3D 外掛可以生成 3D 聲音,但目前只能藉助聲音定位來實現 3D 效果。接下來,我們準備在展現 3D 聲音的同時把其他引數也包含進來,比如聽者和聲源之間的距離。K-verb 同樣如此,也可以加入更多的引數。比方說,假如能在原來基礎上結合聲籠資訊,相信應該能實現更好的聲學效果。
我們目前還面臨著一個難題,就是如何將聲音自動指派給振動裝置。這一流程在硬體創新的推動下變得越來越普遍,但目前振動對空間聲學的表現在體驗上並沒有直接幫助。在不遠的將來,我們希望能開發出一種工具,它不僅能省掉簡單的手動操作,還能帶來創意和方法上的突破。
在遊戲製作中,工具有很多,挑戰也不少。我們的聲音設計師、作曲家和程式設計師每天都在探討這些問題,相信其他遊戲製作公司也是如此。這就是我們決定撰寫這篇博文的用意:希望全球各地使用 Wwise 的遊戲創作人員能從中得到些許啟發和幫助。無論這篇博文給您帶來怎樣的創意或想法,我們都會由衷地為您感到高興。
MisakiShindo進藤美咲
進藤在獨立樂隊擔任過樂手並曾在樂器店工作,她於 2008 年作為聲音設計師加入 PlatinumGames。她是遊戲新作《NieR: Automata》的首席聲音設計師,主要負責音效製作、Wwise 整合和音效互動系統設計。
ShujiKohata木幡周治
木幡曾在一家電子樂器開發公司工作,他於 2013 年加入 PlatinumGames。作為音訊程式設計師,他負責聲學效果相關技術的總體把控。在《NieR: Automata》的開發中,他主要負責聲音系統維護和音效整合。木幡的目標是努力探索新的聲音展現方式,並將其運用到將來的遊戲開發中。同時,他還在不斷設法完善目前的遊戲音訊技術。
注意:本文中使用的所有《NieR: Automata》截圖和視訊均歸 Square Enix Co., Ltd 所有。
《NieR: Automata》
平臺:PS4、Steam、Xbox One(僅提供下載版本)
發行商:SQARE ENIX CO., LTD.
開發商:PlatinumGames Inc.
官方網站:https://niergame.com/en-us/
版權所有 © 2017 SQUARE ENIX CO., LTD。保留所有權利。
PLATINUMGAMES INC.
PlatinumGames Inc. (プラチナゲームズ株式會社 Purachina Gēmuzu Kabushiki Gaisha) 是一家日本電子遊戲開發公司。 通過堅持打造品質出眾、玩家喜愛的遊戲,我們希望能成為世界一流的遊戲開發工作室。為了實現這一目標,PlatinumGames 團隊將鍥而不捨。
來源:Audiokinetic
原文:https://blog.audiokinetic.com/zh ... of-gameplay-part-2/
相關文章
- 藉助DirectDraw實現對水波的計算機模擬(轉)計算機
- 重寫ViewGroup並藉助ViewDragHelper實現各種拖拽互動效果(二)View
- 藉助 Turbolinks 實現不間斷的網頁音樂播放器網頁播放器
- 空間、運動(時間)以及程式設計師程式設計師
- 從中國造像空間聊聊遊戲空間設計中的一些設計小技巧遊戲
- 利用PLSQL實現表空間的遷移(二)SQL
- 社交遊戲玩法設計—競爭與對抗遊戲
- 藉助尾號限行 API 實現限行規則應用的設計思路分析API
- Python實現snap:對齊多張遙感影像的空間範圍Python
- IBM藉助企業設計轉型的案例IBM
- 【多執行緒高併發程式設計】二 實現多執行緒的幾種方式執行緒程式設計
- 遊戲開發經驗談(二):對戰類全球服遊戲的設計與實現遊戲開發
- BAFTA遊戲最佳聲音獎《對馬之魂》的聲音設計幕後遊戲
- 遊戲盈利的商業模式,以及對遊戲設計造成的影響模式遊戲設計
- 藉助HTML5details,summary無JS實現各種互動效果HTMLAIJS
- 策略模式實現支援多種類資料庫的DBHelp模式資料庫
- 為遊戲設計湧現式玩法的五個注意事項遊戲設計
- 如何設計一個好玩的競技遊戲——戰略空間設計遊戲
- 如何設計一個好玩的競技遊戲——戰鬥空間設計遊戲
- 企業如何藉助SEO優化線上聲譽?優化
- iOS後臺模式藉助位置更新實現iOS模式
- 如何基於實時聲紋變聲實現對聲音的“克隆”
- #MyBatis多表查詢 #多對一、一對多的兩種實現方式 @FDDLCMyBatis
- drop表空間以及對應的資料檔案後空間不釋放的問題
- 幀動畫的多種實現方式與效能對比動畫
- 互動多媒體展廳設計的空間佈局
- 榮獲“休閒/社交遊戲類最佳聲音設計獎” 《使命召喚手遊》是如何做空間音訊設計的?遊戲音訊
- 企業展廳設計用多媒體的方式實現有何幫助
- 藉助 :has 實現3d輪播圖3D
- 遊戲大地圖開發指南:遊戲外部空間設計遊戲地圖
- 分享兩種實現Winform程式的多語言支援的解決方案ORM
- 各種程式設計實現的樹程式設計
- 《暗黑血統》系列——遊戲玩法設計的弄潮兒遊戲
- liunx使用者空間和核心空間之間的通訊實現(在PPC下的實現)(轉)
- 平行宇宙構建-遊戲中的多維空間探索遊戲
- 對oracle資料表空間的計算Oracle
- mybatis的一對多,多對一,以及多對對的配置和使用MyBatis
- 建築&遊戲 | 對經典遊戲地圖的空間淺析遊戲地圖