五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

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

FPS游戲中槍械模塊的音頻設(shè)計(jì)思路

2021-06-23 12:37 作者:Wwise官方  | 我要投稿

大家好,我是JYUN,近期作為音頻設(shè)計(jì)師參與開發(fā)了一款FPS端游,梳理了一些開發(fā)過程中碰到的設(shè)計(jì)點(diǎn),希望和同行老師朋友分享交流。文本內(nèi)容基于個(gè)人經(jīng)驗(yàn)和理解,僅供參考。

本文共分為4個(gè)模塊,分別是:

  1. 槍聲素材的混音(Mixing of Gunshot SFX)

  2. 槍聲的播放邏輯(Playback logic of Gunshot sounds)

  3. 子彈破風(fēng)的播放邏輯(Playback logic of Bullet Flyby sounds)

  4. 子彈碰撞的設(shè)計(jì)思路(How to do Bullet Impact sounds)


模塊1:槍聲素材的混音(Mixing of Gunshot SFX)


第一人稱游戲中包含很多不同的聲音:各類語音、3d音效、氛圍以及音樂等。確保關(guān)鍵聲音在游戲中能被玩家聽清,是音頻設(shè)計(jì)師的核心任務(wù)(之一)。對(duì)于FPS游戲而言,槍聲就是關(guān)鍵聲音(之一)。

槍聲是非常有特質(zhì)的音效:由于爆破聲的存在,音頭較大,容易觸發(fā)中間件的總線壓縮的同時(shí),也容易觸發(fā)(易被玩家聽見的)中間件的空間混響。而游戲的Headroom不是無限的,如果槍聲素材在混音這一環(huán)節(jié)沒有做好,在游戲中就會(huì)過多地觸發(fā)母線壓縮或壓限,導(dǎo)致音頭缺乏力度和打擊感,俗稱的“糊”或“扁”。

制作槍聲的方法,有很多老師提過,這里就不贅述了。我的經(jīng)驗(yàn)是,想要在音頻引擎中更好地播放,最好把槍聲作為one shot素材文件導(dǎo)出,這樣可以更好地控制聲音表現(xiàn),同時(shí)也節(jié)省性能(當(dāng)然,針對(duì)某些特定的設(shè)計(jì),拆分音效分層配置于Wwise中播放也是必要技巧,但并非本文的重點(diǎn)討論對(duì)象)。

這里提兩個(gè)步驟,可以幫助槍聲在游戲中爭(zhēng)取到更多的清晰度和響度。

1. 避免音效中包含過度凹陷的頻段

對(duì)于大部分玩家而言,聽音環(huán)境并不像專業(yè)監(jiān)聽環(huán)境那么“全頻”,這樣“非全頻”的聽音環(huán)境會(huì)造成音頻設(shè)計(jì)師的設(shè)計(jì)思路不能很好地傳達(dá)。舉個(gè)例子:

我制作了音效A。音效A在1khz~2khz有頻段凹陷,但由于其他頻段比較豐滿,所以我沒有太在意凹陷的頻段。在某臺(tái)手機(jī)的喇叭上播放時(shí),由于這個(gè)喇叭的其他頻段的表現(xiàn)都很弱,但1khz~2khz的表現(xiàn)尤為突出,那么音效A在這個(gè)喇叭上的響度就會(huì)比別的音效更低。

如果你的槍聲剛好和音效A有同樣問題,那么在這臺(tái)手機(jī)上,這個(gè)槍聲會(huì)容易被其他聲音給掩蓋掉。

最直接的解決方法是給音效A增加1khz~2khz的聲音素材,或用均衡器解決。但最重要的是意識(shí)到問題的存在,用Fabfilter Q3的頻譜儀可以方便地監(jiān)測(cè)出問題。

可見,只要監(jiān)測(cè)出音效中存在過度凹陷的頻點(diǎn),修復(fù)的方式是不唯一的。針對(duì)頻點(diǎn)凹陷的問題,還可以使用多段飽和器(如Fabfilter Saturn 2或Steinberg QuadraFuzz)來解決,此處不贅述。?

2. 控制音效電平峰值

槍聲這種大音頭的音效,通常會(huì)作為側(cè)鏈源,來壓縮別的音效(或音樂)。但播放數(shù)多起來之后,槍聲的大音頭依然容易觸發(fā)中間件的母線壓縮和壓限,導(dǎo)致槍聲變糊。所以我們需要一個(gè)工具來控制音頭,爭(zhēng)取更多的Headroom,卻不改變整體音色。

最直接有效的方式是使用削波器,這里推薦的削波器是Submission Flatline。

可見,削波器在一定程度上,可以保證素材音色的純凈,同時(shí)控制峰值。但不同削波器有不同的生成諧波的行為,實(shí)際使用時(shí)還需具體情況具體分析。


模塊2:槍聲的播放邏輯(Playback logic of Gunshot sounds)

射擊游戲的戰(zhàn)斗系統(tǒng)通常都是圍繞槍支彈藥展開,如何將琳瑯滿目、種類繁多的槍械表現(xiàn)好,是音頻設(shè)計(jì)的重心。

盡管在同一個(gè)射擊游戲中,可能包含著差異性巨大的不同武器,但總結(jié)下來會(huì)發(fā)現(xiàn),游戲中包含的武器,都是以幾種不同類型的現(xiàn)實(shí)原型來展開設(shè)計(jì)(原型包括但不限于:手槍(Pistol)、突擊步槍(AR)、狙擊步槍(SR)、霰彈槍(SG)、沖鋒槍(SMG)和噴射器等)。

其中手槍、狙擊槍和霰彈槍的音效,大都是One Shot播放。真正需要?jiǎng)幽X筋的是連發(fā)、全自動(dòng)和循環(huán)型音效。根據(jù)項(xiàng)目的需求,槍聲播放邏輯的復(fù)雜性天花板非常高。

以前有老師講解過如何在中間件中配置槍聲,其中提到將資源渲染成包含多次槍聲的長(zhǎng)文件,用音樂軌播放,適用于全自動(dòng)射擊的槍械。這個(gè)方法很巧妙,但由于我參與的項(xiàng)目有實(shí)時(shí)變化射速的需求,所以只能另辟蹊徑。以下是我的思路:

類型1:連發(fā)模式(Burst Mode)

對(duì)于某些AR或SMG的連發(fā)型點(diǎn)射,可采用序列容器嵌套隨機(jī)容器的方式:

如上圖,在序列容器內(nèi)嵌套若干個(gè)隨機(jī)容器(此處范例為3),在隨機(jī)容器中配置槍聲多樣本(相鄰播放的兩次隨機(jī)容器中的多樣本最好不同)。

隨后,在序列容器的Playlist中,配置播放數(shù)量及順序(該武器設(shè)定為3連發(fā)。則配置數(shù)量=3):

然后在序列容器中配置play mode。此處希望每次觸發(fā)事件都觸發(fā)一次3連發(fā),所以選擇Continuous,即每次觸發(fā)事件,該序列容器的playlist都會(huì)依次播放完。隨后勾選Transitions,類型選擇為Trigger rate,Duration則根據(jù)武器設(shè)定的射速來設(shè)置(該武器設(shè)定的射擊間隔為67ms,則輸入0.067)。

最后在每個(gè)隨機(jī)容器都掛上pitch隨機(jī)化,并且保證每個(gè)聲音開始的位置都在音頭上(全自動(dòng)模式同),就可以預(yù)覽效果了:

類型2:全自動(dòng)模式(Full-Auto Mode)

為了滿足“射速能實(shí)時(shí)變化”的需求,這里提供如下思路:

使用隨機(jī)容器裝載槍聲文件(如上圖),Play Mode選擇Continuous,并勾選Loop,在Transitions下方的Duration填寫武器的基礎(chǔ)射速(此處為100ms,下圖):

接著使用2個(gè)事件來控制射擊的啟/停(當(dāng)玩家射擊時(shí)調(diào)用play event,當(dāng)玩家停止射擊時(shí)調(diào)用stop event,參考下圖)。Stop event需要寫上Fade Time防止鬼畜,為了能夠及時(shí)停止,建議寫100ms以下的值(此處為50ms):

隨后,配置一條rtpc,用于控制射速(下圖):

(如上圖)這里的rtpc取值為(0,2),其中1為原始射速(Y=0);0為最慢射速(Y=31ms,意為射擊間隔增加31ms);2為最快射速(Y=-19ms,意為射擊間隔減少19ms)。

配好后預(yù)覽效果:


類型3:噴射型武器

這個(gè)類型應(yīng)用于鐳射槍和噴火器等槍械,這類武器的共同點(diǎn)在于發(fā)射瞬間都會(huì)有強(qiáng)音頭,音頭過后則為L(zhǎng)oop型的噴射/照射音效,所以這里選擇的是混合容器嵌套的思路:

其中shot文件為射擊音頭,loop1和loop2為持續(xù)的噴射/照射音效,使用多個(gè)loop文件是為了降低玩家聽出循環(huán)點(diǎn)的概率,所以loop1和loop2最好為不同長(zhǎng)度的音頻文件。隨后在loop1和loop2容器上勾選循環(huán):

和類型2:全自動(dòng)模式一樣,使用兩個(gè)event分別控制武器射擊的啟/停。效果如下:


模塊3:子彈破風(fēng)的播放邏輯(Playback logic of Bullet Flyby sounds)

子彈破風(fēng)音效,是射擊游戲中緊張感的來源之一,也是刻畫戰(zhàn)場(chǎng)的重要因素,可以說是沉浸感的必要條件。

子彈破風(fēng)音效可用于回調(diào)美術(shù)特效,以確保聲畫的一致性。但由于我參與的項(xiàng)目,子彈飛行速度較慢,所以最終選擇了另一個(gè)思路來實(shí)現(xiàn)這個(gè)功能:

假設(shè)圖中藍(lán)色人體模型為第一人稱游戲的玩家模型(Camera以及Listener應(yīng)該配置在這個(gè)人體模型的頭上),綠色為游戲引擎中的球狀碰撞體,將其以Listener為圓心來配置(圓的直徑根據(jù)游戲所需收聽的子彈范圍來決定),結(jié)果如下:

之后需要為游戲中的子彈配置可觸發(fā)碰撞的Game Object。當(dāng)子彈碰撞Listener周圍的球狀體時(shí),就調(diào)用Bullet Flyby的事件。同時(shí),子彈的入射角會(huì)反饋角度信息,來控制Wwise中的轉(zhuǎn)換容器。

接下來,展開講Wwise的配置方式:

如上圖,子彈碰撞球狀體后觸發(fā)轉(zhuǎn)換容器,其下有9個(gè)子隨機(jī)容器,分別對(duì)應(yīng)9種不同的子彈入射情況。上圖第一種為子彈擊中玩家(需要配置stop event來及時(shí)停止聲音),其余八種情況為子彈不同的入射角,分別是:

  1. Listener的左前方→左后方

  2. Listener的左前方→右后方

  3. 依此類推

與其配套的switch的設(shè)置如下:

下一步,則是配置不同方向的聲音軌跡,拿left_front_to_left_rear容器作舉例:

在3D Position這里選擇Listener with Automation,來給聲音畫上定位軌跡(如上圖):軌跡為從左前方到左后方。這個(gè)功能還可以畫數(shù)個(gè)方向相同但角度或時(shí)長(zhǎng)等略有不同的軌跡,再選用隨機(jī)化,這里就不贅述了。

點(diǎn)擊Configure Timeline給這個(gè)軌跡配置時(shí)間軸(意為該音效從初始位置到達(dá)終點(diǎn)位置的過程所需的時(shí)間,該時(shí)間需要配合資源的ADSR來設(shè)置,經(jīng)測(cè)試在150ms~400ms之間為佳)。

最后,回到母轉(zhuǎn)換容器上,配置3D衰減曲線:

展示效果:


模塊4:子彈碰撞的設(shè)計(jì)思路(How to do Bullet Impact sounds)

讀者朋友如果完整地看到這里的話,會(huì)發(fā)現(xiàn)你已經(jīng)不關(guān)注子彈碰撞音效的播放邏輯了,因?yàn)楹蜕衔牡倪壿嬍谴笸‘惖?。需要注意的是,上文提到的Gunshot是2D播放的,而Bullet Flyby是“偽3D”播放,但子彈碰撞則需要“真3D”播放(讀取游戲引擎的定位信息,來渲染子彈碰撞音效的定位效果)。

這里主要分享子彈碰撞的設(shè)計(jì)思路。通常在射擊游戲中,和“子彈碰撞”這一行為相關(guān)的音效常有4種:

  1. 獎(jiǎng)勵(lì)音效:如命中敵人弱點(diǎn)的獎(jiǎng)勵(lì)音效(典型案例為《守望先鋒》的爆頭獎(jiǎng)勵(lì)音效),擊殺敵人的獎(jiǎng)勵(lì)音效等;

  2. 子彈擊中音效:通常是子彈命中后的碰撞和軌跡引發(fā)的聲音,如跳彈、摩擦、碰撞甚至爆炸等擬聲。可配置在子彈Game Object上,碰撞即觸發(fā)。;

  3. 物件受擊音效:通常是物件被子彈擊中后引發(fā)的聲音,如玻璃破碎,水面因射擊而揚(yáng)起水花等擬聲,甚至是敵人的受擊和死亡音效等。可配置在物件Game Object或用美術(shù)特效回調(diào);

  4. 傷害確認(rèn)音效:和獎(jiǎng)勵(lì)音效類似,有提示作用,但通常程度較低,如擊中敵人軀干,擊破敵人護(hù)盾等。

根據(jù)游戲設(shè)定的不同,以上4類音效的播放邏輯或有變化?;谖业捻?xiàng)目經(jīng)驗(yàn),獎(jiǎng)勵(lì)音效都為2D播放,其他3種則為3D播放。為了讓這些音效能夠清晰地表現(xiàn),需要梳理它們的優(yōu)先級(jí),并配置相應(yīng)的動(dòng)態(tài)混音。

先假設(shè)如下場(chǎng)景:你是玩家A,而隊(duì)友B命中了敵人C并成功擊殺,因?yàn)閾魵⑿袨椴皇茿控制的,所以無須對(duì)A播放獎(jiǎng)勵(lì)音效,只播放C的死亡音效和B的子彈擊中音效即可,此處C的死亡音效優(yōu)先級(jí)更高,應(yīng)該是沒有爭(zhēng)議的;但如果玩家A命中了敵人C,觸發(fā)了破盾效果,并成功擊殺,此時(shí)播放了【A的獎(jiǎng)勵(lì)音效+C的破盾音效+C的死亡音效】,我們就要做出選擇:應(yīng)該讓玩家優(yōu)先關(guān)注哪個(gè)聲音?

通常來說,獎(jiǎng)勵(lì)音效>死亡音效>破盾音效。

根據(jù)游戲中可能發(fā)生的情況做窮舉,可大致得出一個(gè)基本思路:

獎(jiǎng)勵(lì)音效>部分子彈擊中音效(如爆炸等)>部分傷害確認(rèn)音效(如敵人死亡等)≥部分物件受擊音效(如擊中油桶爆炸)>大部分傷害確認(rèn)音效(如命中軀干)=大部分子彈擊中音效(如跳彈)>大部分物件受擊音效

基于游戲中還可能存在貫通型或AOE型子彈,這個(gè)列表越清晰,越利于在Wwise層面將聲音處理得干凈和清晰。

基于以上思路,可以設(shè)置動(dòng)態(tài)混音,首先先為各個(gè)層級(jí)配置好母線(下圖):

在gunshot_feedback的管線下,放置3個(gè)大層級(jí)(t1、t2和t3)。在3個(gè)層級(jí)下又細(xì)分6個(gè)層級(jí),分別對(duì)應(yīng):

t1_damage_bonus=獎(jiǎng)勵(lì)音效

t21_sfx_bullet_explode=部分子彈擊中音效(如爆炸等)

t22_sfx_damage_confirm=部分傷害確認(rèn)音效(如敵人死亡等)

t23_sfx_prop_explode=部分物件受擊音效(如擊中油桶爆炸)

t31_sfx_bullet_feeback=大部分傷害確認(rèn)音效(如命中軀干)+大部分子彈擊中音效(如跳彈)

t32_sfx_prop_damage=大部分物件受擊音效

接下來把相關(guān)的音效容器,送進(jìn)相應(yīng)的母線后,就可以開始設(shè)置動(dòng)態(tài)混音了。首先是獎(jiǎng)勵(lì)音效的避讓,因?yàn)檫@部分都是2d音效,可以用HDR和auto-duck?;谝陨系墓芫€構(gòu)造,我選擇了auto-duck(下圖):

在t2和t3上都做相同的設(shè)置?;趖1通常都是清脆大音頭的音效,所以Fade In設(shè)置得比較短(100ms)。接下來,是給t2和t3做metering側(cè)鏈。首先設(shè)置rtpc:

在t21上加載meter插件,將讀數(shù)發(fā)送到t22的rtpc上:

然后在t22和t23上配置rtpc(如下):

同樣的metering側(cè)鏈方式,也應(yīng)用于t2壓t3、t31壓t32。如此設(shè)置,便完成了如下優(yōu)先級(jí)的梯度設(shè)定:

獎(jiǎng)勵(lì)音效>部分子彈擊中音效(如爆炸等)>部分傷害確認(rèn)音效(如敵人死亡等)≥部分物件受擊音效(如擊中油桶爆炸)>大部分傷害確認(rèn)音效(如命中軀干)=大部分子彈擊中音效(如跳彈)>大部分物件受擊音效

當(dāng)然,聲音的優(yōu)先度,不僅需要通過動(dòng)態(tài)混音來控制,也需要在素材層面進(jìn)行把控,甚至需要用到Wwise的播放優(yōu)先級(jí)(Playback Priority)來控制。通過控制響度差異和頻響避讓,也能做出很好的效果,此前有老師分享過側(cè)鏈低切和側(cè)鏈特定頻段的控制方式,使用Wwise自帶的插件已經(jīng)能做出非常清晰的動(dòng)態(tài)混音。

總結(jié):

游戲的研發(fā)過程會(huì)有很多不可預(yù)見的變數(shù),根據(jù)不同項(xiàng)目的玩法重心、操作特點(diǎn)和及世界觀設(shè)定的差異,音頻設(shè)計(jì)的重心也有所不同。

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

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

本文作者

謝瑋

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

靈犀互娛

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


FPS游戲中槍械模塊的音頻設(shè)計(jì)思路的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
吉林市| 右玉县| 广河县| 宝清县| 梧州市| 沧州市| 陆良县| 上蔡县| 灌南县| 阳朔县| 绵竹市| 泰兴市| 新泰市| 五寨县| 浦北县| 宜章县| 正蓝旗| 甘泉县| 孟津县| 新民市| 金华市| 泉州市| 兰州市| 福鼎市| 台安县| 宁河县| 星子县| 伊吾县| 大城县| 玛纳斯县| 庐江县| 敦化市| 会同县| 泰安市| 神木县| 绥棱县| 桓仁| 手游| 宁阳县| 青田县| 循化|