天天看點

如何使用Oculus Quest學習SteamVR開發

在與學員朋友們的交流過程中,越來越多的朋友在報名之前會詢問這樣一個問題:現在并沒有HTC VIVE,手頭上隻有一個Oculus Quest1/2,能不能報名學習課時或者是自行進行steam VR的開發?本文将介紹關于這方面的内容。.

先上結論:通過這段時間的集中測試,我們使用了不同版本的Unity與SteamVR Unity 插件的搭配,最終得出的結論是可行的。

這類問題的本質是:如何使用Oculus Link這種有線串流技術去體驗SteamVR的應用,進而通過Quest作為調試裝置進行SteamVR應用程式的開發。

Oculus Link有線串流技術是Oculus所主推的一種體驗SteamVR應用的解決方案,由于目前Oculus應用商店的内容相對較少,而更多的虛拟現實應用集中在Steam應用商店當中,使用Oculus Link去體驗SteamVR應用無疑擴充了Quest能夠體驗的内容庫。同時,我們看到最近Steam平台更新的VR頭顯活躍資料,Quest頭顯,尤其是Quest2的活躍度已經明顯高于其他傳統的PC VR裝置,如HTC Vive、Oculus Rift等等。

如何使用Oculus Quest學習SteamVR開發

Oculus Link 簡介

Oculus Link有線串流技術是使用一根USB的線纜(建議在USB3.0以及以上)連接配接Quest與PC主機,在Quest頭顯中體驗SteamVR應用的技術方案。運作在PC上的SteamVR應用程式,所需要的算力如實體碰撞、渲染都集中在PC上,渲染後的内容實時呈現在Quest頭顯中,此時Quest僅用于呈現類似視訊的畫面。

使用Quest開發SteamVR應用程式,雖然并不是一種正常的開發方式,但是在某些情況下,比如手頭裝置有限、時間有限等,那麼使用Quest進行steamVR開發技術的學習或者開發一些小型VR應用程式原型,也不失為一種成本效益較高的方案。

具體步驟及常見問題

目前Oculus官方僅針對玩家介紹了如何使用Oculus Link體驗SteamVR應用,我們将在此基礎上針對開發流程介紹具體的實作步驟以及在此過程中容易出現的問題。

如何使用Oculus Quest學習SteamVR開發

第一步,安裝Oculus軟體(Oculus Software)并保持開啟。Oculus軟體在有線串流過程中負責将PC渲染輸出的畫面通過資料線傳輸到Quest頭顯中,同時将Quest的運動傳感資訊傳遞給PC主機進行計算。該軟體下載下傳位址:https://www.oculus.com/accessories/oculus-link/,第五步将會在該軟體中為Oculus Link進行相關設定。

第二步,準備一根支援Oculus Link的資料線,連接配接Quest與PC。為了達到更流暢的體驗,建議使用支援USB 3.2協定的資料線,雖然官方商城也提供了原廠配件供使用者購買,但無論從成本還是購買管道上,對于國内的開發者來說,目前實作起來相對困難。開發者可自行購買品質相對較高的USB3.0以上的資料線來實作Oculus Link。實際上,在後續推出的Oculus軟體(Oculus Software)和Quest作業系統版本中,Oculus已經逐漸降低了對于USB線纜的要求,甚至使用随機附送的充電線也可實作Oculus Link有線串流。需要注意的是,随機附送的Type-C資料線主要用于裝置充電,資料傳輸協定是USB 2.0。當使用原裝充電線連接配接Quest與PC時,在Oculus桌面軟體中,裝置欄會檢測到連接配接,如果資料線協定低于USB3.0,将顯示黃色的警告,建議使用者使用USB 3.0及其以上的資料線進行連接配接,如下圖所示:

如何使用Oculus Quest學習SteamVR開發

第三步,更新Quest作業系統和Oculus桌面軟體為相對較新版本,建議為V28及以上。更高的版本對于資料線的要求就相對較低,因為随着版本的更新,Oculus會從軟體層面對Oculus Link的性能逐漸進行優化。需要注意的是,這裡所謂的對資料線的要求比較低,指的是對于資料傳輸協定(3.2或者2.0)的要求比較低,而并不是代表對于線材的品質要求比較低。要實作更加穩定的信号傳輸,資料線還是要保證有相對較高的品質。

第四步,確定沒有其他的PC VR裝置與PC連接配接。如有,需要先斷開這些裝置與PC的連接配接,在測試過程中發現,如果已經連接配接并正常運作過如HTC Vive的PC VR裝置,則SteamVR用戶端啟動時,将優先連接配接這類裝置,進而導緻不能夠正常的通過Oculus Link連接配接Quest。

第五步,在Oculus 桌面軟體(Oculus Software)中設定允許運作未經稽核的應用程式。鑒于Oculus的安全機制,預設情況下未經稽核的應用不能在Quest中運作,是以要将SteamVR用戶端或SteamVR應用程式的内容傳輸到Quest,需要設定Oculus軟體能夠允許未經稽核的的應用。在Oculus軟體中,選擇“設定” - "通用",在未知來源中,開啟”允許運作未經Oculus稽核的應用“選項。若不開啟此選項,當運作SteamVR應用程式時,Quest頭顯中将始終呈現等待畫面。

第六步,要打開通過Steam用戶端安裝的SteamVR。關于如何在Steam用戶端中安裝SteamVR,該過程相對簡單,此處不再贅述。SteamVR安裝完畢以後,點選“啟動”按鈕或者點選Steam用戶端右上角的VR圖示即可正常啟動SteamVR。SteamVR用戶端啟動後,能夠檢測到Quest頭顯以及兩個搖桿控制器,如下圖所示:

如何使用Oculus Quest學習SteamVR開發

此時佩戴上Quest頭顯後,會在頭顯内部會彈出兩次對話框——第一次是詢問使用者是否允許通路Quest中的檔案,此時用搖桿控制器點選“允許”即可;第二次彈出的對話框詢問是否開啟Oculus Link,同樣點選”允許“即可。此時在Quest頭顯中進入SteamVR Home應用或SteamVR待機畫面,與使用HTC Vive時開啟SteamVR用戶端體驗效果一緻,如下圖所示:

如何使用Oculus Quest學習SteamVR開發

此時,對于一般終端使用者來說,已經能夠通過Oculus Link體驗SteamVR 應用,後續介紹的步驟則與開發相關。

之是以強調需要打開通過Steam用戶端安裝的SteamVR,是因為在測試過程中發現,如果打開的是通過Vive安裝程式所安裝的SteamVR用戶端,在使用Unity開發SteamVR應用過程中,運作項目時不會出現Quest搖桿控制器。另外,如果系統同時存在從兩種管道安裝的SteamVR用戶端,則在Unity中運作應用程式時,系統會優先開啟通過Vive安裝程式安裝的SteamVR用戶端,進而大機率會出現搖桿控制器不顯示的問題。

第七步,使用Unity建立項目,導入SteamVR Unity插件進行開發。在Oculus Link環境搭建成功後,即可正常以Quest為測試裝置,使用Unity進行SteamVR應用程式的開發。另外,如果使用第二代Quest裝置即Quest 2,将系統更新到V28後,可以使用Air Link實作無線串流。需要注意的是,Air Link功能僅對Quest 2 開放,對于Quest 1,截至目前尚不提供支援。

建議開發軟體版本

考慮到Unity編輯器的LTS版本功能相對穩定,是以建議使用的版本搭配為以下兩種,即兩個Unity LTS版本分别與最新的SteamVR Unity插件搭配使用:

  • Unity 2019.4 + SteamVR 2.7.3
  • Unity 2020.3 + SteamVR 2.7.3

需要注意的是,對于Unity 2019.4,在導入SteamVR 2.7.3後,會彈出對話框,提示開發者選擇新舊兩個不同的OpenVR Plugin版本,如下圖所示:

如何使用Oculus Quest學習SteamVR開發

這是因為在Unity 2019中,尚未完全移除用于管理VR SDK的XR Settings子產品,而在Unity 2020中,已經将其完全移除,改為在XR Plug-in Management子產品中統一管理所有VR和AR廠商提供給Unity調用的第三方工具包,插件導入後也将不再彈出此對話框。若在彈出的對話框中選擇“Unity XR”按鈕,除安裝OpenVR Unity XR Plugin外,還将安裝XR Plug-in Management子產品,如下圖所示:

如何使用Oculus Quest學習SteamVR開發

在實際開發過程中,選擇任一選項,均不影響通過Oculus Link測試應用程式,隻是如果選擇"Legacy VR"後,會出現即使是使用HTC VIVE進行測試時也會偶爾出現的問題——Unity Console視窗彈出警告資訊,如下圖所示:

如何使用Oculus Quest學習SteamVR開發

該警告說明OpenVR SDK在XR Settings中沒有處于第一選項的位置,進而導緻應用程式不能運作。要處理此類問題,隻需在XR Settings中的VR SDK清單中選擇Oculus SDK,點選右下角的減号按鈕将其移除即可,如下圖所示:

如何使用Oculus Quest學習SteamVR開發

測試

插件導入并設定完畢後,使用預設的動作配置檔案建立動作及按鍵綁定,此時可以運作SteamVR Interaction System的示例場景進行初步測試。在Project視窗中,路徑SteamVR/InteractionSystem/Samples下,輕按兩下打開Interactions_Example場景檔案,點選Play按鈕運作應用程式,效果如下圖所示,此時場景中顯示的搖桿控制器為Oculus Touch,程式能夠正常運作,同時能夠實作場景中所有的互動功能,進而證明可以使用Quest通過Oculus Link有限串流進行SteamVR應用程式的開發。

如何使用Oculus Quest學習SteamVR開發

另外需要主要的是,HTC Vive的搖桿控制器按鍵與Quest搖桿控制器(Oculus Touch)按鍵有所差別,HTC Vive中的Touchpad鍵對應Oculus Touch中的搖杆,同時HTC Vive沒有A、B按鍵,是以在查找SteamVR相關開發資料或教程時,讀者需要考慮到此類差別。

本文視訊内容收錄于《SteamVR 2.x互動開發指南》,騰訊課堂搜尋"steamvr"或點選這裡了解詳情。

如何使用Oculus Quest學習SteamVR開發