方 科
(成都師范學院 四川 成都 610000)
隨著元宇宙時代的到來,在5G的寬帶提速和延遲降低的優勢下,VR的沉浸式體驗以及交互式體驗得到了更加深入的擴展,在越來越多國家政策的支持下,VR產業不僅僅局限于傳統游戲領域,更涉及到娛樂、工業、建筑、培訓和教育等各種行業,獲得了井噴式的發展[1]。VR產業大致可以包含硬件、平臺及內容制作三大方面。參考智能手機的發展歷程,短期內VR產品硬件研發確實會提升銷量,但長期來看內容生態繁榮才是制勝關鍵。國內各 VR廠商逐漸認識到內容生態建設重要性,開始重點發力各自應用商店內的應用生態內容建設,提升內容數量以及內容質量[1]。
VR是一種獨特的媒介。它可以以一種不同于任何其他互動體驗的方式讓用戶沉浸其中,它也是一個快速發展的領域,具有巨大的潛力。VR強調的是感官的欺騙,它通過對我們感官的占有和欺騙,讓我們的大腦相信我們到了另外一個地方,VR憑借這種場景還原的能力,在所有與現場相關的場合,都可以發揮它的作用,在5G、云渲染、云技術等所有與信息技術相關的技術支持下,虛擬現實技術的世界可以更加具體,更像我們所認知的世界,可以讓虛擬世界的我們變得更加的完整和有人性,更加像真實世界的我們[2]。
當前,VR內容種類相對單一,以游戲為主。市場研究公司Omdia最新報告顯示,2022年,全球VR內容市場收入預計達到31億美元,VR游戲營收占比大約為89%。Omdia表示,短期內游戲仍然是消費者使用VR的主要應用場景,隨著元宇宙不斷發展,視頻和交互式內容將逐漸興起[3]。
從2016年開始,提及虛擬現實的國家政策文件不斷出臺,帶動了虛擬現實在游戲、娛樂、工業、建筑、培訓和教育等行業的快速增長,對內容制作的需求也隨之高漲。根據Hired的2021年軟件工程師狀況報告,VR/AR工程師也是收入最高的開發人員之一。
在內容制作開發中,很多編輯器中都只能看到關于XR的各種描述。
實際上XR是一個術語,旨在涵蓋將現實世界與數字世界融合的所有技術,它包括VR(虛擬現實)、AR(增強現實)和MR(混合現實)。XR中的X分別代表VR、AR、MR中的V、A和M,還可以代表尚未發明的首字母縮略詞。
VR創造了一個完全替代現實世界環境的數字環境,讓用戶沉浸在數字世界中,VR需要頭戴式顯示器(HMD),它允許用戶通過兩個鏡頭直接看屏幕。
AR將數字創建的內容疊加到用戶的真實世界環境中。與VR不同,AR的用戶仍然可以看到他們周圍的真實世界。
MR是三者中最廣泛的術語,因為它可以包括AR和VR的元素。一端是真實的物理環境,另一端是完全虛擬的環境,VR更接近虛擬端,AR更接近現實端,而MR將包括之間的大部分。有些應用明顯是VR,有些明顯是AR,如果它不完全符合這兩個定義之一,通常就稱之為MR。
比如下文將提到的XR Interaction Toolkit(XR交互工具包)就是包括了VR、AR、MR的基本插件包。
Unity是一個3D、2D、VR和AR實時開發引擎平臺和編輯器,可以協作創建沉浸式和交互式體驗的內容。它可以提供工具來創建和運營精彩的游戲和其他實時交互體驗,并將它們發布到各種設備。它支持一次構建內容,然后在所有主要的AR、VR、移動、桌面和控制臺平臺上進行部署。
它也是一款國際領先的跨平臺的專業游戲引擎,Unity平臺提供了一套完善的游戲軟件設計到開發的完整解決方案,可用于設計、創作、運營任何一款2D或3D游戲,而且還跨平臺支持各種平臺,包括iOS、Android、Windows、Mac等各類硬件平臺,充分體現了Unity強大功能,在使用過程中,它的跨平臺游戲開發的特性為開發者解決了大量移植過程中的不必要的麻煩,并且相較于其他游戲的開發平臺,Unity3D的基于腳本的監聽機制使得開發者僅僅需要編寫相應的游戲腳本即可,由游戲腳本響應Unity系統平臺上的各個模塊的組件,以此實現相應的功能。作為一款商業游戲引擎,Unity可支持更高級別的引擎功能,在游戲制作后期可以移植和打包,大大方便了開發者進行使用[4]。
Unity不僅僅是一個領先的實時開發平臺,它還是一個強大的解決方案生態系統,我們可以使用其自帶的版本控制系統Plastic SCM控制版本迭代,還可以通過Backtrace處理跨平臺崩潰和異常管理自動響應錯誤等。
Unity編輯器還可以從世界構建、動畫和過場動畫到渲染等與Maya或Blender等工具無縫協作,可以在同一環境中快速迭代。并通過可自定義的編輯器支持快速原型制作和可擴展的資源,將高性能C#代碼部署到20多個平臺。
在Unity發布的游戲行業報告中,2021年每月使用Unity構建的應用程序的下載量達到了50億,前1000款手機游戲中使用Unity制作的占72%,有50%以上的移動設備、PC和電視游戲是使用Unity制作的,每月使用Unity解決方案創建或者運營的活躍用戶達到了39億,有20多個平臺在運行Unity的制作,190多個國家和地區有Unity的制作者。
2022年8月9日,Unity宣布已與合作伙伴達成協議并成立了合資企業——Unity中國,Unity中國投資后的估值為10億美元,抖音集團、佳都科技、中國移動和阿里巴巴等將參與投資Unity中國。
HTC Vive在計算機端開發,因此它與計算機的交互反映在輸入設備和輸出設備上。HTC Vive是如今市場上較先進,使用較廣泛的VR設備,具有很多其他VR設備無法媲美的地方,比如高分辨率、定位追蹤、強大的SteamVR平臺等,大大方便了HTC Vive的使用[5]。
HTC Vive Pro2是HTC公司的專業VR頭顯(見圖1)。對比以前的產品,頭顯增加了一個前置的攝像頭,它不僅支持瞳距的調節,還支持鏡頭距離的調節,并搭載了一套支持拆卸與調整位置的HI-RES認證耳機,可調節的IPD,同時還支持5 K分辨率、120度視場角、120 Hz刷新率。

圖1 HTC Vive Pro2專業版套裝
專業版套裝還包含了兩個支持SteamVR追蹤2.0的手柄,以及兩個SteamVR定位器。
Unity編輯器長期支持版本(LTS)已經迭代到2021.3.8f1c1,SteamVR Plugin插件版本已經迭代到2.7.3(sdk1.14.15),在過去的內容制作中,雖然很困難且效率低下,我們還可以使用VRTK模擬器進行編輯,但在SteamVR Plugin插件更新到2.0之后,已經不支持2020之前版本的Unity編輯器,為了使用最新版的Unity編輯器功能,如UI Toolkit(開發用戶界面和編輯器擴展的功能和工具的集合)、新的Terrain Tools、新的URP、特別是圖形可視化腳本Unity Visual Scripting,我們需要重新配置開發環境。
Unity官方教程中對Oculus Quest系列頭顯的配置十分詳細,其他與SteamVR兼容的頭顯的說明很簡略并且配置中容易出現各種問題,網絡上的教程和文檔在配置中也容易出現各種錯誤,這里將詳細說明最新版本Unity編輯器與HTC Vive Pro2的連接及開發環境配置,見圖2。

圖2 開發環境配置流程圖
2.3.1 HTC Vive Pro2連接
首先需要把Vive Cosmos串流盒連接電腦與頭顯,串流盒有一個頭顯端口連接頭顯數據線,一個DP端口連接電腦顯卡,一個USB 3.0端口連接電腦USB口。接下來在對角線放置兩個定位器,定位器對應區域就是VR活動區域。手柄確保有電即可。
2.3.2 Unity下載及插件配置
進入Unity中文官網Unity.cn,下載Unity Hub。Unity Hub可以使用微信登錄,在設置中將它的語言改為中文。
選擇安裝->安裝編輯器,選擇最新LTS長期支持版本即2021.3.8f1c1點擊安裝,這個版本的Unity是穩定的,將得到兩年的全面支持,非常適合開發。
編輯器安裝完畢后,在項目->新項目中創建3D(URP)項目,下載模板并打開項目,為了在以后編程中使用代碼控制各種組件,編輯器推薦使用英文版。
打開編輯器Windows->Package Manager包管理器,在左上角下拉菜單中選擇Packages:Unity Registry編輯器內置包注冊,分別選擇OpenXR Plugin(OpenXR 插件)、XR Interaction Toolkit(XR交互工具)、XR Plugin Management(XR插件管理工具),點擊安裝。
由于新版的編輯器已經不能在Package Manager中搜索安裝官方商城中的插件,所以我們需要先登錄官方商城assetstore.unity.com,搜索SteamVR Plugin(SteamVR插件),選擇添加到我的資源。然后打開編輯器Windows->Package Manager,在左上角下拉菜單中選擇Packages:My Assets我的資源,點擊SteamVR Plugin下載安裝,通過插件我們可以與Steam平臺進行連接,插件中也自帶了部分開發預制模板。
接下來打開Windows->SteamVR Input輸入設置,在彈窗中選擇確認導入插件內置的動作,在最下方點擊Save and generate保存Action Set,在Console控制臺中會提示保存成功。
2.3.3 下載Steam并鏈接設備
在Steam官網上按照說明下載安裝Steam客戶端并登錄,在商店中搜索SteamVR下載運行。
根據提示調整頭顯及定位器位置,確保它已經被SteamVR鏈接并識別,見圖3。

圖3 SteamVR鏈接成功示意圖
對鏈接上有提示的設備進行固件升級。
戴上頭顯,現在應該能看見SteamVR Home場景,并可以在場景中活動和操作手柄。
2.3.4 Unity配置并測試
打開Unity項目,點擊Edit->Project Settings項目設置,選擇XR-Plug-in Management(XR插件管理),在Plug-in Providers中勾選OpenVR Loader(勾選后頭顯才能看見編輯器運行時的Game視圖)和OpenXR。
繼續選擇XR-Plug-in Management子欄目中的OpenXR,在右邊Windows、mac、Linux setting標簽頁的Interaction Profile交互配置文件中點擊“+”,添加HTC Vive Controller Profile 配置文件。然后把下面的OpenXR Feature Groups功能組全部勾上。
接下來我們進行測試,在Unity編輯器的Hierarchy面板Create->3D Object->Plane,新建一個地面,在Project面板Assets資源目錄下找到SteamVR->Prefabs->CameraRig.prefab攝像機操作預制件,把它拖到Hierarchy面板中。
刪除Unity編輯器Hierarchy面板中自帶的Camera攝像機。
點擊Unity編輯器上方的運行,戴上頭顯可以看到場景中的內容,說明HTC Vive Pro2 開發環境配置成功,詳見圖4。

圖4 配置成功后頭顯看到的畫面
本文概述VR內容開發的現狀、VR是如何融入XR的,以及虛擬現實產業在國家政策的支持下蓬勃發展的情況,VR內容開發將成為一個實用的技能,通過Unity+HTC Vive Pro2開發環境的正確配置,我們可以進一步進行VR內容制作,同時可以使用頭顯、手柄等測試開發內容,為VR內容開發打了堅實的基礎。