《Lumote》:利用 Wwise 驅(qū)動(dòng)游戲視效

各位?Wwise?用戶,大家好!我是保羅·魯斯卡,目前在?Studio X Labs(加拿大溫哥華)擔(dān)任音頻總監(jiān)。稍后,我們將推出一款獨(dú)立?3D?平臺(tái)解謎游戲:《Lumote》(發(fā)行平臺(tái):PC、Switch、PS4、XBox One)。在本文中,我就以此為例說(shuō)說(shuō)如何利用?Wwise Meter?插件驅(qū)動(dòng)游戲視效(如粒子、燈光、攝像機(jī)抖動(dòng)和網(wǎng)格扭曲)。由于《Lumote》是一款獨(dú)立游戲,我被給予了大量的時(shí)間和自由來(lái)嘗試和探索怎樣將?Meter?插件有效地運(yùn)用于游戲的畫(huà)面和敘事。在設(shè)計(jì)聲音元素來(lái)專門(mén)驅(qū)動(dòng)視效的過(guò)程中,我發(fā)現(xiàn)很多地方都可以借助這種方式打造獨(dú)特的視聽(tīng)體驗(yàn)。

《Lumote》是一款絢麗多彩的?3D?平臺(tái)解謎游戲,已于 2020 年 2 月 20 日在 Steam 上發(fā)布。在?2020?年晚些時(shí)候,還將進(jìn)一步推出?Switch、XBox One?和?PS4?版本。
概述
一般來(lái)說(shuō),在動(dòng)畫(huà)設(shè)計(jì)師或視效美術(shù)師完工之后,游戲音頻團(tuán)隊(duì)才會(huì)開(kāi)始著手制作各種各樣的聲音。作為聲音設(shè)計(jì)師,我們需要確保所構(gòu)建的音頻與最終動(dòng)畫(huà)和視效協(xié)調(diào)一致。為此,我在《Lumote》的開(kāi)發(fā)中使用了?Wwise Meter?插件來(lái)采集所創(chuàng)建音頻素材的波形,以便生成?RTPC?值數(shù)據(jù)并饋送給游戲引擎,進(jìn)而驅(qū)動(dòng)各種視效和動(dòng)畫(huà)系統(tǒng)。對(duì)于一個(gè)只有四名開(kāi)發(fā)人員而沒(méi)有動(dòng)畫(huà)設(shè)計(jì)師的團(tuán)隊(duì),我們必須在方法上做出一定的調(diào)整。很快,我們發(fā)現(xiàn)通過(guò)讓音頻驅(qū)動(dòng)游戲的視效系統(tǒng),其實(shí)很多畫(huà)面場(chǎng)景都可以采用程序化的方式生成。藉此,便可為玩家提供自然而流暢的游戲體驗(yàn)。雖然我擁有各種各樣的游戲音頻制作技能,但這種以波形驅(qū)動(dòng)視效的方式還真沒(méi)試過(guò)。
在展開(kāi)之前,我們先來(lái)看下本文都涉及哪些主題:
《Lumote》簡(jiǎn)介
?開(kāi)發(fā)團(tuán)隊(duì)
《Lumote》的音頻設(shè)計(jì)
Meter 插件設(shè)置
《Lumote》中有關(guān)音頻驅(qū)動(dòng)視效的示例
關(guān)于《Lumote》
《Lumote》的世界中存在?Blue?和?Red?兩種相互對(duì)立的?Power,它們分別由?Lumote?和?Mastermote?控制。玩家負(fù)責(zé)操控?Lumote?不斷前行。在游戲中,玩家只有兩種能力:Possession?和?Jump。利用?Possession?能力,Lumote?可以操縱游戲里的居民?Mote,并借助其特有的能力解開(kāi)一道道謎題(難度會(huì)不斷加深)。根據(jù)具體是哪種?Power(Blue?或?Red)在操縱?Mote,其行為會(huì)對(duì)?Lumote?產(chǎn)生幫助或阻礙作用。最終,玩家要想方設(shè)法深入地底并從?Mastermote?手中奪回控制權(quán)。

《Lumote》是一款?3D?平臺(tái)解謎游戲,玩家可在其中展開(kāi)?6?小時(shí)的地底冒險(xiǎn)之旅。該游戲采用凱爾·羅恰和亞倫·阿恩特所編寫(xiě)的定制游戲引擎?rEngine?開(kāi)發(fā)。
《Lumote》的世界分為三個(gè)生物群落,每個(gè)生物群落設(shè)有三座塔樓。玩家需要先將其?Power?由?Red?轉(zhuǎn)化為?Blue,方可操縱?Lumote?繼續(xù)前行并解開(kāi)后續(xù)謎題。每座塔樓代表了一種?Mote?類型和特定的游戲機(jī)制,玩家必須完成其?Power?轉(zhuǎn)化才能獲得控制權(quán)。游戲中有五種?Mote?類型:Small Dumbat、Large Dumbat、Hover Mover、Jellyfish?和?Divertor。每種?Mote?都有自己獨(dú)特的能力,Lumote?必須全部掌握才能通關(guān)。

Mote?的早期概念創(chuàng)作圖:其中有一些很棒的角色設(shè)計(jì),在謎題設(shè)計(jì)中效果非常不錯(cuò)。?
開(kāi)發(fā)團(tuán)隊(duì)

從左向右:
米歇爾·羅恰 - 謎題設(shè)計(jì) & 代碼編寫(xiě)
凱爾·羅恰 - 代碼編寫(xiě) & 美術(shù)
亞倫·阿恩特 - 代碼編寫(xiě) & 渲染
保羅·魯斯卡 - 音樂(lè)創(chuàng)作、聲音設(shè)計(jì) & Wwise 整合?? ? ? ? ? ??
為了方便遠(yuǎn)程辦公,我們統(tǒng)一采用了?Perforce?開(kāi)發(fā)環(huán)境。在整個(gè)項(xiàng)目中很少會(huì)面,主要通過(guò)?Slack?進(jìn)行溝通。大家都是各忙各的,有必要隨時(shí)發(fā)消息?,F(xiàn)在想來(lái),這樣的工作流程確實(shí)挺好。它給了我時(shí)間和自由來(lái)嘗試和探索如何利用音頻驅(qū)動(dòng)視效。作為開(kāi)發(fā)商/發(fā)行商的?Luminawesome Games?同樣位于加拿大溫哥華,這家獨(dú)立工作室由電子游戲行業(yè)的資深人士組成。公司團(tuán)隊(duì)里的每個(gè)人都參與制作過(guò)?AAA?游戲,并因而將很多開(kāi)發(fā)經(jīng)驗(yàn)帶到了《Lumote》中。其中凱爾·羅恰?(Kyle Rocha)?和米歇爾·羅恰?(Michelle Rocha)?曾在?2014?年?10?月憑借迷你游戲《Bump》躋身?Unreal Game Jam?優(yōu)勝團(tuán)隊(duì)。他們特別喜歡游戲中的相關(guān)設(shè)計(jì)概念,于是決定將其打造成一個(gè)完整的游戲。到?2015?年的時(shí)候,亞倫·阿恩特?(Aaron Arnt)?加入了進(jìn)來(lái),并決定拋開(kāi)?Unreal Engine。為此,凱爾和亞倫專門(mén)為《Lumote》編寫(xiě)了定制圖像引擎?rEngine。之后我在?2016?年?3?月也加入了項(xiàng)目團(tuán)隊(duì),負(fù)責(zé)音樂(lè)創(chuàng)作、聲音設(shè)計(jì)和?Wwise?整合。

《Lumote》的音頻設(shè)計(jì)
對(duì)這款游戲來(lái)說(shuō),聲音設(shè)計(jì)的主要目標(biāo)是塑造一個(gè)充滿生機(jī)和活力的游戲世界,讓玩家可以愉快地與之進(jìn)行互動(dòng)。為此,我們需要賦予《Lumote》以鮮活而奇幻的視聽(tīng)體驗(yàn)。作為一個(gè)沒(méi)有動(dòng)畫(huà)設(shè)計(jì)師的小團(tuán)隊(duì),我們必須盡可能地優(yōu)化自身的資源。在明確了這一點(diǎn)之后,我們很快發(fā)現(xiàn)其實(shí)?Mote?的好多動(dòng)畫(huà)都可以借助相應(yīng)的聲音設(shè)計(jì)來(lái)以程序化的方式生成。通過(guò)使用Metering插件,我們能夠在與游戲?qū)ο蠓重惐硐嚓P(guān)聯(lián)的Wwise音頻文件結(jié)構(gòu)中獲得一個(gè)RTPC值數(shù)據(jù)流。。為此,凱爾在?rEngine?中編寫(xiě)了相應(yīng)的視效代碼,以便從?Wwise?獲取?RTPC?輸出,并發(fā)送給燈光、粒子輻射、攝像機(jī)抖動(dòng)和網(wǎng)格扭曲系統(tǒng)。如此一來(lái),《Lumote》的視效呈現(xiàn)就完全變成了對(duì)游戲?qū)ο?Wwise?文件夾所觸發(fā)波形的轉(zhuǎn)換。當(dāng)然,這也意味著我必須圍繞視覺(jué)效果來(lái)展開(kāi)音頻設(shè)計(jì)。下面便是我當(dāng)時(shí)的一些具體想法:

將連續(xù)脈沖聲應(yīng)用于燈光系統(tǒng),來(lái)生成頻閃效果。將同樣的聲音應(yīng)用于粒子系統(tǒng),來(lái)生成流淌效果。注意,一定要提前想清楚音頻波形會(huì)如何轉(zhuǎn)換為視覺(jué)動(dòng)畫(huà),對(duì)角色反應(yīng)來(lái)說(shuō)更是如此。
其中最為耗時(shí)的部分是設(shè)計(jì)五種?Mote,因?yàn)樗鼈內(nèi)慷家獋鬟_(dá)角色的?State?以及對(duì)?Lumote?的反應(yīng)。除此之外,《Lumote》的音頻設(shè)計(jì)還有一個(gè)難點(diǎn),就是必須按照?Power?類型(Red?和?Blue)為每種?Mote?制作兩套不同的聲音。在游戲中的任意給定時(shí)刻,周圍建筑和?Mote?攜帶的既可能是?Red Power(由?Mastermote?支配),也可能是?Blue Power(由?Lumote?支配)。因此,每種?Power?都要有自己獨(dú)特的音頻處理方式。如此一來(lái),對(duì)于每次游戲互動(dòng),都得依據(jù)?Power?類型構(gòu)建兩種聲音設(shè)計(jì)版本。為了讓所有這一切能夠正常運(yùn)行,我必須盡可能高效地為游戲設(shè)計(jì)兩套聲音。另外還要確保?Mote?的聲音跟音樂(lè)和諧地融為一體,因?yàn)楹芏?Mote?的語(yǔ)音都是通過(guò)采樣樂(lè)器(笛子、鈴鐺、口哨)生成的。我想讓音樂(lè)聽(tīng)起來(lái)有種身處水下世界的奇幻感,而與這種景象最為相配的唯有氛圍音樂(lè)。但要保證氛圍音樂(lè)不會(huì)分散玩家的注意力,因?yàn)槠湫枰芯?lái)解開(kāi)空間?3D?謎題。另外在角色反應(yīng)當(dāng)中,Lumote?只是發(fā)出聲音,并沒(méi)有言語(yǔ)表達(dá)。也就是說(shuō)不需要對(duì)錄音實(shí)施本地化處理,不過(guò)這也意味著游戲的敘事將會(huì)是非語(yǔ)言的,因而只能通過(guò)聲音和音樂(lè)來(lái)加以展現(xiàn)。?

為此,我參考了像《Inside》、《Limbo》、《Ori》和《The Blind Forest》這樣的游戲。它們都巧妙地運(yùn)用了精心設(shè)計(jì)的非語(yǔ)言敘事,來(lái)吸引玩家興趣、營(yíng)造緊張氛圍并刻畫(huà)動(dòng)人瞬間,以此傳達(dá)主角的情緒狀態(tài)。
雖然《Lumote》的核心解謎玩法采用的音頻?Event?序列十分簡(jiǎn)單,但是我發(fā)現(xiàn)在游戲中依然可以融入大量的細(xì)節(jié)和變化(比如在?Lumote?支配并改變?Mote?的?Power State?時(shí))。??
Mote?的核心音頻?Event?循環(huán):
Idle – Hello – Goodbye (Blue or Red)
Idle – Hello – Possession Start – Energy Change - Move Start – Move End – Possession End – Idle Start
?
Lumote?的核心音頻?Event?循環(huán):
Walk
Jump
Double Jump
Land (由?RTPC?依據(jù)落地距離驅(qū)動(dòng))
Possession Start
Possession End
Mote Hello Reaction
Lumote?隨著?Power State?的變化對(duì)每種?Mote?都有不同的反應(yīng)。比如在面對(duì)?Red Mote?時(shí)憂慮不安,在遇見(jiàn)?Blue Mote?時(shí)熱情親切。
Meter?插件設(shè)置和?Wwise?設(shè)置
我的目標(biāo)是設(shè)法創(chuàng)建一個(gè)?Wwise?工程,確保能夠利用最少的編程支持來(lái)最大限度地控制各種游戲音頻素材。為此,凱爾和我依據(jù)共用?Common Event?的游戲?qū)ο蠓纸M,在紙上初步設(shè)計(jì)了音頻?Event?分層。如此一來(lái),早在我開(kāi)始制作音頻之前,就可確保將?80%?的音頻?Event?傳給?Wwise。下面便是我們當(dāng)時(shí)創(chuàng)建的?Switch?類別和?Common Event:

在確定通過(guò)?rEngine?將音頻?Event?傳給?Wwise?之后,我開(kāi)始著手構(gòu)建相應(yīng)的文件夾結(jié)構(gòu),并在其中填充音頻素材。由于在音頻開(kāi)發(fā)流程之初就已明確由?rEngine?傳送?80%?的?Event,我得以專心致志地完成自己的工作,并在很少的編程支持下創(chuàng)建和測(cè)試各種音頻元素。顯然,對(duì)于只有四個(gè)人的開(kāi)發(fā)團(tuán)隊(duì),各司其職對(duì)每個(gè)人來(lái)說(shuō)都很重要。

凱爾創(chuàng)建了一系列?OutputMeter?預(yù)設(shè),以便我將其指派給游戲?qū)ο?,進(jìn)而驅(qū)動(dòng)燈光、動(dòng)畫(huà)和粒子系統(tǒng)。其中?OutputMeter_Voice?花費(fèi)了?90%?的時(shí)間,因?yàn)樵擃A(yù)設(shè)要將?Wwise?生成的?RTPC?值與?Mote?的視效系統(tǒng)關(guān)聯(lián)起來(lái)。?
AkGameObject,?AkSoundEngine.PostEvent:
我們采用了以下方式將?Wwise?生成的?RTPC?值傳給游戲引擎:
1.?為游戲中的每個(gè)角色設(shè)置?Mote_Type Switch。
2.?將?PostEvent?設(shè)為?Common Event(如?Common_OnMoveBegin?和?Common_OnMoveEnd)。
3.?結(jié)構(gòu)使用?AK::SoundEngine::Query::GetRTPCValue()?從Wwise?中回讀來(lái)自音頻文件結(jié)構(gòu)對(duì)應(yīng)的電平表的參數(shù)。?
4.?在游戲中對(duì)這些電平表參數(shù)進(jìn)行后期處理,來(lái)調(diào)節(jié)正弦波的振幅和頻率,以此驅(qū)動(dòng)實(shí)際的燈光、網(wǎng)格動(dòng)畫(huà)、攝像機(jī)抖動(dòng)和輻射材質(zhì)參數(shù)。
有關(guān)?Meter?插件的使用體會(huì):
1.?我們使用了?Meter?插件來(lái)突出強(qiáng)調(diào)?Mote State,并針對(duì)各種?State(Idle、Shock、End、Begin、Power Change)制作了生物語(yǔ)音。
2.?只要游戲?qū)ο蟮纳弦灰纛l?Event?沒(méi)有殘留信號(hào),Meter?插件就可以順利地運(yùn)行。為此我需要花時(shí)間構(gòu)建?Event?分層,以確保在觸發(fā)下一視效之前終止播放游戲?qū)ο蟮穆曇?。倘若上一音頻?Event?出現(xiàn)音頻殘留,系統(tǒng)便會(huì)接管?Meter?插件,進(jìn)而阻止其繼續(xù)將音頻?RTPC?傳給游戲引擎。另外,我還發(fā)現(xiàn)將?Pause Event?用在文件夾上也會(huì)導(dǎo)致?Meter?插件被接管。因此,最好在觸發(fā)下一音頻?Event?之前撤底終止同一結(jié)構(gòu)下音頻的播放,以確保?Meter?插件能夠適時(shí)處理新進(jìn)入的音頻信號(hào)。
3.?通過(guò)在?Mote?子文件夾上添加混響效果,可在不同?Mote State?之間同時(shí)實(shí)現(xiàn)聽(tīng)覺(jué)和視覺(jué)的融合。這樣有助于將分離的結(jié)構(gòu)下的聲音作為一個(gè)整體緊密地結(jié)合在一起。
4.?將?Impact?與對(duì)應(yīng)的?"Pitch" RTPC?關(guān)聯(lián)起來(lái)會(huì)產(chǎn)生奇妙的視覺(jué)效果。在這種情況下,音效的音高越低,視效播放得越慢,畫(huà)面展開(kāi)得越寬。

結(jié)語(yǔ)
1.?隨著我使用?Meter?插件不斷試驗(yàn)各種創(chuàng)意,《Lumote》的聲音設(shè)計(jì)也變得越來(lái)越完善。在我們將攝像機(jī)抖動(dòng)與?Mastermote?的音頻掛鉤時(shí),Tower Sequence?一下子變得鮮活了起來(lái)。?
2.?要虛心聽(tīng)取各方的奇思妙想,力求為玩家提供愉悅而難忘的體驗(yàn)。同時(shí),捫心自問(wèn):游戲中的聲音是不是太多了?在音頻設(shè)計(jì)中是否保留了足夠的空間來(lái)確保玩家可以暢快地游戲??
3.?盡早完成對(duì)?Event?分層和?Switch?類別的初步設(shè)計(jì)。
5.?想想其他成員都有怎樣的創(chuàng)作目標(biāo),并盡力借助音頻來(lái)幫助其加以實(shí)現(xiàn)。
本文作者

保羅·魯斯卡 (PAUL RUSKAY)
音頻總監(jiān)
Studio X Labs
自 1999 年于加拿大溫哥華創(chuàng)立 Studio X Labs 以來(lái),保羅·魯斯卡 (Paul Ruskay) 便一直在這家后期制作工作室擔(dān)任音頻總監(jiān)。在過(guò)去 26 年中,他操刀過(guò)超過(guò) 40 款游戲的音頻制作,其中以《Homeworld》和《Strike Suit Zero》最為知名。
