有大神分享一下遊戲音效播放規則的解決方案嗎?

遊戲技能音效的播放規則,現在感覺就是人多的時候感覺太亂,聲音沒有層次感。


題主提到的「播放規則」問題其實內含了遊戲音頻的大話題,尤其是混音,嘗試展開回答一下。

前提

從題主的標題和正文里的一些線索,猜測題主可能不是音頻部門的,並且有可能手頭還沒有專門解決這類問題的工具,我的回答以此為前提,如果猜錯了的話請多包涵,建議大方向是:

找到合適的音頻設計師、合適的音頻工具(比如中間件),讓設計師利用工具來制定合適的流程和策略。接下來具體解釋下。

合適的人

應該由專業的音頻設計師來主導解決這個問題。聲音「亂」和「沒有層次感」往往不是光通過「播放規則」這種程序層次的控制就能解決的,從音頻素材製作開始就有很多講究(比如混音中各種技能聲頻譜的頻段分配),另外「技能聲」還會受到混音中其它非技能聲(音樂,背景環境聲)的影響,反之亦然,只考慮技能聲可能各類聲音還是會打架,所以各類音頻素材的製作都需要音頻設計師來統籌,在考慮到遊戲中聲音動態組合的聽感效果基礎上做好素材,為後面的動態控制做好準備。找到合適的音頻設計師其實後面的問題就順理成章了,因為設計師會幫你選擇合適的工具並制定靠譜的「規則」。

合適的工具

音頻設計師在素材設計階段會選擇自己的音頻工作站來做基礎設計,接著還要幫項目選擇合適的音頻引擎和工具鏈。現在的音頻中間件比如 Wwise(Wwise | Audiokinetic) 內建了很多功能來幫助設計混音和動態監控,選對了工具能在音頻設計階段就解決一大批問題,程序的壓力大大減少,比如設定各個平台最大同時播放的實音數、優先順序系統、距離衰減、朝向衰減、匯流排系統、動態混音等等;很關鍵的一條是用中間件可以隨時觀察到遊戲中的實時聲音狀況,見 Wwise 的 性能分析器截圖:

從中你可以看到播放了什麼聲音及其信號流圖、響度表讀數,同時播放聲音數的時序演變以及引擎發來的事件和調用信息等。

合適的流程和策略

有了人和工具,但沒有流程式控制制就開始量產容易出現難以逆轉的問題。雖然不知道題主所出的開發階段,但如果有條件能把問題分解到各個流程中去,就可以分階段解決不同的難點,比如可以在原型期小步前進確定方案,做原型素材和小範圍混音測試;在生產和調優階段打磨。實際操作中,原型階段音頻部門就應該儘早與遊戲策劃仔細溝通獲取或有意設計控制信息。如今的遊戲音頻設計實際上已經從早期的程序主導慢慢過渡到數據(設計)主導。遊戲策劃期間留給音頻部門的信息和可控數據越多,音頻設計師接下來就越容易做出合適的粒度控制,靈活設計包括混音在內的音頻功能,後期的麻煩就越小。如果知道技能聲問題所處場景、參與人物、遊戲階段等等宏觀信息,以及詳細的技能玩法信息,不但會給前期素材提供線索,也會給後期通過中間件來控制提供足夠的介面。更進一步,某些遊戲風格中聲音效果重要到甚至可以反哺遊戲策劃。在原型期音頻設計師可以和程序員配合設計一些工具鏈流程,做到提高後期量產生產力;原型期過後,後續量產和QA打磨又會有不同的側重和考慮比如大規模混音測試和性能優化。

上面啰嗦了一堆照顧下全面性,具體的實現策略方面首先推薦幾個資源:


騰訊北極光工作室音頻總監楊傑(Digimonk)老師的響度處理經驗談之三部曲:

響度與響度處理經驗談(上)響度測量 - midifan:我們關注電腦音樂

響度與響度處理經驗談(中)響度、動態,與處理手法 - midifan:我們關注電腦音樂

響度與響度處理經驗談(下)遊戲響度規劃與量產控制 - midifan:我們關注電腦音樂

從理論到實踐詳解了混音中響度方面的關鍵技術,涉及素材和音頻引擎的很多方面。


音頻中間件 Wwise 巡講會視頻系列

Wwise 巡講會 2016 北美站 - 暴雪 Overwatch 組的演講:為遊戲設計和音頻設計的配合包括混音提供了思路:(中文翻譯)Wwise Tour 2016 - Blizzard Overwatch

Wwise 巡講會 2016 中國站 - 騰訊天美工作室音頻團隊的演講:借《王者榮耀》等幾款成功的手游為例,涵蓋了當前手游音頻設計從流程到細節打磨的大量話題,尤其是題主提到的聽感問題上有深入討論:Wwise巡講會上海站-Tencent-移動遊戲音頻開發 - 騰訊視頻

Wwise 巡講會 2016 中國站 - CD Projekt Red《巫師 3》團隊的演講:裡面也涉及了開放世界第三人稱遊戲中的一些環境和人群方面混音的思路:Wwise巡講會上海站-Witcher-聲音打造鮮活世界 - 騰訊視頻

這些資源裡面都有較專業的信息,可能對音頻人員比較友好。除了這些之外,就題主的具體問題,在音頻中間件和引擎級別拋磚引玉提供幾條思路,題主的音頻設計師會幫你解決這些甚至更多:

  • 技能聲問題可能不僅僅是「技能聲」本身的問題。你需要清楚遊戲畫面上的場景,並用音頻工具里的實時監測工具(比如上面圖中 Wwise 的 Profiler)得到量化信息,弄清楚有哪些聲音在播放,哪些聲音聽不見等等,便於對症下藥。
  • 聲音編組控制。根據遊戲設計和音頻設計對聲音編組控制(比如 Wwise 的匯流排系統),除了技能、對白、音樂之外還可以做更細緻的聲音成分編組,便於精確高效地實時控制混音。
  • 實音數控制和優先順序。可以粗略把用戶能承受的聽覺內容想像成有一定容量的空間,如果上面說的編組控制是給這個空間設定隔間,那麼實音數和優先順序控制就是設定整體空間和隔間的大小,這些很多中間件都會支持。
  • 事件數控制。根據條件壓根不啟動某些聲音的播放。比如同屏中預知會被其它聲音掩蔽的聲音,也可以是硬性規定的同屏的角色或技能組合邏輯等等。
  • 動態混音(Using Advanced Settings and Dynamic Mixing)。突出重要的聲音,抑制次要的聲音,動態調整音量、濾波等屬性,用某條匯流排去控制其它匯流排的音量,比如主角的必殺技聲音壓制所有其他聲音等。Wwise 中提供了多種混音功能供選擇,比如時間緊迫的時候特別推薦 Wwise 的 HDR 高動態範圍功能(Understanding HDR)。
  • 距離衰減。衰減遠處聽不到的聲音,配合實音數系統控制還可以優化性能。
  • 視角聚焦。FPS 之類的遊戲中衰減主角視野之外不重要的聲音。

回過頭來,動態控制需要有遊戲策劃和音頻設計的大方向來指導,避免盲目拆東牆補西牆。

啰嗦了一堆,希望以上有所幫助,不準確的地方歡迎指出。


老哥哥聽我一句勸,真的想把遊戲聲音體驗做好的話,上音頻中間件吧。
它能幫你解放你的程序員,並且以相對輕鬆的方式實現絕大多數你想要的播放規則。

現在比較常用的聲音引擎有 Fmod、Wwise 什麼的,去他們的官網看看,考慮功能需求、預算承受範圍,然後選一個合適的用上。
——既然有更專業的人士做出了更好用的工具,為什麼還要自己從頭鑽木取火呢?

#~~~~~~~~~~分鴿線~~~~~~~~~~

當然,如果限於成本(或者懶)不想用中間件,想要手工去實現規則的話,這裡有幾條供參考:

1. 區分玩家操作角色和其他角色
通常來說玩家只關注自己放的技能爽不爽,自己打到別人聽起來痛不痛;
其他玩家幹了什麼關我啥事。
那麼如果你場景上有10個角色,突出自己操作的那一個,降低其他9個的存在感。

怎麼降低?最簡單的是調整音量,進階的還有加濾波器等等。

(也有不那麼絕對的例子,比如《守望先鋒》中自己、隊友、敵人的聲音都很重要)


2. 限制同時播放的音頻數量
音頻中間件的作用就在這裡體現出來了,你可以設定「某個聲音最多同時播放數」,以及——「超過這個播放數後的行為」。
比如5個人騎馬,我設定馬匹腳步聲最多出現3個同時播放,這時候第四隻馬跑起來怎麼辦?
A. 不播放,我有3匹馬的聲音就夠了;
B. 把最早開始播放的那匹馬的聲音給幹掉;
C. 檢測音量,幹掉最輕的那個馬匹聲,然後再播這第四匹(←這是相對最不突兀的一種)

以上都是可選方案。如果沒有中間件的話~那就得拜託程序菌去寫各種條件分支判定叻……


3. 調整距離衰減曲線(及聲像設置)
「距離越遠,聲音聽起來越輕」——毫無疑問,對吧?
那麼,怎麼控制這個衰減的速度呢。

假如說,我面前有一個篝火堆,我面對著它倒退,聽到的聲音是怎麼減弱的?
隔著5米就聽不到?或者,隔著10米?
還是5米之內都能聽到,然後逐漸降低音量,走到15米的時候完全消失?
降低的速度呢,勻速線性的?突然降低的?螺旋變化的?

這時候又要拜託你的程序菌去寫個 x=Distance, y=Volume 的函數了,加油【拍肩】
而且只調整音量其實是最簡單粗暴的方式,還有好多數值可以隨著距離一起變化的。

——而這些,都是作為音頻中間件最基礎的功能。
(上圖是隨手瞎畫的,不用在意)

#~~~~~~~~~~咕咕線~~~~~~~~~~

遊戲聲音這東西,提升效果沒有畫面那麼顯著而直觀,更多時候屬於錦上添花而非雪中送炭的角色;但是做好了絕對能讓整體效果上升一大截。
就算不追求90分的聲音,起碼要做到60分,不能讓聲音破壞遊戲體驗,對吧?

最後放一個《守望先鋒》團隊的聲音處理分享講座:

Wwise Tour 2016 - Audio in Overwatch
https://www.youtube.com/watch?v=fGDOgn2WXLs
(來自 Youtube,需要自備梯子觀看)

守望他們的團隊把聲音引擎的各種特性玩得飛起,還自己寫了個工具,讓玩家在遊戲中能光從聲音中就獲得極大的信息量。
比如根據其他角色對自己的威脅性來調整聽感強度,越危險的敵人聲音就越明顯,讓你能提前做好準備;
角色殘血的時候會給出強提示性的聲音效果,讓你在奮戰無暇顧及左下角血條的時候,僅憑聲音就能知道自己生命垂危。
——諸如此類。

所以說,遊戲團隊中有一個(群)好的聲音設計師,真的很重要。
希望國內遊戲也能越來越重視聲音,讓遊戲不僅好玩,而且好聽~?


主角和非主角的響度不一樣


1.一般來說,同樣的聲音不可以同時多處播放。
比如說爆炸,如果一個敵機爆炸,就是boom!,但如果多個敵機同時爆炸,每個都在播放同樣的boom!,那麼對玩家來說,這個聲音會因為疊加而大得難以忍受,設備也有可能出現爆音,而且很單調。
而一個爆炸同時夾雜機槍掃射和任務提示語音卻不會讓人感到異樣。

2.所以可以這樣處理:檢測爆炸聲是否完全播放完成,如果未完成時或間隔小於預設時間,比如0.5秒內,還有同樣的爆炸發生,那麼等待該爆炸音完成或直接停止該爆炸音或將該爆炸音音量減小/漸隱,然後播放已經做好的連續爆炸的一段音效,這樣就河蟹了。如果要更細緻,那麼可以製作多個音效:2個敵機同時爆炸的聲音,3個敵機同時爆炸的聲音,大於3個敵機同時爆炸的聲音……
同理其他同時發出同個音效的情況也要這樣處理。


推薦閱讀:

程序员对游戏设计师提出的需求表示反感怎么办?
怎樣進入國外的遊戲行業工作?
初創遊戲團隊製作遊戲時,「怎樣讓遊戲好玩有新意」和「怎樣讓遊戲賺錢」何者更為重要?為什麼?

TAG:遊戲設計 | 遊戲策劃 | 音效 | 遊戲音頻 |