目標:繞過 OpenVR / HTC 需要 HMD / 串流盒 才可使用的限制
1. 問題/情境
2. 環境/設備
3. 解決方法
4. 結果
5. 小記0. 前言/名詞代稱
這篇文章並不能讓你在沒有任何 VR 設備的狀況下遊玩 VR only 的遊戲
寫這篇文章的主要原因是希望給其他開發者一個解答或是解決方案
例如: 簡單的 VR Camera 設施/設備
圖片來源: Reddit r/StarWars
要達到文章的主要目的 -> 在不用 HMD 或是 串流盒 的狀況下開發
你必須要有:
至少一個 基地台
至少一個 控制器 或是 一個附有 接收器 的 Tracker
本篇並沒有講到如何連線周邊設備, Tracker 就是配對 接收器 , 控制器 用傳輸線連接,基地台 插上電就可以了。
關於 基地台 控制器 接收器 Tracker 的位置資料傳輸,在5.小記內有大概解釋。
關於 基地台 控制器 接收器 Tracker 的位置資料傳輸,在5.小記內有大概解釋。
VR頭盔 -> HMD
移動定位器 -> Tracker
1. 問題/情境
新專案開發只需要 控制器 或 Tracker,不需要使用到 HMD,但是只要 HMD 從 串流盒 拔起, 串流盒 會拒絕執行並將自己和電腦斷線,造成 VR 周邊設備無法連線。
為什要將 HMD 解除連線,難道不能把 HMD 放在旁邊別用就好了嗎?
A: 是可以,但是:
-> 即使 Unity 不輸出影像到 HMD 或是在 SteamVR 內關閉 SteamVR Home 選項, HMD 依舊會輸出影像。
-> 只要有稍微動到,或是 Unity 進到 Play 模式, HMD 就會被喚醒,並浪費電腦效能。
-> Unity 的 OpenVR 會因為偵測不到 HMD 而拒絕運作。
-> 最後輸出要求沒有 HMD 的需求,主要功能都由 控制器 或 Tracker 作用。
關閉 SteamVR Home ,沒有執行 Unity 。SteamVR 會輸出影像到 HMD 。
在關閉 SteamVR Home ,設定 Unity 不輸出到 HMD 的狀況下。SteamVR 還是會輸出影像到 HMD 。
沒有 HMD 的情況下, OpenVR 會拒絕運作。
2. 環境/設備
SteamVR 1.19.7
HTC Vive Pro 一級玩家版
-> Vive Pro 頭戴式顯示器
-> Vive Pro 串流盒 (型號: 2Q2B100)
-> Vive 基地台 1.0 x2 (型號: 2PR8100)
-> Vive 控制器 1.0 x2 (型號: 2PR7100)
-> Vive Pro 頭戴式顯示器
-> Vive Pro 串流盒 (型號: 2Q2B100)
-> Vive 基地台 1.0 x2 (型號: 2PR8100)
-> Vive 控制器 1.0 x2 (型號: 2PR7100)
VIVE 移動定位器 (3.0) / VIVE Tracker (3.0)
3. 解決方法
3-1. 開啟 *Steam資料夾*configsteamvr.vrsettings
在 "steamvr" 欄位內加入
"activateMultipleDrivers" : true //允許同時使用多個Driver "requireHmd" : false //關閉必須要有Hmd的需求 |
請注意是否需要加入 [ , ]
3-2. 開啟 *Steam資料夾*steamappscommonSteamVRdriversnullresourcessettingsdefault.vrsettings
在 "driver_null" 欄位內的 "enable" ,把值修改為 true
3-3. 重開 SteamVR 並重新配對/連接你的 VR 周邊設備
在這裡,你會看到多了一個新圖示
4. 結果
有 接收器 的 Tracker 會比要好使用,因為 Tracker 本身的位置資訊會從 接收器 的通道進出。
但是沒有 Tracker 的人也不用太擔心,只要把 控制器 用傳輸線連接上電腦就可以了。
所有的位置資訊會透過 控制器 送進電腦。
當然。是的。
基地台 的位置也會一起傳送。
當有 串流盒 的時候,基地台 是直接對 串流盒 溝通的。
如果沒有 串流盒 ,可透過 有線控制器 、 接收器 、已和 接收器 配對的 Tracker 對電腦溝通。
OpenVR 沒有偵測到 HMD 時會拒絕執行,而 Steam 提供的 null 驅動正好可以繞過這個問題。
"activateMultipleDrivers" : true 就是讓 Steam 的 null 和 HTC 的 Vive 驅動可以同時運作。
這是 null 驅動提供的 HMD
而右邊剩下的,都是 HTC Vive 驅動
我也試過只有 null 驅動的狀況下,嘗試連線 HTC 的周邊
答案是不行的
最後,希望這篇文章能夠幫大家解決一些問題,也希望能夠讓大家發掘潛在的遊戲開發機會