超實(shí)用!手把手教你如何將 URP 項(xiàng)目快速運(yùn)行于 VR 平臺(tái)

Unity 通用渲染管線(URP)具有非常強(qiáng)大的跨平臺(tái)支持能力,使用 URP 開發(fā)的項(xiàng)目,不需要過多修改渲染設(shè)定,即可運(yùn)行在移動(dòng)設(shè)備、主機(jī)、PC、VR 等各類平臺(tái)上。
本文將手把手教你讓 URP 項(xiàng)目快速運(yùn)行于 VR 平臺(tái)。無論你的項(xiàng)目是從頭開發(fā),還是已經(jīng)發(fā)布在了其他平臺(tái),都可以參考這里的步驟。
安裝對(duì)應(yīng)的軟件包
所有 Unity VR 項(xiàng)目都需要有 XR Plug-in Management 軟件包。該包能讓項(xiàng)目輕松對(duì)不同的平臺(tái),如 Meta Quest、Magic Leap 及 PlayStation?VR2(PS VR2)等配置項(xiàng)目。
XR Plug-in Management 軟件包文檔:
https://docs.unity3d.com/Packages/com.unity.xr.management@4.4/manual/index.html
另一個(gè)實(shí)用的軟件包是 XR Interaction Toolkit。該包所提供的預(yù)制件可以快速實(shí)現(xiàn)大部分 VR 游戲里的常見移動(dòng)功能,比如傳送、快速轉(zhuǎn)向等等。
XR Interaction Toolkit 文檔:
https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@2.4/manual/index.html
要添加軟件包到項(xiàng)目中,請(qǐng)打開 Window 菜單,點(diǎn)擊 Package Manager。進(jìn)入界面后,點(diǎn)擊“Packages: In Project”來展開更多選項(xiàng),點(diǎn)擊“Unity Registry”來列出所有可用軟件包。
Unity 帶有很多軟件包。請(qǐng)?jiān)?strong>搜索欄輸入“xr”來篩選出所有專用于 XR 的軟件包。然后,選中 XR Plug-in Management 包,點(diǎn)擊 Install 按鈕將其添加到項(xiàng)目中。XRI Toolkit 包也能以同樣的方法安裝。

接著,導(dǎo)入 XRI 團(tuán)隊(duì)制作的 Sample Assets 來開始開發(fā)。點(diǎn)擊 Package Manager 里的 XR Interaction Toolkit,打開詳情界面的 Samples 欄。然后,點(diǎn)擊 Starter Assets 下的 Import 按鈕導(dǎo)入資產(chǎn),它們能精簡(jiǎn) VR 行為和輸入動(dòng)作的設(shè)立過程。

安裝完這些包后,你的VR開發(fā)就已經(jīng)完成了大半啦。
為項(xiàng)目啟用特定平臺(tái)的VR支持
接下來,需要確定登陸哪個(gè) VR 平臺(tái)。為此,請(qǐng)打開 Project Settings,點(diǎn)擊 XR Plug-in Management 欄(安裝完軟件包后就會(huì)出現(xiàn)),查看可用的插件供應(yīng)商。這里的插件供應(yīng)商即指 VR 平臺(tái)方。選擇一個(gè)選項(xiàng),比如 Oculus 或 Open XR,Unity 便會(huì)自動(dòng)安裝該平臺(tái)專用的軟件包。

部分 XR 平臺(tái)在 Build Settings 里以 Windows、Mac 和 Linux 作為構(gòu)建目標(biāo),其他平臺(tái)則有另外的構(gòu)建目標(biāo)。比如,為 PS VR2 構(gòu)建要求將構(gòu)建目標(biāo)切換成 PlayStation?5(PS5),而其他平臺(tái)則需要切換至 Android 或 iOS。
請(qǐng)?jiān)陂_發(fā)期間就切換好對(duì)應(yīng)的構(gòu)建目標(biāo),以便提早捕捉到重要的錯(cuò)誤與警告。另外,要為 PS5 開發(fā)游戲,則必須注冊(cè)成為 PlayStaiton 開發(fā)者。
每個(gè) XR 插件都帶有檢驗(yàn)功能,來檢查項(xiàng)目是否正確配置成了 XR 項(xiàng)目。要找到這些功能,請(qǐng)前往 Project Settings 窗口,點(diǎn)擊 XR Plug-in Management 欄下方的 Project Validation 欄,注意是否有彈出任何警告或錯(cuò)誤。大部分檢驗(yàn)條目都會(huì)帶有“Fix”按鈕來幫解決問題。

選中正確的插件供應(yīng)商后,現(xiàn)在就能為所選的 VR 平臺(tái)進(jìn)行構(gòu)建了。不過,還得為現(xiàn)有的游戲角色布置 VR 操控。XRI Toolkit 提供的 Starter Assets 此時(shí)就能派上用場(chǎng)了。
添加 VR 玩家控制器
在 Project Window 中打開 Samples / XR Interaction Toolkit / 2.3.2 / Starter Assets / Prefabs 文件夾,將 Complete XR Origin Set Up Prefab 拖入場(chǎng)景。該預(yù)制件預(yù)裝了所有配置 VR 控制器輸入的必要組件。
內(nèi)嵌的 XR Origin Prefab 可以處理大部分 VR 控制器的設(shè)立。它的兩個(gè)游戲?qū)ο蟊硎玖送婕业淖笥沂?,嵌?Camera Offset GameObject 下的 Main Camera 可視玩家處于站姿或坐姿以不同的方式處理攝像機(jī)的運(yùn)動(dòng)。由于 Complete XR Origin Set Up Prefab 包含有自己的 Main Camera,如果場(chǎng)景內(nèi)已經(jīng)有一個(gè) Main Camera,請(qǐng)禁用它以防多個(gè)攝像機(jī)同時(shí)渲染玩家的主視角。

XRI Toolkit 同樣還帶有 Input Map,用于將特定動(dòng)作關(guān)聯(lián)到常見的 VR 操作上。它們屬于大部分 VR 平臺(tái)的標(biāo)準(zhǔn)操作,不用編寫額外的代碼就能讓動(dòng)作輸入被大部分平臺(tái)所識(shí)別。如果有任何跟蹤游戲狀態(tài)的重要腳本,別忘了把它從原控制器復(fù)制粘貼到新的 Complete XR Origin Set Up Prefab 上。期間可以隨意將預(yù)制件名稱改成另一種好記的名字,比如 VR FPS Controller。

XR Origin GameObject 所包含的大量組件一開始可能會(huì)讓人迷惑,簡(jiǎn)單理解可以將預(yù)制件的 XR Origin 組件視作所有其他 XRI 組件的驅(qū)動(dòng)。沒有驅(qū)動(dòng),XR 移動(dòng)功能就沒法工作。剩余的組件則提供了特定種類的 XR 移動(dòng)方式,從傳送、快速轉(zhuǎn)向到雙手抓取表面向上爬等等。
要了解怎樣調(diào)整 XR Origin Prefab 的運(yùn)動(dòng)參數(shù),請(qǐng)查閱文檔。初始用法只需默認(rèn)參數(shù)即可滿足。
XR Origin Prefab 運(yùn)動(dòng)參數(shù)文檔地址:
https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@2.3/manual/locomotion.html
考慮目標(biāo)平臺(tái)的技術(shù)規(guī)格
時(shí)刻留意目標(biāo)平臺(tái)的硬件規(guī)格十分重要,VR 游戲?yàn)榱藴p輕運(yùn)動(dòng)眩暈感,需要時(shí)刻保持 60、90 或 120 幀每秒的幀率。要達(dá)成這個(gè)目標(biāo),可以通過降低最大單眼分辨率、調(diào)整 Main Camera 的抗鋸齒選項(xiàng)、降低動(dòng)態(tài)光照并優(yōu)先使用烘焙光照、減少游戲?qū)ο笊系?alpha 透明圖形,或者調(diào)整對(duì)象的 LOD,只在玩家靠近時(shí)渲染面數(shù)更高的模型。
好消息是可以根據(jù)制定好的平臺(tái)質(zhì)量等級(jí)輕松在不同質(zhì)量設(shè)定間切換。在 Project Settings 的 Quality 欄里能創(chuàng)建并定制不同的質(zhì)量等級(jí),設(shè)定獨(dú)特的渲染器、抗鋸齒、LOD 和光照設(shè)定,來最大化利用每種平臺(tái)。
詳細(xì)了解質(zhì)量設(shè)定的調(diào)整:
https://docs.unity3d.com/cn/current/Manual/class-QualitySettings.html
測(cè)試 VR 配備
在項(xiàng)目針對(duì)所選 VR 平臺(tái)配置完畢后,下面就是到項(xiàng)目中測(cè)試新添的 XR 裝備了。我們推薦兩種測(cè)試方法:用 XRI Toolkit 的 XR Device Simulator 在編輯器內(nèi)測(cè)試配備,或者構(gòu)建運(yùn)行版到設(shè)備上運(yùn)行。
XR Device Simulator文檔:
https://docs.unity3d.com/Packages/com.unity.xr.interaction.toolkit@2.3/manual/xr-device-simulator-overview.html
XR Device Simulator(XR 設(shè)備模擬器)進(jìn)入編輯器的 Play 模式時(shí),它能在 Game 視圖模擬出 XR 的操作,不用構(gòu)建項(xiàng)目即可測(cè)試自己的移動(dòng)設(shè)定,節(jié)省不少時(shí)間。
要添加 XR Device Simulator 到項(xiàng)目中,請(qǐng)打開 Package Manager 窗口,重新找到 XRI Toolkit 軟件包,點(diǎn)擊 Samples 欄,在 Sample Assets 下方找到 XR Device Simulator 的 Import 按鈕。

安裝完畢后,打開 Project Settings 窗口,再點(diǎn)擊 XRI Toolkit 欄。勾選 Use XR Device Simulator in scenes,把XR Device Simulator 添加到運(yùn)行時(shí)。

這下,進(jìn)入編輯器的 Play 模式就能用 WASD 和鼠標(biāo)來控制 XR 配備,按下 Tab 來切換操作方式,切換成僅左手或僅右手。它并沒有 1:1 還原現(xiàn)實(shí)的 VR 輸入,不過也能滿足模擬測(cè)試需求。
*記住在構(gòu)建項(xiàng)目前,需要在 XRI Toolkit Project Settings 窗口禁用“Use XR Device Simulator in scenes”選框,或刪除場(chǎng)景內(nèi)的 XR Device Simulator,否則 VR 操作不會(huì)正確地在設(shè)備上運(yùn)作。XR Device Simulator 使用鍵鼠模擬 VR 輸入,會(huì)忽視實(shí)際 VR 控制器的輸入。

第二種測(cè)試方法是直接打包并放到目標(biāo)平臺(tái)上運(yùn)行。要運(yùn)行 Unity 構(gòu)建的程序,每種 XR 設(shè)備都需要建立不同的環(huán)境,請(qǐng)?jiān)谖臋n中了解最新的開發(fā)機(jī)連接方法。連接成功后,請(qǐng)選擇 Build Settings 窗口的 Build and Run 為目標(biāo)平臺(tái)打包并部署游戲。
在游戲包運(yùn)行到設(shè)備上后,可以親自測(cè)試設(shè)備輸入,看看哪些可行,哪些不行。這里的主要障礙只有構(gòu)建耗時(shí)和測(cè)試設(shè)備的獲取。
只需簡(jiǎn)單幾步,再微調(diào)下注視點(diǎn)渲染的設(shè)定,我們就能在 PS VR2 上運(yùn)行新的 Japanese Garden URP Template 了。


希望這份快速指南能解答怎樣讓項(xiàng)目支持 VR 的疑問。如果你對(duì) VR 配置感到疑惑,可以在 Unity 的 XR 項(xiàng)目配置指南里了解更多信息。
XR 項(xiàng)目配置指南:
https://docs.unity3d.com/cn/current/Manual/configuring-project-for-xr.html