熱門
如何在Unity的通用渲染管道中添加VR設(shè)備支持
在Unity通用渲染管道(URP)上開發(fā)游戲的優(yōu)勢非常大,,只需對(duì)渲染設(shè)置做最小的改動(dòng),,U就可以在各種平臺(tái)上得到支持。這使得您的項(xiàng)目可以在各種平臺(tái)上運(yùn)行,,從移動(dòng)設(shè)備到各大游戲主機(jī),、PC,甚至各種VR設(shè)備,。
對(duì)于那些以前沒有為VR開發(fā)過游戲的人來說,,開發(fā)VR版游戲可能會(huì)讓他們無從下手。無論是剛剛開始您的項(xiàng)目,,還是已經(jīng)在其他平臺(tái)上發(fā)布了一個(gè)現(xiàn)有的URP項(xiàng)目,,我們將在本篇文章中詳細(xì)介紹在URP中添加VR支持的步驟,以便幫助您在多個(gè)VR平臺(tái)上運(yùn)行Unity通用渲染管道,。
添加正確的包
每個(gè)VR Unity項(xiàng)目都需要XR插件管理包,。這個(gè)包可以讓您輕松地為您想要構(gòu)建的虛擬現(xiàn)實(shí)平臺(tái)配置項(xiàng)目,從Meta Quest,、Magic Leap到PlayStationVR2 (PS VR2),。
另一個(gè)有用的包是XR互動(dòng)(XRI)工具包。這個(gè)包中的一些預(yù)置選項(xiàng)將減少您的設(shè)置時(shí)間,,這些預(yù)置實(shí)現(xiàn)了大多數(shù)VR游戲中常見的移動(dòng)選項(xiàng),,比如瞬間移動(dòng),急速轉(zhuǎn)身等等,。
要將這些包添加到您的項(xiàng)目中,,請(qǐng)打開窗口菜單并單擊包管理器。在軟件包管理器窗口中,,點(diǎn)擊“軟件包:在項(xiàng)目中”下拉菜單以展開選項(xiàng),,然后點(diǎn)擊“Unity注冊(cè)表”選項(xiàng)以使軟件包管理器列出所有可用的軟件包。
Unity支持很多包,,所以可直接在包管理器窗口的搜索欄中輸入“xr”來過濾列表,,以便只顯示特定于XR的包,。接下來,單擊XR插件管理包,,然后選擇Install按鈕將它添加到您的項(xiàng)目中,。您可以按照同樣的過程添加XRI工具包。
在軟件包管理器窗口中,,單擊安裝按鈕安裝XR插件管理軟件包,。
接下來,讓我們添加由XRI團(tuán)隊(duì)提供的示例資產(chǎn)來幫助您開始,。單擊包管理器中的XR Interaction Toolkit包,,然后單擊包詳細(xì)信息面板中的Samples選項(xiàng)卡。然后,,單擊“Starter Assets”旁邊的“Import”按鈕來添加資源,,這將簡化VR行為和輸入動(dòng)作的設(shè)置步驟。
在Package Manager窗口中,,單擊XR Interaction Toolkit包的Samples選項(xiàng)卡,,然后單擊Starter資產(chǎn)下的Import按鈕,將這些資產(chǎn)添加到您的項(xiàng)目中,。
安裝了這些包之后,,您已經(jīng)完成了一半以上的VR開發(fā)工作。
為項(xiàng)目中的特定平臺(tái)啟用VR支持
接下來,,您需要指定要瞄準(zhǔn)哪些VR平臺(tái),。為此,,打開您的項(xiàng)目設(shè)置并單擊XR Plug-in Management選項(xiàng)卡(它包含在您安裝軟件包時(shí))來查看您可以為您的項(xiàng)目選擇的可用插件提供程序的列表,。插件提供商是VR平臺(tái)的另一個(gè)名稱。選擇一個(gè)選項(xiàng),,如Oculus或Open XR,,Unity將安裝特定于該平臺(tái)的軟件包。
在“XR插件管理”窗口中,,在“插件提供者”窗格中選擇您想要定位的平臺(tái),。
一些XR平臺(tái)在構(gòu)建設(shè)置中使用Windows、Mac和Linux構(gòu)建目標(biāo),,但其他平臺(tái)在不同的目標(biāo)上運(yùn)行,。例如,PS VR2的構(gòu)建需要將構(gòu)建目標(biāo)切換到PlayStation5 (PS5),,而其他的則需要切換到Android或iOS,。確保在開發(fā)過程中切換到正確的構(gòu)建目標(biāo),這樣您就可以盡早發(fā)現(xiàn)任何重要的錯(cuò)誤和警告,。請(qǐng)記住,,要為PS5開發(fā)游戲,,您必須注冊(cè)成為PlayStation開發(fā)者。
每個(gè)XR插件都提供驗(yàn)證檢查,,以確保您的項(xiàng)目被正確地配置為針對(duì)XR進(jìn)行構(gòu)建,。請(qǐng)轉(zhuǎn)到項(xiàng)目設(shè)置窗口,然后單擊XR插件管理選項(xiàng)卡下的項(xiàng)目驗(yàn)證選項(xiàng)卡,,查看是否有任何警告或錯(cuò)誤需要處理,。大多數(shù)檢查都可以通過“修復(fù)”按鈕來為您解決問題。
在“項(xiàng)目驗(yàn)證”窗口中,,單擊要修復(fù)的問題旁邊的“修復(fù)”按鈕,,或者單擊“全部修復(fù)”按鈕來解決找到的所有問題。
選擇了正確的插件提供程序后,,您現(xiàn)在就可以開始構(gòu)建您選擇的VR平臺(tái)了,。但是,您仍然需要將VR控件映射到您現(xiàn)有的玩家角色,。這就是XRI工具包提供的啟動(dòng)資產(chǎn)發(fā)揮作用的地方,。
添加VR播放器控制器
在項(xiàng)目窗口中,進(jìn)入Samples/XR Interaction Toolkit/2 . 3 . 2/Starter Assets/Prefabs文件夾,,然后將完整的XR Origin設(shè)置預(yù)置拖到場景中,。這個(gè)預(yù)置預(yù)裝了您需要為您的玩家控制器配置VR輸入的所有組件。
預(yù)設(shè)有一個(gè)嵌套的XR原點(diǎn)預(yù)設(shè),,可以處理大多數(shù)VR控制器設(shè)置,。它有兩個(gè)代表玩家左手和右手的游戲?qū)ο螅约耙粋€(gè)嵌套在相機(jī)偏移游戲?qū)ο笾械闹飨鄼C(jī),,該相機(jī)偏移游戲?qū)ο蟾鶕?jù)玩家是坐著還是站著來移動(dòng)相機(jī),。由于完整的XR原點(diǎn)設(shè)置預(yù)置包括它自己的主相機(jī),如果您已經(jīng)有一個(gè)主相機(jī)對(duì)象在您的場景中,,那么確保禁用它,,這樣您就不會(huì)有多個(gè)相機(jī)試圖同時(shí)渲染您的玩家的主視圖。
將完整的XR原點(diǎn)設(shè)置預(yù)設(shè)拖到場景中,。預(yù)設(shè)具有嵌套的子對(duì)象,,將玩家的手和頭映射到特定的游戲?qū)ο蟆?/p>
XRI工具包還附帶了一個(gè)輸入映射,將動(dòng)作映射到常見的VR控制,。這些控件在大多數(shù)VR平臺(tái)上都是標(biāo)準(zhǔn)的,,所以不需要額外的編碼來確保您的輸入在各種平臺(tái)上被識(shí)別,包括Meta Quest,,Magic Leap和PS VR2,。確保您從您原來的玩家控制器復(fù)制并粘貼任何對(duì)游戲狀態(tài)跟蹤重要的腳本到新添加的完整的XR原點(diǎn)設(shè)置預(yù)置。請(qǐng)隨意將預(yù)設(shè)重命名為更容易記住的名稱,如VR FPS控制器,。
XR Origin預(yù)置使用XRI默認(rèn)輸入動(dòng)作映射來映射大多數(shù)VR平臺(tái)上的常見交互,。
XR Origin GameObject包含了很多組件,這些組件一開始可能會(huì)讓人很困惑,。將XR Origin預(yù)設(shè)的XR Origin組件視為所有其他XRI組件的驅(qū)動(dòng)程序,。沒有它,XR運(yùn)動(dòng)就不起作用,。其余的組件允許特定XR運(yùn)動(dòng)成為可能的提供者,。這些提供者對(duì)應(yīng)于一種不同類型的虛擬現(xiàn)實(shí)運(yùn)動(dòng),如瞬間移動(dòng),、急轉(zhuǎn)彎或用雙手抓住表面并拖動(dòng)自己,,等等。
您可以根據(jù)您的喜好調(diào)整XR Origin預(yù)置的移動(dòng)值,,但是對(duì)于剛?cè)腴T的人來說,,使用默認(rèn)值即可。
考慮目標(biāo)平臺(tái)的規(guī)格
當(dāng)然,,并非所有的虛擬現(xiàn)實(shí)平臺(tái)都是一樣的,,記住目標(biāo)平臺(tái)的硬件規(guī)格非常重要,尤其是當(dāng)虛擬現(xiàn)實(shí)游戲需要達(dá)到一致的每秒60,、90或120幀以最大限度地減少暈動(dòng)病時(shí),。這可以通過降低您的最大眼睛分辨率,調(diào)整您的主相機(jī)的反鋸齒選項(xiàng),,減少動(dòng)態(tài)燈光的數(shù)量以支持烘焙燈光,,減少游戲?qū)ο笾惺褂玫腶lpha透明度的數(shù)量,調(diào)整游戲?qū)ο蟮腖OD值,,以便它們只在玩家靠近它們時(shí)渲染更高幾何圖形的版本,。
好消息是,根據(jù)您為每個(gè)平臺(tái)指定的質(zhì)量級(jí)別,,在不同的質(zhì)量設(shè)置之間切換非常容易,。在“項(xiàng)目設(shè)置”窗口的“質(zhì)量”選項(xiàng)卡中,,您可以創(chuàng)建和自定義質(zhì)量級(jí)別,,以設(shè)置唯一的渲染器、抗鋸齒,、LOD和照明設(shè)置,,從而幫助您充分利用每個(gè)平臺(tái)。
測試VR設(shè)置
既然您的項(xiàng)目已經(jīng)針對(duì)您選擇的VR平臺(tái)進(jìn)行了配置,,那么是時(shí)候測試項(xiàng)目中新添加的XR裝備了,。這里有兩種推薦的VR測試方法:使用XRI工具包中的XR設(shè)備模擬器來測試編輯器中的設(shè)置,或者構(gòu)建播放器并在設(shè)備上運(yùn)行。
Unity中有一個(gè)方便的工具,,叫做XR設(shè)備模擬器,,它允許您在游戲模式下在編輯器的游戲視圖中模擬XR控件。您可以通過測試移動(dòng)設(shè)置來節(jié)省時(shí)間,,而無需構(gòu)建項(xiàng)目,。要將XR設(shè)備模擬器添加到您的項(xiàng)目中,請(qǐng)打開包管理器窗口,,返回到XRI工具包,,單擊Samples選項(xiàng)卡,然后在Sample Assets下,,單擊XR設(shè)備模擬器旁邊的Import按鈕,。
在包管理器中,單擊XR Interaction Toolkit包,,單擊Samples選項(xiàng)卡,,然后單擊XR Device Simulator旁邊的Import按鈕,將其添加到您的項(xiàng)目中,。
安裝完成后,,打開項(xiàng)目設(shè)置窗口,點(diǎn)擊XRI工具包標(biāo)簽,。在此選項(xiàng)卡中,,啟用“在場景中使用XR設(shè)備模擬器”復(fù)選框,以便在進(jìn)入播放模式時(shí)在運(yùn)行時(shí)添加XR設(shè)備模擬器,。您也可以將XR設(shè)備模擬器預(yù)置從項(xiàng)目窗口直接拖放到您的場景中,。
在項(xiàng)目設(shè)置的XR Interaction Toolkit選項(xiàng)卡中,啟用“在場景中使用XR設(shè)備模擬器”復(fù)選框,,以便在進(jìn)入播放模式時(shí)添加所選XR設(shè)備模擬器預(yù)設(shè)的實(shí)例,。
現(xiàn)在,當(dāng)您在編輯器中進(jìn)入播放模式時(shí),,您將能夠使用WASD和鼠標(biāo)控制來移動(dòng)您的XR裝備,,并按Tab鍵在移動(dòng)所有控制之間切換,只移動(dòng)您的左手,,或只移動(dòng)您的右手,。這與實(shí)際的虛擬現(xiàn)實(shí)輸入不是1:1的匹配,但它將幫助您測試您的運(yùn)動(dòng)設(shè)置是否立即如預(yù)期那樣工作,。
請(qǐng)注意,,在您構(gòu)建您的項(xiàng)目之前,您需要禁用XRI工具包項(xiàng)目設(shè)置窗口中的“在場景中使用XR設(shè)備模擬器”復(fù)選框,,或者從您的場景中禁用/刪除XR設(shè)備模擬器,。否則,您的虛擬現(xiàn)實(shí)控制將無法在設(shè)備上正常工作。XR設(shè)備模擬器模擬來自鼠標(biāo)和鍵盤或游戲控制器的VR輸入,,并忽略來自實(shí)際VR控制器的輸入,。
運(yùn)行中的XR設(shè)備模擬器示例
測試XR Rig的第二種方法是簡單地在目標(biāo)平臺(tái)上構(gòu)建并運(yùn)行它。每個(gè)XR設(shè)備運(yùn)行Unity builds的設(shè)置都是獨(dú)一無二的,。連接設(shè)備后,,在構(gòu)建設(shè)置窗口中選擇構(gòu)建并運(yùn)行,為目標(biāo)平臺(tái)創(chuàng)建構(gòu)建并將其加載到設(shè)備上,。
構(gòu)建在設(shè)備上運(yùn)行后,,您可以自己測試輸入,看看哪些有效,,哪些無效,。唯一的限制是等待構(gòu)建完成,并需要一個(gè)設(shè)備用于測試,。
僅僅通過這些步驟,,以及對(duì)有凹渲染設(shè)置的一些細(xì)微調(diào)整,我就能夠在PS VR2上運(yùn)行在GDC 2023上展示的全新URP模板“日本花園場景”,。
電話:010-50951355 傳真:010-50951352 郵箱:[email protected] ,;點(diǎn)擊查看區(qū)域負(fù)責(zé)人電話
手機(jī):13811546370 / 13720091697 / 13720096040 / 13811548270 /
13811981522 / 18600440988 /13810279720 /13581546145