2019/06/08
Oculus Quest 5万円ちょうどで買えるフルスペック VR
Oculus Go が登場してからちょうど一年。新しい VR デバイス Oculus Quest が発売されました。最大の特徴はポジショントラッキングにフル対応したスタンドアロン型になっていることです。
要するに、これまで PS4 かデスクトップ PC でしか遊べなかった両手モーションコントローラやルームスケール対応ゲームが、部屋へのベースステーション設置作業とかケーブルの配線とか一切の準備不要で、完全ワイヤレスで楽しむことができるようになるわけです。
・ケーブルなし
・外部センサーやベースステーションの設置なし
・両手モーションコントローラでポジショントラッキング対応
・ルームスケール対応
例えると最初のマルチタッチ対応スマートフォンが出たようなもの。手軽に VR を楽しむために欲しかったものが一通り実現されたことになるので、後はスマートフォンのように年々プロセッサの性能を上げていけばいいだけです。
もちろんモバイルプラットフォームなので、ハイエンド PC と比べると CPU/GPU 性能には大きな隔たりがあります。特に描画性能は落ちるため、決して従来型のコンソールやデスクトップ向け VR HMD が不要になるわけではありません。またアーキテクチャも違うので、Steam などの既存のゲームがそのまま動くわけでもなく、対応ソフトの登場を待つ必要があります。
対応ソフトはまだまだ少ないですが、VR 機能が統一されたので Quest 向けゲームはだいぶ開発しやすくなります。今まではコントローラやトラッキングの仕様が違いすぎて、PC の本格的な VR ゲームをモバイルやスタンドアロン機へ移植するのが困難でした。
またケーブルやベースステーションがないことで、ルームスケール範囲の自由度はむしろ従来のデスクトップ型 VR よりも高くなります。
なお Oculus Quest と同等のデバイスとしては HTC Vive Focus Plus があります。Quest より値段は高いものの、こちらもスタンドアロンかつ両手のモーションコントローラ込みでポジショントラッキングに対応しています。Daydream も HMD のポジショントラッキングに対応した Mirage Solo が出ていますが、6DoF 対応のモーションコントローラがまだありません。ただし Daydream も 6DoF 対応コントローラの開発は行われているようです。
・Google VR: Experimental Daydream 6DoF controllers
今後はモバイル系のスタンドアロン機も 6.6DoF 対応が標準になっていくものと思われます。
Oculus の場合アーキテクチャ面でのプラットフォームは2種類ですが、ソフトウエアの対応は Rift, Quest, Go それぞれ異なっています。Oculus Quest の OS やアーキテクチャはモバイル系に属しますが、トラッキング性能やコントローラは PC 系の Rift (S) と同じです。アーキテクチャ上は Quest でも Go/GearVR ソフトが動きそうですが、今のところは対応していないようです。
ちなみに Daydream と Vive の場合は下記の通り。
より詳しいスペックはこちらに載せています。
・HMD VR / AR Device spec 一覧
関連エントリ
・Oculus Quest も文章書き&開発マシンにする
・Android/Oculus Go/Daydream の画面をミラーリングするツールを作ってみた
・Oculus Go で一般 Android アプリを起動できるランチャーを作ってみた
・Oculus Go を文章書き&開発マシンにする
・VR で物が大きく見えたり小さく見えたりするわけ
・Oculus Go は VR ができる新しい携帯ゲーム機
要するに、これまで PS4 かデスクトップ PC でしか遊べなかった両手モーションコントローラやルームスケール対応ゲームが、部屋へのベースステーション設置作業とかケーブルの配線とか一切の準備不要で、完全ワイヤレスで楽しむことができるようになるわけです。
・ケーブルなし
・外部センサーやベースステーションの設置なし
・両手モーションコントローラでポジショントラッキング対応
・ルームスケール対応
例えると最初のマルチタッチ対応スマートフォンが出たようなもの。手軽に VR を楽しむために欲しかったものが一通り実現されたことになるので、後はスマートフォンのように年々プロセッサの性能を上げていけばいいだけです。
もちろんモバイルプラットフォームなので、ハイエンド PC と比べると CPU/GPU 性能には大きな隔たりがあります。特に描画性能は落ちるため、決して従来型のコンソールやデスクトップ向け VR HMD が不要になるわけではありません。またアーキテクチャも違うので、Steam などの既存のゲームがそのまま動くわけでもなく、対応ソフトの登場を待つ必要があります。
対応ソフトはまだまだ少ないですが、VR 機能が統一されたので Quest 向けゲームはだいぶ開発しやすくなります。今まではコントローラやトラッキングの仕様が違いすぎて、PC の本格的な VR ゲームをモバイルやスタンドアロン機へ移植するのが困難でした。
またケーブルやベースステーションがないことで、ルームスケール範囲の自由度はむしろ従来のデスクトップ型 VR よりも高くなります。
なお Oculus Quest と同等のデバイスとしては HTC Vive Focus Plus があります。Quest より値段は高いものの、こちらもスタンドアロンかつ両手のモーションコントローラ込みでポジショントラッキングに対応しています。Daydream も HMD のポジショントラッキングに対応した Mirage Solo が出ていますが、6DoF 対応のモーションコントローラがまだありません。ただし Daydream も 6DoF 対応コントローラの開発は行われているようです。
・Google VR: Experimental Daydream 6DoF controllers
今後はモバイル系のスタンドアロン機も 6.6DoF 対応が標準になっていくものと思われます。
Oculus の場合アーキテクチャ面でのプラットフォームは2種類ですが、ソフトウエアの対応は Rift, Quest, Go それぞれ異なっています。Oculus Quest の OS やアーキテクチャはモバイル系に属しますが、トラッキング性能やコントローラは PC 系の Rift (S) と同じです。アーキテクチャ上は Quest でも Go/GearVR ソフトが動きそうですが、今のところは対応していないようです。
Oculus | HMD | Controller | Host | OS | Arch |
---|---|---|---|---|---|
Oculus Rift / Rift S | 6DoF | 6DoF Touch x2 | 外部 PC | Windows | x64 |
Oculus Quest | 6DoF | 6DoF Tocuh x2 | Standalone | Android 7.1 | arm64 |
Oculus Go (Gear VR) | 3DoF | 3DoF x1 | Standalone | Android 7.1 | arm64 |
ちなみに Daydream と Vive の場合は下記の通り。
Daydream | HMD | Controller | Host | OS | Arch |
---|---|---|---|---|---|
Daydream | 3DoF | 3DoF x1 | Smartphone | Android 7.1+ | arm64 |
Daydream Standalone | 6DoF | 3DoF x1 | Standalone | Android 7.1+ | arm64 |
HTC Vive | HMD | Controller | Host | OS | Arch |
---|---|---|---|---|---|
HTC Vive/Pro/Eye | 6DoF | 6DoF x2 +α | 外部 PC | Windows 他 | x64 |
HTC Cosmos | 6DoF | 6DoF x2 | 外部 PC? | Windows 他? | x64? |
HTC Focus Plus | 6DoF | 6DoF x2 | Standalone | Android | arm64 |
HTC Focus | 6DoF | 3DoF x1 | Standalone | Android | arm64 |
より詳しいスペックはこちらに載せています。
・HMD VR / AR Device spec 一覧
関連エントリ
・Oculus Quest も文章書き&開発マシンにする
・Android/Oculus Go/Daydream の画面をミラーリングするツールを作ってみた
・Oculus Go で一般 Android アプリを起動できるランチャーを作ってみた
・Oculus Go を文章書き&開発マシンにする
・VR で物が大きく見えたり小さく見えたりするわけ
・Oculus Go は VR ができる新しい携帯ゲーム機
2019/06/07
VR Daydream 上で UserLAnd / Termux を使う
前回 Daydream 上でのテストに使用した方法です。通常のスマートフォンなら Oculus TV のような仕組みが不要なので、VR 上で動く VNC か SSH client があれば OK です。ブラウザ上で動く noVNC を使ってみました。
●noVNC での接続
事前に Bluetooth キーボードを接続しておくことをおすすめします。まずはスマートフォン単体で。
(1) UserLAnd の Install
(2) UserLAnd を立ち上げ、任意の Linux Distribution を選んで VNC を選択
(3) Termux の Install
(4) Termux に noVNC を入れて起動する
(5) Android の Chrome ブラウザから "http://localhost:6080/vnc.html" を開く
(6) noVNC の画面になるので "Connect" を押して VNC password を入れると Desktop が表示される。
(7) Menu の設定から Scaling Mode を "Local Scaling" に変更するとデスクトップ全体になります。
noVNC を開いたところ

Android の Chrome 内で UserLAnd で Linux (Ubuntu)

●VR 上での接続
Daydream View を使います。
(1) VR 上でライブラリのアプリ一覧から Chrome ブラウザを選びます。
(2) あとは同じように "http://localhost:6080/vnc.html" を開くだけです。
Daydream の Chrome でも UserLAnd で Linux (Ubuntu)

●速度面
前回 も載せましたが、さらに VR なしの noVNC のデータを追加しました。UserLAnd 上から Termux に ssh localhost -p 8022 で繋いでビルドを行っています。
・Time はビルドにかかった時間で単位は秒。Time の値が小さい方が高速。
●画面など
デスクトップウィンドウのような細かい文字だと Pixel 3 の解像度 (2180x1080) ではかなり厳しいことがわかりました。携帯できる大画面モニタとして使えると便利かと思いましたが、全体的にぼやけており逆に画面が狭くなったように感じます。
ZenFone AR は解像度 (2560x1440) が高い反面、ビルドのような高負荷な状態が続くと処理落ちが発生します。リプロジェクションも追従できなくなっており、酔いやすいので注意です。
どちらもレンズの端に歪みが生じていたり、何らかのタイミングで 2D アプリのウィンドウが表示されたりと専用機と比べるとどうしてもあらが目立つ印象です。今回テストした範囲では UserLAnd/termux で VR を使うメリットはありませんでした。Pixel 3 XL や Galaxy S9、Mirage Solo ではまた違った結果になるかもしれません。
関連ページ
・Android の上の開発環境
・HMD VR / AR Device spec 一覧
関連エントリ
・Oculus Quest も文章書き&開発マシンにする
・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 ができる新しい携帯ゲーム機
●noVNC での接続
事前に Bluetooth キーボードを接続しておくことをおすすめします。まずはスマートフォン単体で。
(1) UserLAnd の Install
(2) UserLAnd を立ち上げ、任意の Linux Distribution を選んで VNC を選択
(3) Termux の Install
(4) Termux に noVNC を入れて起動する
$ pkg install git $ git clone https://github.com/novnc/noVNC.git $ ./noVNC/utils/launch.sh --vnc localhost:5951
(5) Android の Chrome ブラウザから "http://localhost:6080/vnc.html" を開く
(6) noVNC の画面になるので "Connect" を押して VNC password を入れると Desktop が表示される。
(7) Menu の設定から Scaling Mode を "Local Scaling" に変更するとデスクトップ全体になります。
noVNC を開いたところ

Android の Chrome 内で UserLAnd で Linux (Ubuntu)

●VR 上での接続
Daydream View を使います。
(1) VR 上でライブラリのアプリ一覧から Chrome ブラウザを選びます。
(2) あとは同じように "http://localhost:6080/vnc.html" を開くだけです。
Daydream の Chrome でも UserLAnd で Linux (Ubuntu)

●速度面
前回 も載せましたが、さらに VR なしの noVNC のデータを追加しました。UserLAnd 上から Termux に ssh localhost -p 8022 で繋いでビルドを行っています。
VR あり | VR利用 | SoC | RAM | Thread | Time |
---|---|---|---|---|---|
Daydream + Pixel 3 (noVNC) | あり | Snapdragon 845 | 4GB | 8 | 72 秒 |
Oculus Quest | あり | Snapdragon 835 | 4GB | 8 | 105 秒 |
Oculus Go | あり | Snapdragon 821 | 3GB | 4 | 275 秒 |
Daydream + ZenFone AR (noVNC) | あり | Snapdragon 821 | 8GB | 4 | 349 秒 |
VR なし | VR利用 | SoC | RAM | Thread | Time |
Pixel 3 (Termux Console) | 無し | Snapdragon 845 | 4GB | 8 | 32 秒 |
Pixel 3 (noVNC) | 無し | Snapdragon 845 | 4GB | 8 | 38 秒 |
Essential Phone | 無し | Snapdragon 835 | 4GB | 8 | 38 秒 |
ZenFone 3 Max ZC553KL | 無し | Snapdragon 430 | 3GB | 8 | 100 秒 |
ZenFone AR (Termux Console) | 無し | Snapdragon 821 | 8GB | 4 | 111 秒 |
ZenFone AR (noVNC) | 無し | Snapdragon 821 | 8GB | 4 | 135 秒 |
Nexus 5X | 無し | Snapdragon 808 | 2GB | 6 | 135 秒 |
・Time はビルドにかかった時間で単位は秒。Time の値が小さい方が高速。
●画面など
デスクトップウィンドウのような細かい文字だと Pixel 3 の解像度 (2180x1080) ではかなり厳しいことがわかりました。携帯できる大画面モニタとして使えると便利かと思いましたが、全体的にぼやけており逆に画面が狭くなったように感じます。
ZenFone AR は解像度 (2560x1440) が高い反面、ビルドのような高負荷な状態が続くと処理落ちが発生します。リプロジェクションも追従できなくなっており、酔いやすいので注意です。
どちらもレンズの端に歪みが生じていたり、何らかのタイミングで 2D アプリのウィンドウが表示されたりと専用機と比べるとどうしてもあらが目立つ印象です。今回テストした範囲では UserLAnd/termux で VR を使うメリットはありませんでした。Pixel 3 XL や Galaxy S9、Mirage Solo ではまた違った結果になるかもしれません。
関連ページ
・Android の上の開発環境
・HMD VR / AR Device spec 一覧
関連エントリ
・Oculus Quest も文章書き&開発マシンにする
・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 ができる新しい携帯ゲーム機
2019/06/06
Oculus Quest も文章書き&開発マシンにする
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 倍速くなっています。
・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 を書き換えて調節してください。1280x720 推奨。
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 ができる新しい携帯ゲーム機
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 を書き換えて調節してください。1280x720 推奨。
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 ができる新しい携帯ゲーム機