如何打造一款獨具特色的節(jié)奏解謎游戲

一年多前,當(dāng)我被叫去開發(fā)一款新的游戲時,沒想到居然是大名鼎鼎的《Tetris?》系列游戲。我在 Amber 的同事羅德里戈?費祖利建議使用 Wwise 創(chuàng)建若干互動系統(tǒng),來突顯其將節(jié)奏游戲與俄羅斯方塊融合的理念。? 這款游戲的名字叫《Tetris Beat》。它要求玩家巧妙地擺放四聯(lián)拼塊來清除整行方塊(還有人沒玩過嗎),其每一步操作都要壓著拍子完成,同時盡量減少錯過連擊得分的次數(shù)。在理想情況下,玩家會在現(xiàn)代音樂或流行歌曲的帶動下漸入佳境。

水到渠成
其中一項挑戰(zhàn)在于要構(gòu)建音樂網(wǎng)格來確定所有輸入的準確性并以音樂的方式控制動畫事件。這項任務(wù)占用了太多開發(fā)資源,但在我們集成 Wwise 之后,一切便都水到渠成了。
首先,通過 Wwise 發(fā)送一系列回調(diào)并由相應(yīng)腳本捕獲。然后,將這些與玩家輸入進行比對來確定四聯(lián)拼塊的移動是否跟節(jié)拍同步。為此,我們使用了以下?AkCallbackType:AkCallbackType.AK_MusicSyncBeat、AkCallbackType.AK_MusicSyncBar 和 AkCallbackType.AK_EnableGetMusicPlayPosition。注意,這里有一個時間窗口。在此區(qū)間內(nèi),玩家的輸入可被視為“操作不是很精準,但足夠貼近網(wǎng)格”。如果輸入是可以接受的,就播放與指定樂曲協(xié)調(diào)的積極音效或插播樂句;否則,會觸發(fā)消極狀態(tài)并播放對應(yīng)的“無獎勵”音效。
視效響應(yīng)
對于這款游戲的每個關(guān)卡,都配有由不同藝術(shù)家創(chuàng)作并具有不同曲速的樂曲。有很多視覺輔助手段可以幫助玩家緊跟節(jié)拍,其中大部分由基本的同步節(jié)拍 Callback 驅(qū)動。比如,游戲場地會發(fā)出不同亮度的光,就像節(jié)拍器一樣標記節(jié)拍。另外,還有一些有節(jié)奏的畫面元素基于音頻頻率在背景舞臺上律動。為此,我跟音頻團隊的其他成員一起設(shè)法將信息發(fā)送回 Unity 游戲引擎,以便技術(shù)美工關(guān)聯(lián)到?RTPC?值來實時地對每首樂曲做出動態(tài)響應(yīng)。這樣他們就不用制作好幾個小時跟音樂同步的動畫了,而且還可以在添加了新的關(guān)卡時保證能按時交付內(nèi)容。除此之外,我們還使用了?Wwise Meter 插件。該組件被用作了包絡(luò)跟隨器,方便將增益分析指派給 RTPC。對于每一首樂曲,我們都會將一些 Aux 聲道輸出到“無輸出”總線。這樣音量就不會加倍了;這些 Aux 聲道全都帶有 LP、HP 或 BP 濾波器,方便以分頻或多頻段處理器的方式分隔頻段,以此來限制各個 RTPC 捕獲的頻率范圍。在有些情況下,我們還添加了單條 Ghost 音軌以分開處理人聲、貝斯或鼓聲等關(guān)乎畫面表現(xiàn)的元素。?

Tetris ? & ? 1985~2022 Tetris Holding.
借助單獨的 Ghost 音軌,我們可以夸大起音電平來提高響應(yīng)速度,甚至還可在白噪聲音軌上應(yīng)用音量包絡(luò)和 LFO,來營造漸變、脈動和韻律效果,并讓電平表按照所需方式運作。在 Meter 屬性內(nèi),可對指派給?RTPC?的值進行校準,來限制 dB 范圍并確保僅向視效美術(shù)師發(fā)送有用的數(shù)據(jù)。此外,在將這些 Ghost 音軌傳給 Unity 游戲引擎前,還可為其應(yīng)用補償增益。這樣開發(fā)人員或技術(shù)美工在每次播放給定頻率范圍或樂器振幅包絡(luò)時都可獲得 0 ~ 100 的恒定值。

Tetris ? & ? 1985~2022 Tetris Holding.
Spatial Audio
近年來,市面上推出了很多配有加速度計并可對多聲道內(nèi)容實施雙耳渲染的耳機產(chǎn)品。藉此,玩家可以在游戲當(dāng)中獲得身臨其境般的沉浸視聽體驗。
之前,玩家只能看著固定不變的游戲場地。這次,我們選擇了打破這種僵化的游戲模式。為此,工程師們設(shè)法將某些功能跟加速度計關(guān)聯(lián)了起來,以便將頭部位置值轉(zhuǎn)變?yōu)?Wwise 聽者旋轉(zhuǎn)。在 iOS 中激活對應(yīng)選項時,音頻內(nèi)容會隨著玩家頭部轉(zhuǎn)動實時變換,從而實現(xiàn)對音頻的聲像擺位。這樣無論看向哪一側(cè),聲音都會留在屏幕上。這也使得玩家能夠“跟隨”環(huán)繞聲場中經(jīng)過聲像擺位的聲音。對此,所有常用衰減參數(shù)(如濾波器、散布和音量)都將通過 Wwise 進行控制。
為了增強音頻內(nèi)容,我們還準備了專門的分軌。只要配有環(huán)繞聲系統(tǒng)、條形音箱或模擬耳機,就會在后部聲場中播放這些分軌。有些音軌,通常是那些有音樂內(nèi)容在立體聲場中變換的音軌,很自然地就可以轉(zhuǎn)換為在后部播放。還有一些樂曲元素(如過渡)可以在環(huán)繞聲環(huán)境中自動營造微妙的環(huán)繞感。得益于 iOS 中內(nèi)嵌的 Spatial Audio 功能,剩余工作直接交給玩家設(shè)備上配備的雙耳渲染來處理就行了。
Hard Drop 插播樂句
對一款配有由全球各地藝術(shù)家創(chuàng)作的各類音樂的游戲來說,每次玩家壓著拍子得分時都播放相同的積極音效有點單調(diào)。為此,我們專門制作了一組與每首樂曲都很協(xié)調(diào)的聲音。對此,我們使用了?Wwise Container。其中包含調(diào)到特定音階的各種樂句、打擊樂聲或樂曲元素。它們被指派為在相同操作當(dāng)中播放,但被設(shè)為了?Wwise State?以在特定樂段變換。有時,在完成連擊或一系列打擊樂時,可以聽到一連串有旋律的聲音。如此一來,玩家便可獲得游戲和音樂的雙重享受。

實時效果器和參數(shù)控制 (Fever Time)
作為樂曲的高潮,每次玩家累積一定數(shù)量的正確輸入時都會觸發(fā) Fever Time。對玩家來說,這被視為“狂熱時刻”,就跟明星 DJ 在混音器中旁通 LF 聲道并使用效果器和節(jié)奏輔助工具隨性發(fā)揮一樣。為了實現(xiàn)這一解決方案,我們使用了?Auxiliary Send,來將來自音樂軌的音頻放到效果器鏈中;隨著發(fā)送音量的增加,畫面會增強玩家體驗。在該獎勵環(huán)節(jié)結(jié)束、游戲恢復(fù)正常模式時,會以全帶寬播放音頻并將具有空間感的音效切換為普通音效。這時的音樂會有一種落差感。
動態(tài) Hard Drop 樂音

?

RODRIGO FERZULI
羅德里戈?費祖利 (Rodrigo Ferzuli) 是一名來自墨西哥城的音頻工程師,目前就職于 Amber - Game Development & Studio Services Agency。在公司,他為《Tetris? Beat》和其他好幾個項目開發(fā)過游戲音頻。他同時兼任 IGDA 官方音頻導(dǎo)師,另外還是 Game Audio Latam 的聯(lián)合創(chuàng)立者。憑借這些成就,羅德里戈榮獲了 2021 TGA Future Class 頭銜。
?

尤利爾?奧羅斯科 (URIEL OROZCO)
尤利爾?奧羅斯科 (Uriel Orozco) 目前在 Amber Video Games 墨西哥分公司擔(dān)任音頻主管。他擁有長達 15 年的錄音棚工作經(jīng)驗,擔(dān)任過錄音工程師、混音師、制作人和曲作家等多個職位;另外,他還對合成器和聲音處理技術(shù)有著獨特的愛好。作為音樂家,他曾為電影電視等傳統(tǒng)媒體創(chuàng)作樂曲,并在墨西哥和美國參加過多個項目的巡演。