在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模板“日本花園場景”。