開源軟體組成的VR遊戲串流方案 ~ ALVR
有人會用Linux玩VR遊戲?不是不行啦…問題很多,這裡是我一點嘗試的紀錄。
我們將使用Google Cardboard,將Android手機變成低成本VR頭顯。再於手機安裝PhoneVR APP,透過ALVR伺服器,串流Linux電腦的SteamVR畫面到手機上。
1. ALVR簡介#
ALVR (Air Light VR) 為開源的VR遊戲串流軟體,支援Linux和Windows,它能夠把電腦Steam遊戲的畫面串流到VR頭顯。VR頭顯可以搭配Quest、Vive、Lynx R1等主流設備。
本文要使用的是最便宜的Goolge Cardboard。手機客戶端使用ALVR的fork「PhoneVR」
整個流程如下圖,要有一部電腦跑SteamVR,透過ALVR,將畫面串流到手機端的PhoneVR。
傳輸畫面很吃顯示卡效能,負責串流的電腦需要搭載獨立顯示卡才能負擔重度算繪。
2. 安裝ALVR伺服器#
於Linux系統 安裝Steam。請使用原生套件版,Flatpak版不方便跟AVLR連線。
到 Github下載ALVR的AppImage檔案,點二下執行。
按照畫面指示設定,啟用PipeWire音訊串流(請先用
pactl info
指令確認你是用PulseAudio還是PipeWire)防火牆規則可以手動加入:
sudo ufw allow 9944
sudo ufw allow 9943
sudo ufw reload
- 點選Launch SteamVR,Steam應該會自動開啟,並下載SteamVR程式
3. 串流畫面至PhoneVR#
讓Android手機與電腦位於同一個Wifi網路下
下載安裝 Cardboard和 PhoneVR的APK
開啟PhoneVR,手機打橫,螢幕上會出現一組IP
在電腦的ALVR界面點選Add client manually,輸入手機IP
手機應該就會出現SteamVR的畫面了
電腦端也可以點Display VR View,預覽VR所看的畫面
如果PhoneVR畫面凍結或者很卡,試著到Settings,降低串流畫質和Mbps
再啟用Force Software Encoding和Force software decoder,重新連線試試。
4. 將遊戲手把模擬成VR控制器#
Google Cardboard除了鐵片以外沒有任何輸入手段,遊戲控制器能補充作為輸入來源。
但,Linux目前沒有Windows的那種控制器模擬程式。
VRChat試過能在Linux啟動,可是在沒有控制器的情況下,很多VR程式都無法互動。
我只能玩 InCell這種有針對Cardboard優化的遊戲,因為只要盯著看10秒就能點選選單。
起碼還是得買個實體VR控制器。
延伸閱讀#
SteamVR for Linux的官方FAQ SteamVR-for-Linux
Windows的Driver4VR程式,能將遊戲手把模擬成VR控制器 Driver4VR on Steam
Linux可以考慮用 Trinus取代ALVR,它可以用手機模擬控制器,Linux伺服端有人移植。不過APP開發商看起來已經很久沒更新了。