Oculus Go に続いて上位機種 Oculus Quest が登場しました。両手のモーションコントローラ含めてポジショントラッキングに対応しており、スタンドアロンながら 6.6DoF のフルスペック VR になっています。
Oculus Quest にも Oculus TV が入っており、以前作成した TVLauncherGo がそのまま使えるようです。Oculus Go と同じように Oculus TV 上で Android アプリが動きました。
・設定アイコンから Bluetooth Keyboard の接続
・同じく設定から物理キーボードのキーレイアウト変更
・UserLAnd を使って Linux をインストール
・VNC アプリの起動 (制限あり)
などなど一通りうまくいっています。UserLAnd が動けば、開発環境や日本語入力環境の構築ができます。
つまり Oculus Quest と Bluetooth Keyboard を持ち歩けばどこでも大画面で作業に没頭できるようになるわけです。
ちなみに開発環境には Termux も併用しています。Termux 自体は TVLauncherGo がなくても動きます。(併用する理由はこちら)
● Oculus Quest の速度
Oculus Go よりも性能が上がってだいぶ快適になりました。下記の表は Termux 上でのコンパイル速度の比較です。Quest は Go よりも 2.6 倍速くなっています。
VR あり | VR利用 | SoC | RAM | Thread | Time |
---|---|---|---|---|---|
Daydream + Pixel 3 | あり | Snapdragon 845 | 4GB | 8 | 72 |
Oculus Quest | あり | Snapdragon 835 | 4GB | 8 | 105 |
Oculus Go | あり | Snapdragon 821 | 3GB | 4 | 275 |
Daydream + ZenFone AR | あり | Snapdragon 821 | 8GB | 4 | 349 |
VR なし | VR利用 | SoC | RAM | Thread | Time |
Pixel 3 | 無し | Snapdragon 845 | 4GB | 8 | 32 |
Essential Phone | 無し | Snapdragon 835 | 4GB | 8 | 38 |
ZenFone 3 Max ZC553KL | 無し | Snapdragon 430 | 3GB | 8 | 100 |
ZenFone AR ZS571KL | 無し | Snapdragon 821 | 8GB | 4 | 111 |
Nexus 5X | 無し | Snapdragon 808 | 2GB | 6 | 135 |
・Time の単位は秒。値が小さい方が高速。
当然ながら VR を使わない状態だともっと高速です。同じ SoC を搭載した機種同士で比べると、VR 空間上でのコンパイルは通常の状態より 2.5 倍前後遅くなっています。それだけ VR の描画は負荷が高いわけです。
Quest の結果は VR 無しの ZenFone AR (Snapdragon 821) や ZenFone 3 Max (Snapdragon 430) とほぼ同じくらいになっています。VR 上で素の Snapdragon 821 や Snapdragon 430 が動いていると思えば速度のイメージが掴めるのではないでしょうか。
比較用に Daydream も試しましたが、Snapdragon 845 の Pixel 3 は速いものの画面解像度が低く実用には厳しいものがありました。XL ならちょうど良いのかもしれません。Zenfone AR はビルド中、発熱のためか処理落ちが多く不安定でした。やはり専用機である Oculus Go や Quest は解像度が高く画面端の歪みもなく安定しています。
●持ち歩きやすさ
可搬性に関しては Go の方が上です。性能が上がりサイズと重量が若干増えたのもありますが、バンドがしっかりした作りになったため Go のように折り畳めなくなっています。また場所が変わると毎回ガーディアン設定が出てくるので、使うまでにひと手間かかります。
●ポジショントラッキング
ポジショントラッキングのおかげで VR 内での見え方はかなり自然になりました。スクリーンに近づいたり離れたりできるので、文字が小さくて見えにくい場合も近寄れば読むことができます。ただしガーディアン範囲を抜けると外部カメラ映像に切り替わってしまうので、大きく動く場合はルームスケールの範囲設定が必要。
●環境設定など
Go とはコントローラが違いますが使うボタンは限られています。Oculus TV で前の画面に戻るには (B) ボタンを使います。
Oculus TV で前の画面に戻る操作
・Oculus Go : メニューボタン
・Oculus Quest : 右コントローラの (B) ボタン
(1) TVLauncherGo の apk を install
(2) Oculus TV → TVLauncherGo → 設定アイコン → Bluetooth
・ Bluetooth キーボードを接続
・ 必要に応じてレイアウト選択
・ 設定の言語→キーボードレイアウト
・ (「106/109106/109ハードウェアキーボード配列変更 (+親指Ctrl) [日本語配列]」が使えます。
(3) UserLAnd の apk を install
(3) Oculus TV → TVLauncherGo → UserLAnd
・Linux install (SSH を選択)
下記の記事も参考にしてください。
・Oculus Go を文章書き&開発マシンにする
・Oculus Go で一般 Android アプリを起動できるランチャーを作ってみた
● VNC を使う場合
UserLAnd が bVNC Free 以外の client にも対応したため手順が若干変わりました。Real VNC Viewer を使う場合でも UserLAnd が直接呼び出してしまうため、一旦停止させてから Oculus TV 経由で起動する必要があります。そのかわり複数の VNC client を入れることで起動をキャンセルできます。
以下は「環境設定など」の続きです。
(1) Real VNC Viewer の apk を install
(2) Oculus TV → TVLauncherGo → UserLAnd
・ Linux Distribution 名長押しで VNC に変更
(3) Linux を起動すると画面真っ黒でロード待ちになるので、右コントローラの Oculus Button で戻る
・Real VNC Viewer は大丈夫ですが、bVNC だとここで戻れないので再起動になります。
(4) 右コントローラの (B) ボタンで TVLauncerGo に戻り強制停止する
・VNC Viewer アイコン長押しで「アプリ情報」の画面を開く (設定→アプリ→VNC Viewer でも構わない)
・VNC Viewer アプリを強制停止する (起動した状態を一旦クリアするため)
(5) TVLauncerGo に戻る
(6) あらためて VNC Viewer を起動し、下記の設定で接続する
・ HOST: 127.0.0.1
・ PORT: 5951
(7) VNC 接続時にパスワードを聞かれるので、UserLAnd の Linux アカウント作成時に設定した VNC Password を入れる
最初は画面が Native 解像度になっているので ~/.vncrc を書き換えて調節してください。1280×720 推奨。
UserLAnd の日本語環境設定についてはこちらを参考にしてください。
なお Real VNC Viewer は比較的安全に起動できますが、モーションコントローラでのマウス操作には難があります。ウィンドウなどドラッグ移動できないのと、ちょっとしたブレでタスクバーのメニューが開かないなど制限があります。少々手間がかかりますが bVNC を使う方法があります。
● VNC を使う場合 (bVNC)
UserLAnd からの呼び出しをキャンセルするために、Real VNC Viewer と bVNC の両方を install しておく必要があります。必ず Bluetooth Keyboard を接続しておいてください。
(1) Real VNC Viewer の apk を install
(2) bVNC の apk を install
(3) Oculus TV → TVLauncherGo → UserLAnd
・ Linux Distribution 名長押しで VNC に変更
(4) Linux を起動すると VNC client 選択画面になるので、Bluetooth Keyboard の [ESC] を押してキャンセル
(5) 右コントローラの (B) ボタンで TVLauncerGo に戻る
(6) TVLauncerGo から bVNC を起動
(7) 下記の設定で接続する。右上の [CONNECT] を押す
・ HOST: 127.0.0.1
・ PORT: 5951
・ Linux アカウント作成時に入力したユーザー名とパスワード
(8) つながったら bVNC の設定メニューから 「Input Mode」 → 「Direct, Hold Pan」 を選択する
これでモーションコントローラだけでウィンドウ操作もできるようになります。タスクバーのメニューも簡単に開きます。
Oculus TV を経由せずに UserLAnd が直接 bVNC を起動してしまうと操作できなくなるので注意してください。
関連ページ
・Android の上の開発環境
・HMD VR / AR Device spec 一覧
関連エントリ
・Android UserLAnd の更新と VNC 画面設定
・UserLAnd : Android 9.0 で Ctrl + SPACE を使えるようにする
・Android Termux で日本語入力を行う / UserLAnd との併用
・Android 9.0 と Bluetooth Keyboard による日本語入力
・Android/Oculus Go/Daydream の画面をミラーリングするツールを作ってみた
・Oculus Go で一般 Android アプリを起動できるランチャーを作ってみた
・Oculus Go を文章書き&開発マシンにする
・UserLAnd とブラウザ
・Android 上の開発環境と UserLAnd
・OS の中の Linux (WSL/Chrome OS/Android UserLAnd)
・ARM CPU 上の開発環境とコンパイル時間の比較 (2) Pixel 3/UserLAnd
・Oculus Go は VR ができる新しい携帯ゲーム機