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

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

PhysX+REV解決載具音效擬真問(wèn)題

2023-01-13 07:22 作者:Wwise官方  | 我要投稿

前言

筆者曾經(jīng)使用UE4內(nèi)的車輛模塊進(jìn)行過(guò)載具模擬方案的驗(yàn)證。關(guān)于此部分的內(nèi)容可以參考筆者之前的文章:以REV2為基礎(chǔ)制作賽車引擎聲

之前這篇文章主要側(cè)重于介紹汽車的基礎(chǔ)發(fā)聲原理以及REV插件的使用。并未對(duì)游戲引擎中的相關(guān)設(shè)置和參數(shù)獲取做詳細(xì)介紹。如果參數(shù)的獲取和調(diào)整不正常的話,我們就會(huì)發(fā)現(xiàn)游戲即使接入了REV,其聲音表現(xiàn)也并不理想,甚至和REV內(nèi)置的聲音預(yù)覽效果差距巨大。這是因?yàn)楹芏囗?xiàng)目在開(kāi)發(fā)階段調(diào)整載具參數(shù)的時(shí)候并未接入聲音,那么負(fù)責(zé)調(diào)整載具的同學(xué)就會(huì)以視覺(jué)表現(xiàn)為主,這就導(dǎo)致所有參數(shù)為視覺(jué)表現(xiàn)服務(wù)。結(jié)果就是車跑起來(lái)了,看起來(lái)很正常,但是內(nèi)部和音頻相關(guān)的參數(shù)則不太正常,所以聲音模塊接入以后的表現(xiàn)也并不理想。

本文將以PhysX物理引擎為例,介紹車輛聲音模擬所需的參數(shù)有那些,以及這些參數(shù)應(yīng)該如何獲取和使用。以此和前文形成互補(bǔ),從而完整的闡述如何在游戲中制作出擁有高互動(dòng)性的汽車聲音。

一、PhysX+REV制作載具模擬的效果及相關(guān)前置知識(shí)

PhysX是物理運(yùn)算引擎的一種,常見(jiàn)的物理引擎還有Havok、Bullet以及UE5新出的Chaos。PhysX最早由AGEIA公司開(kāi)發(fā),現(xiàn)在已經(jīng)被NVIDIA收購(gòu)了。PhysX的功能其實(shí)非常強(qiáng)大,可以完成諸多物理模擬,幾乎包攬一個(gè)游戲全部需求。本文不會(huì)涉獵那么廣,我們這里使用的只有PhysX中的Vehicle Dynamics。選擇它作為例子的原因是PhysX比較常見(jiàn),UE4直接集成完整的PhysX載具模塊,并暴露其大部分API接口,甚至提供基礎(chǔ)演示DEMO。Unity中用來(lái)模擬載具的Wheel Collider使用的物理引擎也是PhysX。且PhysX的開(kāi)源性很好,自研引擎也可以完整的集成其功能,所以該載具模擬系統(tǒng)幾乎所有游戲引擎通用。因?yàn)槠浞河眯院陀绊懥?,其原理和使用方法都是有著很?qiáng)的普適性。即使不使用PhysX開(kāi)發(fā)游戲載具,也可以參考PhysX的思路,來(lái)獲取音頻所需的參數(shù),以滿足開(kāi)發(fā)需求。

因?yàn)閁E的界面更加直觀和簡(jiǎn)潔,且有高完成度的演示DEMO可以直接使用,所以我們先從UE入手,熟悉物理引擎中和載具音頻相關(guān)的基礎(chǔ)參數(shù)。

二、UE和Unity集成physX載具模塊參數(shù)調(diào)整詳解

我們打開(kāi)UE的載具藍(lán)圖,選擇載具移動(dòng)。然后可以在細(xì)節(jié)窗口看到和載具相關(guān)的設(shè)置。之前的Blog中我曾經(jīng)簡(jiǎn)單介紹過(guò)部分界面的屬性。這次我們來(lái)解析的更加詳細(xì)些。

車輛配置

  • 啟用的彈簧偏移模式:該設(shè)置只影響車輛行駛和碰撞時(shí)的抖動(dòng)表現(xiàn),啟用后將使用較新的模擬方式。

  • 翻轉(zhuǎn)為制動(dòng):自動(dòng)翻轉(zhuǎn)操作,倒車時(shí)向后將視為油門,向前將視為剎車。一般在硬核車輛駕駛模擬的項(xiàng)目中不勾選該選項(xiàng),倒車與否取決與玩家的擋位設(shè)置。普通只用四方向鍵操作的項(xiàng)目都可以勾選該選項(xiàng)。

  • 質(zhì)量:車輛模擬模塊中車底盤的重量,越重車量的物理狀態(tài)就越難以改變。會(huì)影響車輛的加速、減速轉(zhuǎn)向等性能。該項(xiàng)目屬于物理引擎中剛體的基礎(chǔ)屬性。

  • 車輪設(shè)置:數(shù)組的數(shù)量代表車輛車輪的個(gè)數(shù)。主要影響車輛的外觀、駕駛手感以及性能消耗。

此部分和音頻相關(guān)度不是很大,屬于車輛的基礎(chǔ)物理屬性設(shè)置,音頻職能一般也不需要調(diào)整此部分。

回避:是否使用RVO系統(tǒng)。

RVO全稱Reciprocal Velocity Obstacles也就是障礙物規(guī)避算法。車輛在靠近障礙物時(shí)是否會(huì)有自動(dòng)規(guī)避動(dòng)作。和音頻關(guān)系不大,該大項(xiàng)及其子項(xiàng)略過(guò)。

組件tick

設(shè)置UE中的組件tick功能是否開(kāi)啟,以及tick的頻率。和音頻關(guān)系不大,主要影響游戲同步性。

車輛輸入

影響玩家操作手感的數(shù)值。

  • 閑置制動(dòng)輸入:當(dāng)玩家松開(kāi)油門也不踩剎車時(shí)是否默認(rèn)玩家采取了制動(dòng)行為,以及制動(dòng)的強(qiáng)度。值越大,玩家松開(kāi)油門后車輛降速越快。

  • 停止閾值:車速小于該值時(shí)默認(rèn)執(zhí)行剎車,以免游戲中出現(xiàn)玩家停不了車,車輛會(huì)以極低速度緩慢滑行的現(xiàn)象。

  • 錯(cuò)誤方向閾值:如果玩家當(dāng)前操作和車輛行駛狀態(tài)相反,且程度大于該值后,將視為剎車。

  • 機(jī)械設(shè)置:對(duì)車輛運(yùn)行手感以及音頻表現(xiàn)影響最大的模塊。內(nèi)容也較多,不全部截圖了。

扭矩曲線

橫軸為發(fā)動(dòng)機(jī)轉(zhuǎn)速,縱軸為發(fā)動(dòng)機(jī)扭矩??梢越斫鉃榘l(fā)動(dòng)機(jī)在不同轉(zhuǎn)速下輸出的動(dòng)力的大小。扭矩的設(shè)置會(huì)影響車輛的加速性能,同時(shí)也會(huì)影響車輛的最大車速,這里是車輛調(diào)教時(shí)容易出錯(cuò)的點(diǎn),因?yàn)楹芏嗳藭?huì)認(rèn)為發(fā)動(dòng)機(jī)轉(zhuǎn)速越快,輸出的動(dòng)力越大,這個(gè)理解是錯(cuò)誤的。真實(shí)車輛發(fā)動(dòng)機(jī)的扭矩曲線一般為拋物線(自吸型發(fā)動(dòng)機(jī))或者梯形線(渦輪增壓型發(fā)動(dòng)機(jī))。但是如果游戲中的車輛并不是十分寫實(shí),也可以不完全按照真實(shí)車輛的扭矩設(shè)置,可以根據(jù)需要適當(dāng)改變曲線的樣式。該選項(xiàng)卡的設(shè)置會(huì)影響車輛的加速度和車輛的最大速度,直接影響這兩種情況下的聲音表現(xiàn),非常重要。更多關(guān)于汽車扭矩的相關(guān)知識(shí)請(qǐng)參考前文提到的blog內(nèi)容。

引擎設(shè)置

  • 最高RPM:發(fā)動(dòng)機(jī)的最大轉(zhuǎn)速,達(dá)到設(shè)定值后就不會(huì)繼續(xù)提升。關(guān)于該參數(shù)需要注意的是,這個(gè)值僅僅影響引擎輸出的RPM值,并不會(huì)限定車輛的總體性能。真正限制RPM變化范圍的的東西是扭矩曲線,所以扭矩曲線和最大RPM值需要結(jié)合在一起,扭矩曲線右方最低點(diǎn)對(duì)應(yīng)的RPM值應(yīng)保持和RPM最大值相同。如果不同的話,當(dāng)最大RPM值設(shè)置小于扭矩曲線可以實(shí)際達(dá)到的最大RPM時(shí),那么車輛會(huì)在達(dá)到最大RPM值以后保持RPM不變的情況下繼續(xù)加速。這其實(shí)是很不正常的,因?yàn)檎鎸?shí)車輛在發(fā)動(dòng)機(jī)轉(zhuǎn)速達(dá)到儀表片最大值的時(shí)候會(huì)斷油,停止對(duì)發(fā)動(dòng)機(jī)的油料供給,以保護(hù)車輛自身的機(jī)械結(jié)構(gòu)。如果最大RPM值設(shè)置大于扭矩曲線可以實(shí)際達(dá)到的最大RPM時(shí),那么車輛運(yùn)行時(shí)發(fā)動(dòng)機(jī)的轉(zhuǎn)速將一直維持在中低區(qū)間,不會(huì)接近最大值。導(dǎo)致發(fā)動(dòng)機(jī)聽(tīng)起來(lái)很平,沒(méi)有什么力度。

  • MOI:發(fā)動(dòng)機(jī)轉(zhuǎn)動(dòng)的慣性量,慣性越大狀態(tài)越難以改變,加速的時(shí)候提速就越慢,空油門時(shí)發(fā)動(dòng)機(jī)自然降速的速度也會(huì)越慢。

  • 阻尼率完全油門:可以簡(jiǎn)單的理解為油門最大情況下發(fā)動(dòng)機(jī)自身的阻力大小。這個(gè)值越大,發(fā)動(dòng)機(jī)可以對(duì)外提供的動(dòng)力越小。主要影響手感和速度表現(xiàn),在音頻方面會(huì)對(duì)車輛的加速度和最大速度形成較輕微的影響,在車輛行駛表現(xiàn)正常的情況下,音頻同學(xué)可以忽略該參數(shù)。

  • 阻尼率零油門離合已結(jié)合:可以簡(jiǎn)單的理解為零油門狀態(tài)下,車輛總體的阻力大小,影響離合結(jié)合情況下,車輛空油門自然減速的速度。會(huì)對(duì)車輛減速狀態(tài)下的視覺(jué)和音頻表現(xiàn)形成影響。

  • 阻尼率零油門離合未結(jié)合:可以簡(jiǎn)單的理解為零油門狀態(tài)下,發(fā)動(dòng)機(jī)自身阻力大小,影響空檔時(shí)發(fā)動(dòng)機(jī)自然減速的速度。主要影響空油門情況下的發(fā)動(dòng)機(jī)音頻表現(xiàn)。更多關(guān)于離合結(jié)合的相關(guān)知識(shí)可以參考前文提到的Blog的離合器章節(jié)。

差速器設(shè)置

差速器是車輛在轉(zhuǎn)彎時(shí)控制車輪的轉(zhuǎn)速及角度的一種機(jī)械結(jié)構(gòu),因?yàn)檐囕v轉(zhuǎn)向時(shí),內(nèi)圈車輪與外圈車輪轉(zhuǎn)向的角度與自身速度都有所差異,所以需要差速器來(lái)控制不同的車輪在轉(zhuǎn)向時(shí)的運(yùn)行狀態(tài),以及對(duì)于每個(gè)車輪施加的力量的大小。該選項(xiàng)對(duì)音頻的影響較小,主要影響車輛轉(zhuǎn)彎的操作手感。音頻同學(xué)一般不太需要去調(diào)節(jié)它。

變速箱設(shè)置

車輛參數(shù)設(shè)置錯(cuò)誤的又一重災(zāi)區(qū),因?yàn)樵摬糠謱?duì)視覺(jué)體驗(yàn)的影響并不是很大,如果沒(méi)有配套的音頻表現(xiàn)的話,換檔操作在純視覺(jué)的表現(xiàn)上甚至是一個(gè)負(fù)加成,因?yàn)閾Q檔的瞬間發(fā)動(dòng)機(jī)的動(dòng)力是斷開(kāi)的,車輛在視覺(jué)上會(huì)出現(xiàn)“頓一下”的表現(xiàn),所以如果以純視覺(jué)參考的話,很可能會(huì)無(wú)限壓縮換檔時(shí)間,甚至直接將把擋位切換抹掉。這樣的結(jié)果就是,車輛在音頻的表現(xiàn)上不會(huì)換檔,而實(shí)際生活中,所有以內(nèi)燃機(jī)為動(dòng)力的車都離不開(kāi)換檔這個(gè)操作,以內(nèi)燃機(jī)為動(dòng)力且不換檔的車,非常稀少,就算有一般也會(huì)是油電混合驅(qū)動(dòng)等特殊類型。比如?Koenigsegg Regera。所以大部分的車都無(wú)法逃開(kāi)擋位切換這一要素,擋位切換的流暢與否直接決定了游戲中的一款車是否擬真。如果你不換檔,那么玩家大概率會(huì)覺(jué)得這車像電動(dòng)玩具車。

  • 自動(dòng)變速:可以簡(jiǎn)單的理解車是自動(dòng)擋還是手動(dòng)擋。硬核駕駛模擬的游戲可以根據(jù)車輛種類自行切換。普通四方向鍵操作的游戲可以無(wú)腦勾選。因?yàn)橐话阋膊粫?huì)給玩家做升降擋和離合器的操作鍵位。

  • 齒輪切換時(shí)間:車輛完成一次換檔所需要的時(shí)間。該值需要和Rev內(nèi)檔位切換時(shí)間的設(shè)置相統(tǒng)一。

  • 齒輪自動(dòng)盒體延遲:如果是自動(dòng)擋的車,該參數(shù)決定兩次換檔之間的間隔。完成一次換檔之后,在該設(shè)定時(shí)間內(nèi),不會(huì)觸發(fā)第二次換檔。

  • 最終比:該值越大,車輛跑的越慢,和扭矩曲線共同決定車輛的最大車速。該值主要是用來(lái)對(duì)車輛的速度表現(xiàn)進(jìn)行整體縮放。不同游戲里對(duì)車輛最大速度的限制是不一樣的,但是不同游戲里的車的發(fā)動(dòng)機(jī)最大轉(zhuǎn)速并不會(huì)有太大差距。此時(shí)我們就需要使用最終比來(lái)調(diào)整車速使其符合我們游戲內(nèi)對(duì)載具最大速度的需求。

  • 齒比:某擋位下的齒輪比,決定該擋位下車輛可以達(dá)到的最大車速。不同擋位需要設(shè)置不同的齒輪比,以模擬真實(shí)車輛中不同檔位下發(fā)動(dòng)機(jī)轉(zhuǎn)速和車速之間的對(duì)應(yīng)關(guān)系。具體公式我就不說(shuō)了(大家都不喜歡看公式對(duì)吧),有幾個(gè)關(guān)鍵點(diǎn)大家明白就可以。1、比值越小,當(dāng)前檔位可以達(dá)到的最大車速越快。所以通常是高擋位比低擋位的比值小。2、不同擋位間齒比的差距決定了換擋時(shí)發(fā)動(dòng)機(jī)轉(zhuǎn)速的變化幅度,需要合理設(shè)置。齒輪比差距越大,換擋時(shí)發(fā)動(dòng)機(jī)轉(zhuǎn)速的變化就越大。如果差距過(guò)大可能會(huì)導(dǎo)致車輛無(wú)法完成升檔,或者升了擋以后車速反而下降的情況。如果差距設(shè)置過(guò)小,那么車輛會(huì)頻繁的觸發(fā)換擋動(dòng)作。失去擬真感。

  • 上齒比:如果是自動(dòng)擋的車輛,當(dāng)發(fā)動(dòng)機(jī)當(dāng)前轉(zhuǎn)速>=最大RPM值*上齒比時(shí),則自動(dòng)升擋。

  • 下齒比:如果是自動(dòng)擋的車輛,當(dāng)發(fā)動(dòng)機(jī)當(dāng)前轉(zhuǎn)速<=最大RPM值*下齒比時(shí),則自動(dòng)降擋。

  • 上下齒比的設(shè)置需要和齒比結(jié)合,不然會(huì)出現(xiàn)不會(huì)升降擋,或者升擋升不上去等情況。正確的齒比與上下齒比的關(guān)系是:

    發(fā)動(dòng)機(jī)達(dá)到上齒比升擋后,新的發(fā)動(dòng)機(jī)轉(zhuǎn)速與最大RPM的比值,處于下一擋位的上下齒比之間。且理論上接近下齒比,但是和下齒比間又有一點(diǎn)距離。通常這種情況發(fā)動(dòng)機(jī)的升降擋表現(xiàn)一般都比較寫實(shí)。如果希望自己的車比較類似NFS21的效果,可以將各擋位之間齒比的差距設(shè)置的較小,然后上齒比和下齒比之間的差距也小一些,這樣車輛在加速過(guò)程中發(fā)動(dòng)機(jī)轉(zhuǎn)速就會(huì)在較高區(qū)間內(nèi)反復(fù)變化。而如果想要模擬略微早期版本的NFS,車輛加速過(guò)程中可以聽(tīng)到明顯的強(qiáng)勁加速過(guò)程。那就將各擋位之間的齒比差距拉大,上下齒比之間也有比較大的間距,這樣就可以讓發(fā)動(dòng)機(jī)在每個(gè)擋位的變化區(qū)間增大。

    • ReverseGearRatio:倒擋齒輪比,通常為負(fù)值且和擋位1的齒輪比相同或相近。一般不設(shè)置為正值,會(huì)導(dǎo)致無(wú)法倒車。

    • NeutralGearRatio:空檔齒比,一般只有上齒比。自動(dòng)擋的空檔情況下,發(fā)動(dòng)機(jī)轉(zhuǎn)速達(dá)到多少以后開(kāi)始閉合離合。一般設(shè)置為10%左右。真實(shí)車輛在起步時(shí),并不會(huì)第一時(shí)間提升檔位到1擋,而是會(huì)在空擋將發(fā)動(dòng)機(jī)轉(zhuǎn)速進(jìn)行一定提升以后,才會(huì)提升檔位至1擋。這是因?yàn)檎鎸?shí)的內(nèi)燃機(jī)在低轉(zhuǎn)速時(shí)輸出的扭矩是很低的,不利于車輛的起步。

    • 離合器強(qiáng)度:決定車速和發(fā)動(dòng)機(jī)轉(zhuǎn)速之間關(guān)聯(lián)的強(qiáng)度。值越大車速和發(fā)動(dòng)機(jī)轉(zhuǎn)速之間互相影響的敏感度越高。

    轉(zhuǎn)向配置

    控制調(diào)整車輛的轉(zhuǎn)向能力。

    • 轉(zhuǎn)向曲線

    該曲線影響車輛的轉(zhuǎn)向性能主要用來(lái)區(qū)分不同車輛轉(zhuǎn)向能力的不同。縱軸為轉(zhuǎn)向能力,橫軸為車速。通常會(huì)設(shè)置成緩慢下降的曲線,車速越快越難轉(zhuǎn)彎嘛,很合乎常理。

    至此載具移動(dòng)藍(lán)圖內(nèi)的所有參數(shù)介紹完畢,發(fā)動(dòng)機(jī)相關(guān)的主要參數(shù)都在這里,然后我們看一下車輪模擬部分的相關(guān)參數(shù)。

    以上分別是Unity中Wheel Collider組件的界面和UE中輪胎藍(lán)圖的設(shè)置界面。我們來(lái)了解一下其中相同的部分。


    (如果表格中部分選項(xiàng)在你的Unity版本中不可見(jiàn),可以嘗試使用API直接調(diào)用。)

    UE中的疲勞選項(xiàng)卡和Wheel Collider組件中的Forward Friction、Sideways Friction都是用來(lái)設(shè)置輪胎摩擦的相關(guān)參數(shù),但是二者含義不一樣,分別對(duì)應(yīng)PhysX中不同的API,Unity的設(shè)置主要設(shè)置輪胎不同方向的摩擦力曲線,我們知道靜態(tài)摩擦力是比動(dòng)態(tài)摩擦力更大的,這部分設(shè)置就用來(lái)模擬該現(xiàn)象。Forward Friction是汽車行駛方向的摩擦力,Sideways Friction是輪胎的側(cè)向摩擦力,雖然看起來(lái)是獨(dú)立的數(shù)值。但是其實(shí)這是一個(gè)曲線設(shè)置,其效果類似于UE中的扭矩曲線和轉(zhuǎn)向曲線,只不過(guò)其表示方式不一樣。Unity中沒(méi)有提供直觀的圖形界面,而是通過(guò)填入曲線關(guān)鍵節(jié)點(diǎn)的值來(lái)完成曲線的設(shè)置,該設(shè)置選項(xiàng)轉(zhuǎn)化成圖像后的效果是這樣的:

    UE中可見(jiàn)的幾個(gè)選項(xiàng)則是設(shè)置不同受力情況下滑動(dòng)產(chǎn)生的幅度和臨界值。

    關(guān)于輪胎的參數(shù)音頻職能同學(xué)其實(shí)不需要太過(guò)深入的了解其參數(shù)調(diào)節(jié)方法,我們只需要知道有這些設(shè)置,明白其大概功能,同時(shí)知道其中幾個(gè)關(guān)鍵參數(shù)的取值范圍即可,如輪胎摩擦力強(qiáng)度和懸掛行程范圍。我們可以使用這兩個(gè)參數(shù)來(lái)分別控制輪胎摩擦聲和懸掛抖動(dòng)聲。也可以嘗試讀取其中一些更加復(fù)雜的參數(shù)來(lái)制作更加細(xì)致的聲音變化。

    截止這里,UE和Unity中提供的可視化的編輯項(xiàng)目已經(jīng)介紹完了。我們發(fā)現(xiàn)雖然他們都使用PhysX,但是他們提供的可編輯選項(xiàng)并不完全相同。那么PhysX中是否還有UE和Unity都沒(méi)有暴露的可使用參數(shù)呢?

    三、PhysX可調(diào)用參數(shù)匯總

    關(guān)于這個(gè)問(wèn)題,英文不錯(cuò)的同學(xué)建議直接翻閱PhysX的用戶手冊(cè):https://docs.nvidia.com/gameworks/content/gameworkslibrary/physx/guide/Manual/Vehicles.html#introduction?或者直接瀏覽PhysX的源碼。對(duì)于英文不太好的同學(xué),我們可以通過(guò)以下表格簡(jiǎn)單快速的了解PhysX中所有的可編輯參數(shù)。







    自此我們大概明白了PhysX載具模塊各項(xiàng)參數(shù)的意義,以及調(diào)整這些參數(shù)會(huì)對(duì)游戲內(nèi)的載具,以及載具發(fā)出的聲音造成什么影響。那么還需要解決一個(gè)問(wèn)題:我們應(yīng)當(dāng)如何使用物理引擎輸出的這些參數(shù)呢?

    四、physX輸出的參數(shù)及其使用方法

    此處對(duì)于參數(shù)的使用以UE+Wwise+rev2為例。

    發(fā)動(dòng)機(jī)相關(guān)參數(shù)的讀取與使用

    UE可以通過(guò)藍(lán)圖節(jié)點(diǎn)直接讀取的參數(shù)有以下幾個(gè):

    我們先看其中和發(fā)動(dòng)機(jī)相關(guān)的參數(shù)。

    • 發(fā)動(dòng)機(jī)的當(dāng)前轉(zhuǎn)速。單位:轉(zhuǎn)/秒

    • 發(fā)動(dòng)機(jī)最大轉(zhuǎn)速。單位:轉(zhuǎn)/秒

    • 當(dāng)前車速。單位km/h

    • 是否使用自動(dòng)擋

    • 當(dāng)前擋位

    • 目標(biāo)檔位

    REV需求的參數(shù)為以下六個(gè):

    • Throttle:油門,可以模擬不同油門大小下發(fā)動(dòng)機(jī)的聲音變化。

    • Gain:發(fā)動(dòng)機(jī)音量,可以控制總體發(fā)動(dòng)機(jī)音量的大小。

    • RPM:發(fā)動(dòng)機(jī)的轉(zhuǎn)速,用來(lái)控制聲音隨著發(fā)動(dòng)機(jī)轉(zhuǎn)速而改變。

    • Gear:檔位,配合車輛的換檔操作。

    • Velocity:車輛的速度,用來(lái)控制聲音隨著車輛速度發(fā)聲改變。

    • Enable Shifting:離合器狀態(tài),手動(dòng)擋的情況下用來(lái)模擬空檔狀態(tài),自動(dòng)擋狀態(tài)下決定發(fā)動(dòng)機(jī)轉(zhuǎn)速超過(guò)上下齒比后是否觸發(fā)換檔聲音。

    我們可以看到部分參數(shù)是重合的。發(fā)動(dòng)機(jī)轉(zhuǎn)速,車速,檔位。其中發(fā)動(dòng)機(jī)轉(zhuǎn)速,車速這兩個(gè)可以直接進(jìn)行線性關(guān)聯(lián)。也就是說(shuō)RTPC的圖像直接拉成直線就可以。音頻引擎內(nèi)可以進(jìn)行的調(diào)整并不多,主要看這兩個(gè)參數(shù)的讀數(shù)變化過(guò)程是否擬真,這直接決定了聲音的變化是否合理。那么這怎么變才是合理且擬真的呢?這個(gè)問(wèn)題我們?cè)谥白兯傧湓O(shè)置段落已經(jīng)介紹了,如果還有朋友不是很明白這幾個(gè)參數(shù)之間的關(guān)系。此處給諸位提供兩個(gè)方法或許可以有助于理解幫大家理解:

    • 考個(gè)駕照,考完就可以理解檔位、車速、發(fā)動(dòng)機(jī)轉(zhuǎn)速之間到底是啥關(guān)系了。

    • 沒(méi)駕照的話,找個(gè)硬核賽車模擬游戲,玩熟練手動(dòng)擋,然后一邊跑,一邊盯著游戲里的儀表盤看,就可以明白發(fā)動(dòng)機(jī)轉(zhuǎn)速,車速和檔位之間的關(guān)系。

    然后REV會(huì)需求油門參數(shù),這個(gè)參數(shù)略微麻煩,如果游戲可以提供不同的油門大小讓玩家操作,比如玩家使用手柄搖桿控制油門大小。那么油門也可以線性關(guān)聯(lián)。如果游戲不提供可控油門大小。默認(rèn)玩家按下前進(jìn)就是滿油門,松開(kāi)前進(jìn)就是空油門的話。則需要給油門添加額外的控制,以使車輛有更好的音效表現(xiàn)。因?yàn)闆](méi)人會(huì)在開(kāi)車的時(shí)候,始終把油門踩到底,完全沒(méi)有中間態(tài)。所以該參數(shù)需要和游戲中實(shí)際控制車輛油門的按鍵模塊相結(jié)合。

    再然后是檔位參數(shù),UE內(nèi)可以直接讀取兩種檔位參數(shù),一種是當(dāng)前檔位,一種是目標(biāo)檔位。這兩者的區(qū)別是,在換擋的過(guò)程中是否會(huì)讀取到空擋的值。當(dāng)前檔位會(huì)記錄換擋過(guò)程中從當(dāng)前檔位到空擋再到目標(biāo)檔位的完整過(guò)程,而目標(biāo)檔位則是直接反饋換擋完成后的檔位。具體使用哪一種需要根據(jù)項(xiàng)目的需求來(lái)制定,駕駛模擬的話肯定需要讀取當(dāng)前檔位。自動(dòng)駕駛的話,則需要考慮游戲的程序是如何控制自動(dòng)擋車輛的離合的。如果有完整的離合開(kāi)閉模擬機(jī)制,則可以讀取當(dāng)前檔位,否則請(qǐng)考慮目標(biāo)檔位。因?yàn)槿绻x合全程閉合,且讀取當(dāng)前檔位的話,會(huì)導(dǎo)致在每次換檔的時(shí)候都會(huì)同時(shí)觸發(fā)降檔和升檔的聲音。而讀取目標(biāo)檔位則不會(huì)有這個(gè)問(wèn)題。

    Rev的Enable Shifting參數(shù)對(duì)應(yīng)離合器。當(dāng)該參數(shù)讀數(shù)為1時(shí),車輛換擋會(huì)自動(dòng)觸發(fā)換擋聲音。如果該參數(shù)讀數(shù)為0則不會(huì)。如果是硬核駕駛模擬,那肯定有單獨(dú)的離合器設(shè)置,玩家可以控制物理模擬中的離合器強(qiáng)度,直接關(guān)聯(lián)該設(shè)置即可。如果是簡(jiǎn)化的自動(dòng)擋車輛,因?yàn)闆](méi)有單獨(dú)的離合器,建議和Throttle參數(shù)綁定,踩油門就閉離合,剎車或者不踩油門則斷開(kāi)離合。效果相對(duì)會(huì)好一些。

    其他物理參數(shù)的讀取與使用

    除了以上可以通過(guò)藍(lán)圖直接獲取的參數(shù)以外,我們知道physX其實(shí)還有一些參數(shù)可以幫助我們豐富車輛的表現(xiàn),我們可以嘗試輸出以下接口的參數(shù)來(lái)幫助我們制作更加豐富的車輛聲音:

    • 車輛輪胎摩擦聲:我們可以輸出車輛輪胎相關(guān)的參數(shù),用以得到當(dāng)輪胎和地面的摩擦情況,用來(lái)控制輪胎和地面摩擦的音效,漂移音效也可以使用該參數(shù)控制。

    • 車輛懸掛聲音:可以輸出車輛懸掛拉伸和壓縮狀態(tài)的值,供音頻引擎觸發(fā)和控制車輛懸掛以及車身抖動(dòng)的聲音。可以實(shí)時(shí)響應(yīng)游戲中車輛的抖動(dòng)狀態(tài),模擬較為擬真的車輛抖動(dòng)聲音。

    • 車輛剎車聲音:可以輸出車輛剎車狀態(tài)的判定,以及剎車狀態(tài)下的當(dāng)前車速和輪胎摩擦力大小,用來(lái)控制剎車聲的觸發(fā)及調(diào)制。

    • 車輛傾斜狀態(tài):可以輸出防傾桿的狀態(tài)參數(shù)來(lái)反饋車輛的傾斜狀態(tài),并使聲音匹配車輛傾斜狀態(tài)的效果。

    • 車輛擋位發(fā)生變化的接口:雖然REV會(huì)根據(jù)自身讀取到的目標(biāo)檔位和離合參數(shù)自動(dòng)控制換檔聲音的觸發(fā),不需要使用該接口。但是該接口依然有其用途,可以結(jié)合RPM參數(shù)后用來(lái)觸發(fā)泄壓閥等和檔位相關(guān)的其他聲音。

    結(jié)語(yǔ)

    因?yàn)楣P者的代碼水準(zhǔn)比較差,之前的驗(yàn)證DEMO的相關(guān)功能都是使用藍(lán)圖節(jié)點(diǎn)來(lái)制作的,且驗(yàn)證工程中的音頻素材也并未仔細(xì)打磨,僅僅為了驗(yàn)證功能,隨便找到一個(gè)聲音就丟進(jìn)去了。如果我們可以靈活運(yùn)用physX的所有接口和參數(shù),相信一定可以制作出更高水準(zhǔn)的車輛音效。

    另外,如果有項(xiàng)目不使用physX作為其物理引擎,也不必?fù)?dān)心,我們之前討論的相關(guān)理念和參數(shù)設(shè)置也依然具有借鑒意義。可以嘗試從其他的物理引擎獲取類似參數(shù)來(lái)完成聲音的制作。

    徐巍

    資深音效設(shè)計(jì)師

    網(wǎng)易互娛

    立志成為全品類音頻制作人,曾參與制作過(guò)電影、電視、動(dòng)畫、球幕影院、沉浸式互動(dòng)場(chǎng)館等音頻設(shè)計(jì)與制作,現(xiàn)在開(kāi)始搞游戲了。



PhysX+REV解決載具音效擬真問(wèn)題的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
西充县| 乐陵市| 道真| 台中县| 台江县| 鄂伦春自治旗| 忻州市| 洛宁县| 伊川县| 樟树市| 抚松县| 梁山县| 伊吾县| 汪清县| 余干县| 那坡县| 南宫市| 牟定县| 福鼎市| 崇仁县| 铁岭市| 商河县| 卢氏县| 苏州市| 阜南县| 宜丰县| 高邮市| 巨鹿县| 刚察县| 茌平县| 新宁县| 文昌市| 竹北市| 福海县| 白山市| 大理市| 黄石市| 千阳县| 新野县| 沙坪坝区| 卓尼县|