最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

利用Wwise的基礎(chǔ)功能構(gòu)建空間音頻效果

2022-03-02 10:52 作者:Wwise官方  | 我要投稿

各位同行老師朋友大家好,我是JYUN,給大家拜個(gè)晚年。

對于部分3D游戲類型(如射擊、賽車和開放世界等),空間音頻屬于較為剛需的內(nèi)容。但由于不同項(xiàng)目的開發(fā)環(huán)境、開發(fā)周期和游戲引擎等有所不同,這些變量造就了不同的空間音頻解決方案。即使空間音頻遵循的原理是一樣的,但實(shí)現(xiàn)方式卻有不同。

最近梳理了一些關(guān)于空間音頻的有趣內(nèi)容,是我在開發(fā)一款PC端FPS游戲的過程中,利用Wwise基礎(chǔ)功能構(gòu)建的一套簡易空間音頻系統(tǒng)。這套解決方案可以給予玩家一定的空間反饋,且這款游戲也在Steam取得了一定成績,其可行性是可驗(yàn)證的。利用這套系統(tǒng),可以在不購買第三方插件的情況下,在Wwise中實(shí)現(xiàn)部分空間音頻效果。

這套系統(tǒng)中包含空間音頻的3個(gè)基本組成部分,分別是3D定位、早期反射和混響。這3個(gè)部分是互相解耦的,所以具備一定的可復(fù)用性。下面將這3個(gè)部分分模塊進(jìn)行整理,在總結(jié)部分也會討論這套方案的缺陷和拓展性。

(文本內(nèi)容基于個(gè)人經(jīng)驗(yàn)和理解,僅供參考)

本文共分為3個(gè)模塊:

  • 基于RTPC的3D定位效果(RTPC-Based 3D Positioning)

  • 低消耗的早期反射效果(Low-Cost Early Reflection)

  • 自適應(yīng)混響(Adaptive Reverb)

模塊1:基于RTPC的3D定位效果(RTPC-Based 3D Positioning)

【需求】

首先解決疑問:為什么不直接用Wwise中間件的Positioning功能?為什么要用RTPC來營造3D定位效果?

在我參與這個(gè)游戲項(xiàng)目的音頻開發(fā)時(shí),確定了使用Wwise 2017作為音頻引擎版本。這個(gè)項(xiàng)目的音效在制作時(shí)是以立體聲素材為基礎(chǔ)的。立體聲素材經(jīng)過Wwise的Positioning渲染之后,聽感會發(fā)生微妙的變化,這導(dǎo)致某些“大體積”音效(如BOSS的攻擊等)的寬度和臨場感會與我們設(shè)計(jì)師的意圖出現(xiàn)細(xì)微出入。

其次,Wwise自帶的Positioning功能,在總線為stereo總線的情況下,位于Listener前后方、上下方的聲音不會有差異性。想要獲得binaural-like的3D定位效果,需要結(jié)合Wwise自帶的Positioning功能和多聲道總線(如7.1等),再通過Auro-Headphone之類的雙耳效應(yīng)插件,將多聲道的聲音渲染成立體聲。但就必須要購買三方插件(Auro-Headphone或同類插件)了。

基于以上條件,我們希望“釋放stereo素材本身的魅力”以及“還原人耳對于聲音定位的聽覺習(xí)慣”,所以當(dāng)時(shí)的決策是通過RTPC構(gòu)建一個(gè)基本的3D定位效果,再驗(yàn)證其可行性。

【原理】

經(jīng)過一定調(diào)研發(fā)現(xiàn),隨著音源和人頭的夾角發(fā)生變化,聲音的音色也會有所變化。比如當(dāng)音源處于人頭的后方時(shí),由于耳廓阻擋了部分頻段,聲音會變得更“悶”。

其次,音源和人頭的夾角變化,也會使聲音到達(dá)2只耳朵的時(shí)間有所不同。比如當(dāng)音源處于人頭的正前/正后方,理論上聲音可以同時(shí)到達(dá)雙耳;但如果音源偏離,聲音到達(dá)兩只耳朵時(shí)就具有了時(shí)間差(相位差)。

并且,音源和人頭的夾角變化之后,音源離兩只耳朵的距離不一樣,也會導(dǎo)致雙耳接收到的聲音有一定的音量差。

以上是屬于HRTF和雙耳效應(yīng)(Binaural Effect)相關(guān)的訊息,可以在下列鏈接中查看詳情:

Head-related transfer function - Wikipedia

雙耳效應(yīng)_百度百科 (baidu.com)

在實(shí)踐中發(fā)現(xiàn),當(dāng)音源的空間信息變化時(shí),引入少量的音高(Pitch)變化,所帶來的空間感知會更明顯更有效。

結(jié)合以上信息,當(dāng)使用RTPC構(gòu)建3D定位時(shí),需要注意實(shí)現(xiàn)以下功能:

  • 發(fā)聲體與監(jiān)聽者的距離產(chǎn)生變化時(shí),會帶來音量、頻響和音高的變化;

  • 發(fā)聲體與監(jiān)聽者的水平夾角產(chǎn)生變化時(shí),會帶來左右聲道的音量、頻響、音高和時(shí)間差的變化;

  • 發(fā)聲體與監(jiān)聽者的垂直夾角產(chǎn)生變化時(shí),會帶來頻響的變化(本文未展示)

基于以上要求,可以推導(dǎo)出所需的調(diào)制源為:Distance、Azimuth和Elevation。結(jié)合Aux Bus、2D panner、Wwise Delay和Wwise EQ等,以及容器上的Filter、Makeup Gain等參數(shù),便可以粗略地還原出雙耳效應(yīng)。

【操作篇】

1. 總線設(shè)置

如上圖,首先建立1條3D音效總線(此處命名為9_sfx_3dframe),并將Channel Configuration設(shè)定為2.0:

在該音效總線下建立1條2D總線和1條3D總線(這2條總線的Channel Configuration跟隨父級即可)。

在3D總線下方建立4條Aux Bus,分別用于表現(xiàn)左直達(dá)聲、右直達(dá)聲、左延遲聲、右延遲聲(此處的直達(dá)和延遲不是指混響或延遲效果器中的參數(shù),而是雙耳效應(yīng)中直達(dá)耳朵和延遲到達(dá)耳朵的聲音)。這4條總線的Channel Configuration跟隨父級即可,并用Speaker Panning,將這4條Aux Bus分別pan到極左、極右、極左、極右(下圖以左延遲聲為例):

在左右延遲聲通道中,插入Wwise Delay和EQ,參數(shù)如下圖所示:

這里值得一提的是Delay Time的設(shè)置:根據(jù)雙耳效應(yīng),兩只耳朵間的距離所能造成的聲音的時(shí)間差應(yīng)該是1ms之內(nèi);根據(jù)哈斯效應(yīng),50ms以上的時(shí)間差又會被感知成2個(gè)聲音。最終根據(jù)實(shí)測,Delay Time設(shè)置為20ms時(shí),雙耳時(shí)間差的感知效果較為顯著。這是根據(jù)在實(shí)際體驗(yàn)而非物理學(xué)所設(shè)定的非嚴(yán)謹(jǐn)參數(shù)。

此外,在EQ中用高頻擱架削減了2khz以上的聲音,因?yàn)橥粋€(gè)聲音中的各個(gè)頻段繞過頭部的能力各不相同,頻率越高的能量,被人頭衰減就越大。所以高頻聲音被削掉,中低頻保留。

最后在需要應(yīng)用3D定位的容器上,按下圖發(fā)送Output Bus和Aux Sends。如果是同一個(gè)游戲單位的音效,也可以在Actor-Mixer上做這一步:

至此,總線設(shè)置完畢。

2. 容器及RTPC設(shè)置

由于這個(gè)Demo已經(jīng)在Actor-Mixer上設(shè)置好路由了,所以無需再設(shè)置路由。Positioning頁面也無需特殊設(shè)置,注意不要打開額外的Positioning功能即可:

在RTPC界面,需要設(shè)置11條RTPC來還原水平面上的3D定位效果:

接下來將單獨(dú)分析每一條RTPC的作用,首先是距離相關(guān)的參數(shù):

1. 距離控制音量(Object越遠(yuǎn),音量越低),這里選擇控制Make Up Gain。這個(gè)選擇和Wwise的容器通路相關(guān),如果Make Up Gain降低了,Output Bus和Aux Send的發(fā)送電平也會相應(yīng)降低


2. 距離控制低切(Object越遠(yuǎn),低頻保留越少)

3. 距離控制高切(Object越遠(yuǎn),高頻保留越少)


4. 距離控制音高(Object越遠(yuǎn),音高逐漸下降,最多下降50音分)

以上是距離控制的參數(shù)。由于不同游戲的視角、視野大小、模型大小、場景大小都不同,所以距離變化所帶來的音畫感知也不同。舉個(gè)例子,下圖兩張滅霸,同樣的方向和模型大小,離美隊(duì)的距離也是一樣,但由于鏡頭大小不同,很可能會造成不一樣的聲音期待:

所以需要根據(jù)游戲表現(xiàn)來調(diào)整上述參數(shù),直到找到最合適的參數(shù)。

接下來分析角度相關(guān)的參數(shù)。這是一個(gè)由立體聲總線和3D單聲道總線組成的系統(tǒng),先默認(rèn):

1. 當(dāng)發(fā)聲體處于監(jiān)聽者的正前/正后方時(shí),應(yīng)該聽到僅立體聲總線的信號;

2. 當(dāng)發(fā)聲體處于監(jiān)聽者的正左/正右方時(shí),立體聲總線的信號消失,僅聽到由一邊直達(dá)聲和另一邊延遲聲所組成的立體聲信號,從而增強(qiáng)極左極右的聽覺效果;

3. 當(dāng)發(fā)聲體處于監(jiān)聽者的其他方向時(shí),應(yīng)該聽到由立體聲總線、一邊直達(dá)聲和另一邊延遲聲所組成的立體聲信號。并且通過這3種信號的配比和調(diào)制,達(dá)成3D效果。為了達(dá)成這個(gè)目標(biāo),需要以下RTPC:

  • 角度控制2D Bus發(fā)送量

  • 角度控制直達(dá)聲的發(fā)送量

  • 角度控制延遲聲的發(fā)送量

  • 角度控制高切

  • 角度控制音高(正前方-100音分,正后方-150音分)

【效果展示】:

模塊2:早期反射(Early Reflection)

【需求篇】

在空間音頻系統(tǒng)中,早反射不僅反饋定位信息,也反饋空間材質(zhì)信息。在2017年之前,Wwise Reflect還沒有推出。實(shí)際上Overwatch于16年的Wwise Tour就提到,使用RTPC控制Quadra-Delay效果器,可以塑造精確的早反射效果。

分析Overwatch的實(shí)現(xiàn)方式,可以發(fā)現(xiàn)早反射的基本要求為:

  • 應(yīng)該給予玩家周圍反射體的距離信息,即早反射應(yīng)隨玩家與反射體間的距離變化而變化;

  • 應(yīng)該給予玩家周圍反射體的材質(zhì)信息,即早反射應(yīng)隨反射體的材質(zhì)變化而變化。

Wwise Delay和Wwise Guitar Distortion這兩款插件提供了巨大潛力,盡管Wwise Delay的Delay Time是無法通過RTPC來控制,但靠這兩款插件配合,能達(dá)到一定的早反射效果。

基于立體聲開發(fā)的前提,在游戲引擎端需要以監(jiān)聽者為中心收集兩側(cè)反射面的距離和材質(zhì)信息??梢砸员O(jiān)聽者為中心,向兩側(cè)發(fā)射射線,這樣做可達(dá)到上述要求,盡管結(jié)果并不是最精確的。為了結(jié)果精度更高,可以多加一條向上的射線,來判斷上方反射面的距離和材質(zhì)。將射線的判斷結(jié)果發(fā)送給Wwise即可。

【原理及操作篇】

在Wwise端,先建立以下6條參數(shù),分別是:左側(cè)反射面距離、右側(cè)反射面距離、上方反射面距離、左側(cè)反射面材質(zhì)、右側(cè)反射面材質(zhì)和上方反射面材質(zhì)。

在定義材質(zhì)參數(shù)之前,需要先了解吸音系數(shù)的概念(Noise reduction coefficient - Wikipedia)。吸音系數(shù)是一個(gè)0.0~1.0之間的數(shù)值,來概括某種材質(zhì)對于某個(gè)頻段聲音的吸收效果,數(shù)值為0時(shí)表示完全不吸收該頻段,數(shù)值為1時(shí)表示完全吸收該頻段聲音。以下是常見材質(zhì)的吸音系數(shù)(數(shù)據(jù)來源:An introduction to reverberation and absorption | Troldtekt):

從上表可看出:硬質(zhì)材料吸音系數(shù)都偏低,所以早反射的音染較少;而軟質(zhì)材料則普遍具有更高的吸音系數(shù)(尤其是中頻和高頻),所以早反射的聲音會包含更少的中頻和高頻。這個(gè)結(jié)論符合日常生活中的空間感知,可以以此為出發(fā)點(diǎn),設(shè)置反射面材質(zhì)的參數(shù)。

此處選擇將材質(zhì)參數(shù)范圍設(shè)置到0~10,其中0為無材質(zhì)(反射最模糊的聲音),10為最硬材質(zhì)(反射最保真的聲音),即數(shù)值越高,吸音系數(shù)越低。但由于這個(gè)游戲項(xiàng)目中并沒有太多不同類型的材質(zhì),所以最終定義如下(0=默認(rèn)材質(zhì)(無材質(zhì)或肉體),1=水面,沙面=2,樹木=3,木塊=4,石塊=5,金屬=6):

設(shè)置好參數(shù)后,按如下方式設(shè)置效果軌道:

其中SA為Spatial Audio(空間音頻)的效果母線,SA_receive用于接收需要空間音頻渲染的聲音訊號,但該Bus本身不發(fā)聲(Output Bus Volume拉到最低,并且在Aux Sends中發(fā)送到SA_reflection):

SA_reflection本身也不發(fā)聲,但通過Aux Sends發(fā)送到SA_reflection_L和SA_reflection_R,并通過反射面距離RTPC控制發(fā)送量:

(上圖展示左反射面距離RTPC,右反射面的曲線一樣,只是Y軸換成Aux Send Volume 1,如圖)

至此,總線設(shè)置完畢。

接著在SA_reflection_L和SA_reflection_R上依次插入Wwise Delay和Wwise Guitar Distortion:

Wwise Delay參數(shù)如下,由于Delay Time不可控制,所以選擇了60ms:

對于早反射的音色控制,主要來自于Wwise Guitar Distortion。通過對增益度(Drive)、音色(Tone)和干濕比(Wet/Dry Mix)的控制達(dá)到音色塑形的效果:

用3條RTPC控制Wwise Guitar Distortion的音色,從而控制早反射的音色。其中用反射面距離控制干濕比,達(dá)到“距離越遠(yuǎn),早反射聲越模糊”的效果:

反射面材質(zhì)控制增益度和音色,達(dá)到“反射面越硬,早反射聲越還原;反射面越遠(yuǎn),早反射聲更失真“的效果:

最后,在SA_reflection_L和SA_reflection_R上將Speaker Panning設(shè)置成Balance-Fade,并且配置RTPC,用兩側(cè)反射面和上方反射面的距離控制Speaker Paning(下圖以SA_reflection_L為例。左側(cè)反射面距離越遠(yuǎn),聲音越偏左,反之亦然;上方反射面距離越近,聲音越居中,反之亦然):

【效果展示】:

模塊3:自適應(yīng)混響(Adaptive Reverb)

【需求及原理篇】

Wwise的Unity/Unreal集成中提供了與空間音頻實(shí)現(xiàn)相關(guān)的組件,例如ak room組件可以方便地在引擎中控制發(fā)送式混響,使混響和場景空間匹配。但在項(xiàng)目不使用Audiokinetic空間音頻相關(guān)的集成組件,也不愿購買第三方插件和IR(脈沖響應(yīng)文件)的情況下,實(shí)現(xiàn)良好的戶外的混響表現(xiàn)是有一定難度的,盡管利用Wwise Reverb實(shí)現(xiàn)戶內(nèi)混響還是完全可行的。設(shè)計(jì)的難點(diǎn)在于游戲的美術(shù)風(fēng)格、視野大小和視野方向等元素都影響著玩家對于混響聲的期待和感知:對于某些美術(shù)風(fēng)格而言,更寫實(shí)的混響聲并不一定適合。所以在混響的塑造上,有時(shí)候藝術(shù)要求是高于擬真要求的。

在James Traer和Josh H. McDermott的論文《Statistics of natural reverberation enable perceptual separation of sound and space》中提到,不同的空間由于具有不同的材料和幾何形狀等,導(dǎo)致混響在各個(gè)頻段上具有不同的消逝時(shí)間,這種特異性構(gòu)成了空間的Decay Mode。人耳主要通過Decay Mode來分辨各種不同的空間。在這篇論文中,作者還測量了許多日常生活場景的Decay Mode,并提供了部分圖示。

所以在塑造游戲混響時(shí),實(shí)際上是塑造空間的差異化Decay Mode。如果熟悉FabFilterPro-R這款混響器,會知道這款插件的強(qiáng)大在于各個(gè)頻段都可以設(shè)定混響量和消逝時(shí)間:

而Wwise自帶的兩款混響器都不具備這么細(xì)致的參數(shù),所以需要利用Wwise EQ進(jìn)行分頻。Wwise Matrix Reverb則具有可被RTPC控制的Decay Time,所需的工具是充分的。

在游戲引擎中,可以通過配置空間的大?。w積)和材質(zhì)信息,監(jiān)聽者進(jìn)入空間時(shí),就將信息傳送給Wwise,用于控制混響的效果。

【操作篇】

在Wwise端,首先建立5個(gè)Aux Bus(如下圖):

SA_reverb:用于接收和發(fā)送需要混響渲染的聲音信號,本身是不發(fā)聲的。在本工程中,SA_reverb的信號來自于SA_receive。通過控制4條Aux Sends的發(fā)送量,來控制不同頻段的混響發(fā)送:

至此,總線設(shè)置完畢。

SArvb1~4則分別進(jìn)行4個(gè)頻段的混響處理,分別是:0-250hz、250-2khz、2khz-6khz、6khz以上。在這4個(gè)Aux Bus中都插入Wwise Matrix Reverb和Wwise EQ:

在Wwise EQ中,對應(yīng)各個(gè)軌道名來設(shè)置截頻點(diǎn)(下圖以0-250hz為例):

在Wwise Matrix Reverb中,通過控制Reverb Time來控制各個(gè)頻段的Decay Time,從而構(gòu)成差異化的Decay Mode:

上文提到的控制方式大部分是選擇RTPC,因?yàn)镽TPC是連續(xù)型的控制方式。但混響的控制不需要連續(xù)控制,所以可以用State,以步進(jìn)的方式來控制不同頻段的混響發(fā)送量。先設(shè)置1組State(包含3個(gè)小房間、大房間、戶外):

但由于Wwise Matrix Reverb的Reverb Time只能通過RTPC控制,所以也需要建立相應(yīng)的實(shí)時(shí)參數(shù)(但最終依然可以通過Event同時(shí)控制State和RTPC,實(shí)現(xiàn)步進(jìn)式的控制)。這里只建立了空間容積參數(shù)(room_volume),因?yàn)樵诒卷?xiàng)目中復(fù)用了上文提到的反射面材質(zhì)參數(shù)(但為了功能間解耦合,最好是建立混響功能專用的參數(shù)):

【效果展示】:

總結(jié):

以上是這套空間音頻系統(tǒng)的全部內(nèi)容,利用這套系統(tǒng)可以較低成本地實(shí)現(xiàn)空間音頻的3個(gè)基本要素,但使用中也需要注意這套解決方案的缺陷:

  1. 使用RTPC構(gòu)建3D定位是具有一定消耗的,實(shí)測10個(gè)同一音效的消耗會比Wwise 3D多1%~3%;并且這個(gè)方案是為立體聲耳機(jī)服務(wù)的,如果游戲需要輸出給環(huán)繞聲喇叭或立體聲喇叭,這套RTPC定位方式就不起作用;

  2. 利用射線實(shí)現(xiàn)早反射時(shí),由于單條射線判定的結(jié)果存在偏差或模糊的情況,如果需要實(shí)現(xiàn)更高精度的反射面判定,需要更好的判定方式,或直接用Wwise Reflect;

  3. 同時(shí)使用數(shù)個(gè)Wwise Matrix Reverb會帶來較高的性能消耗。

同時(shí),這套解決方案也具備一定擴(kuò)展性,根據(jù)項(xiàng)目可以進(jìn)行顆粒度的調(diào)整。比如在3D

定位中,如果對仰角有需求,可以引入Elevation RTPC;如果在早反射模塊需要實(shí)現(xiàn)更高精度,也可以增加專屬于各個(gè)不同方向的早反射軌道,只要增加控制的RTPC即可;如果需要在混響上爭取更低的性能消耗,可以把數(shù)個(gè)Wwise Matrix Reverb換成Wwise RoomVerb,或直接減少混響的分頻數(shù)量,通過減少同時(shí)存在的混響器從而爭取更好的性能表現(xiàn)。

盡管如此,Wwise官方提供的有關(guān)空間音頻的組件及插件依然具有強(qiáng)大競爭力,比如在3D定位的實(shí)現(xiàn)上,可以兼容立體聲喇叭、耳機(jī)和環(huán)繞聲喇叭等設(shè)備。

本文基于個(gè)人的項(xiàng)目經(jīng)驗(yàn)及對聲音設(shè)計(jì)的理解,討論了空間音頻的實(shí)現(xiàn)思路。一家之言,姑妄論之,不足為訓(xùn),旨在拋磚引玉,如果對讀者有些許幫助,實(shí)屬我的榮幸。

Wwise的存在使我的很多思路能夠落地,未來我也會更深入地學(xué)習(xí)音頻設(shè)計(jì)的技術(shù)和藝術(shù),也希望有更多機(jī)會和同行老師朋友多做交流。

謝瑋

游戲聲音設(shè)計(jì)

靈犀互娛

熱愛游戲、影視、動漫和音樂,Progressive Fusion和Djent愛好者。致力于“恰到好處、不偏不倚”的聲音設(shè)計(jì)。


利用Wwise的基礎(chǔ)功能構(gòu)建空間音頻效果的評論 (共 條)

分享到微博請遵守國家法律
金阳县| 翼城县| 扬州市| 且末县| 玉田县| 余干县| 新野县| 日照市| 苏尼特左旗| 新源县| 合水县| 饶平县| 嫩江县| 三江| 上思县| 富阳市| 盐山县| 盐边县| 济宁市| 灵丘县| 都匀市| 甘南县| 亚东县| 桐庐县| 亳州市| 望谟县| 滨海县| 南召县| 临潭县| 苍溪县| 扎赉特旗| 苏尼特左旗| 和平县| 育儿| 延津县| 剑河县| 和平区| 巢湖市| 临颍县| 荣昌县| 桓台县|