是什麼讓你做的小遊戲聽起來怪怪的?

遊資網發表於2018-08-09
引言

不管是什麼 Game Jam,甚至是小型遊戲公司,都會面臨同一個問題:策劃美術程式到處都是,唯獨音訊人才奇缺。

於是就總有許多小團隊,迫於無奈,讓策劃/程式/美術兼職搞音訊。音效從網上找素材貼上去,音樂去找罐頭音樂(便宜使用或者免費的音樂庫),甚至直接偷個 MP3 貼過來用。

當然非商業遊戲這也不是不可以。但是團隊裡如果沒有專業音訊人才,往往會踩到幾個坑,讓遊戲的聲音效果聽起來感覺怪怪的。今天我來講講常見的五個坑,以及如何避免。

* 在這裡我們討論的是,幾個人的小團隊裡沒有音訊製作人員,沒有製作音樂/音效的能力,通過音訊資源的選取和接入方式優化來提高聲音表現力。

音效單調重複

這個是最最最最常見的問題。金魚的記憶力是不是隻有七秒我不知道,但是人耳的記憶力是隻有七秒的。也就是說,任何可能會在短時間內重複的音效,都不應該只有一個素材反覆播放,但如果是 CD 幾十秒的大招,只用一個音訊素材是完全沒問題的。

比如 RPG 遊戲裡最基本的刀劍攻擊聲音,應當至少有 4 - 5 個不同素材進行隨機播放,並且需要保證上一個播放的不會重複。在心理聲學中,有一個名詞叫做“機關槍效應”,指的是當同一個音效素材在短時間內反覆觸發時,人耳聽起來就會感覺像是機關槍一樣的鬼畜效果。


一個聽起來很正常的打擊聲,洗腦迴圈之後就像機關槍了


如果實在是條件有限,沒有音效設計師來提供不同變化的素材,可以通過在一定範圍內隨機音高和音量的方式避免重複,程式上實現也很簡單。



沒有聲音數量限制

比如你做了一個模擬養雞場的遊戲。裡面母雞每過一分鐘會下一個蛋,蛋過一分鐘會孵化成小雞,小雞過兩分鐘會長成母雞。

是什麼讓你做的小遊戲聽起來怪怪的?

Google 了一下,居然真有這種遊戲


一開始,你的遊戲只有一隻母雞,她下蛋的時候會咯咯叫一聲。生了一個蛋,蛋孵化的時候小雞唧唧叫一聲,聽起來感覺挺酷的。

隨著玩家的雞越來越多,有 32 只母雞同時下了一個蛋,32 個蛋同時孵化,然後玩家的音響就炸了。

就算這 32 只母雞不同時下蛋,下蛋的間隔在一分鐘的基礎上隨機浮動幾秒,玩家的耳朵還是會被此起彼伏的雞叫聲弄得心神不寧。

科學研究表明,人對於不斷重複的聲音的容忍度,遠遠低於不斷重複的影像。

怪不得有人打呼嚕的時候我就睡不著 (╯‵□′)╯︵┻━┻

還有研究發現,人耳最多隻能追蹤到兩個半聲音的方位並和影像對應。第三個聲音人耳能夠聽出其存在,但來不及判斷其方位。

一個人在走路,可以聽出兩隻腳的腳步聲;兩個人在走路,可以聽到四隻腳;三個人在走路,聽到的就是“一群人在走路”的腳步聲了。

聽一個人在說話,可以理解全部內容;聽兩個人同時說話,可以勉強理解兩個人說的話;三個人各說各話,聽起來就是一團漿糊。

應用在遊戲音訊裡面也是一樣,一般有許多個同樣的聲音出現,就不再播放各自單獨的聲音,而是“一群聲音”。

如果沒有條件單獨製作“一群聲音”的話,可以設定一個當前可播放該聲音的上限。每播放一個聲音,就會記錄 +1,每結束一個聲音,記錄 -1。當超過上限的時候,把最先播放或者距離最遠的那個聲音幹掉。

在 Unity 引擎裡,實現的方式也很簡單,需要把觸發的聲音做成一個單獨的 Prefab,然後每次觸發就在發生的位置生成一個並且把該物件存進聲音管理器指令碼里。如果聲音會跟著發聲物件移動,就掛在發聲物件下面作為子物件。如果是時間先後判定就用 Queue 來存,需要幹掉的時候把佇列最頭上的 Destroy;如果是距離判定就可以用 Array/List 來存,在超出上限的新聲音觸發時,掃一遍現有的聲音的距離,Destroy 最遠的那個。

程式碼我就不發上來了

音效素材混響不對

在網上找的音效素材,尤其是槍聲這種,一般要麼聽起來很乾,要麼聽起來很溼(混響足)。乾的素材一般是直接取樣錄製的,需要音效設計師加上各種效果器混響來處理,溼的素材則是處理好發上網分享的,但是不一定適用於所有情況。

同樣的一個聲音,在空曠的原野上,和山洞裡面,聽到的混響回聲是完全不一樣的,而這就需要音效設計師去製作不同的素材,或者使用一些實時計算混響的外掛,設計不同的聲學引數。

是什麼讓你做的小遊戲聽起來怪怪的?

Unity 的混響外掛,引數我就不一一介紹了


在沒有條件製作適應不同聲學空間效果的素材情況下,只能靠耳朵去聽,儘量選擇聽起來更接近遊戲場景的素材,或者選擇儘量聽起來乾的素材,在混響外掛中選擇合適的預製。


同一個響聲在不同環境下的混響效果區別


音樂進出/銜接突兀

說完了音效,來談談音樂。一般來說,只要風格選用適當,找來的音樂貼在遊戲裡,在效果上都不會有太大的問題,而問題常出在不同音樂的切換上。

對於小遊戲而言,一般我們至少需要一個主選單的音樂,一個遊戲場景的音樂,加上一個遊戲結束的音樂。經常出現的情況是,這三條音樂單獨聽起來效果挺好,但是進出或者銜接的時候,就感覺怪怪的。

一般這種情況可以通過兩種辦法解決。最簡單的方法自然就是留出時間進行淡入淡出。Unity 中沒有自帶的淡入淡出功能,但只需要一個簡單的 Coroutine 控制音量即可完成。對於風格/調性相差較大的音樂,讓玩家多等一秒鐘,花一秒鐘淡出之前的音樂,不僅能夠使得音樂過渡更加自然,還可以用這一秒鐘的時間後臺載入遊戲其他資源。

如果音樂結束時不使用淡出,而是突然停止,有時候就會聽到“噗”的一聲。音訊檔案是由一個個取樣點組成的,音效卡讀取取樣點資料告訴揚聲器產生相應的振幅。如果音樂突然停止,可能剛好讀取到一個較大的非 0 取樣點,導致揚聲器發生突然的位移,就產生了“噗”的響聲。而如果採用了淡出的方式,通過設定音量逐漸變小,取樣點的數值也會越來越接近 0,最後音樂停止的時候,不管播放到什麼位置,取樣點都非常接近於 0,不會產生突然的大幅變化,也就不會聽到雜音了。

0:00/ 0:05
音樂突然停止與淡出效果對比

是什麼讓你做的小遊戲聽起來怪怪的?

直接停止時,可以看到取樣點被突然重置為 0,因此產生了“噗”的一聲


還有一種情況,就是不同音樂之間沒有調性關聯,導致銜接的時候和聲突兀,產生了一個莫名其妙的突然轉調。

如果你聽不出來音樂的調子是什麼,那就只能靠直覺來判斷了,儘量選取調性接近的音樂。把兩首在播放器裡放在一起,然後不停切換,聽聽感覺奇不奇怪,或者找個懂音樂的朋友幫忙聽一下。

音樂搶戲/節奏混亂

這也是一個非常常見的問題。遊戲音樂製作的效果不滿意,往往不是音樂太單薄了,而是太豐富了。在選用現有音樂作為配樂的時候,這種問題會更加明顯,因為無法對編曲進行任何形式的修改。

一個優秀的音訊設計師,一定非常善於在音效、音樂和語音之間找到平衡。這三者之間音量的動態控制,是一門很大的學問。在缺乏音訊人員,使用網上素材的時候,往往就會覺得聲音聽起來很亂。要麼音樂的節奏和音效互相打架,要麼音樂/音效被對方蓋住了聽不見。

小遊戲一般很少用到語音,就先不討論語音的情況。在選取音樂的時候,要考慮到音樂播放場景的音效密集程度。雖然鼓點密集的音樂聽起來很帶感,適合作為戰鬥場景音樂,但非常可能和音效打架。如果音效非常密集,選用節奏感弱的音樂可能反而更合適。

另一種情況就是音樂的節奏和遊戲的節奏對不上,感覺貼合得不緊密。遊戲的關卡設計其實很多時候有隱含的節奏。

比如競速跑酷類遊戲,地圖上經常會出現各種小道具或者金幣可以吃。如果這種反饋道具經常出現,就會形成自己的節奏感。可以錄製一個試玩視訊,關掉所有聲音然後用手敲桌子打節拍,看看什麼樣的速度可以讓大部分反饋道具落在拍子上,然後選一個類似速度的音樂,效果會出奇地好。

個別變態遊戲甚至為了對齊音樂,把遊戲裡面的道具往前往後移了移位置

有個遊戲叫《節奏地牢(Crypt of the NecroDancer)》瞭解一下。

以上五條是我總結的小遊戲音訊常踩到的坑。當然,可能還會有更多的坑我忘記提到。不過以上五點注意到了,可以至少讓你的小遊戲在音訊上不拖後腿。

有條件還是儘可能拉一個專職的音訊一起做遊戲吧!祝大家以後的 Game Jam 愉快!


via:indienova

相關文章