はじめに
ついに念願のOculus Questを手に入れました。
さっそくVR開発に取り組んでみようと思ったら、どうやらWebXRというものがあるそう。
Three.jsを使ったので導入は簡単でしたが、実機テストするのにひと手間かかったのでメモを残しておきます。
WebXRの制約
上の記事によると、WebXRはhttps接続下でしか動作してくれないようです。
これでは実機デバッグが難しいですね。
自分は最初、コードを書き換える->Netlifyに上げる->実機テストという手順を踏んでいたので大変面倒でした。
adbを使えばできるらしい。
より詳しく調べてみると、Oculus QuestのブラウザではlocalhostへのアクセスではWebXRをhttpsなしでつかえる模様。
localhostじゃ開発PCのサーバーにアクセスできないじゃないかと思いましたが、ADBの機能を使えばできるようです。
adbはAndroid Debug BridgeといってAndroidのデバッグのためのツールですが、Oculus Questの中身がAndroidであるため使用可能です。
adbの導入方法については各自調べてください。
Android Studioが入っていればついてきていると思います。
開発者モードの有効化
Oculus Questに対してadbを使うには開発者モードを有効化する必要があります。
Oculusアプリの設定から、開発者モードを有効化してください。
adbのreverseで解決。
開発者モードを有効化したらQuestとPCをUSBケーブルで接続します。
adb devices
上のコマンドを実行してみましょう。
認識はされていますが、unauthorizedと出ていると思います。
Questの方を見てみると、このコンピューターからのアクセスを許可しますかといったプロンプトが出ているので許可してやってください。
unauthorizedと出なくなったはずです。
さて、準備は整ったのでOculus QuestからPCのサーバーへlocalhostでアクセスできるようにしてあげましょう。
以下のコマンドを実行してください。
adb reverse tcp:[サーバーのポート番号] tcp:[サーバーのポート番号]
PC側でサーバーを起動した状態で、Quest側のブラウザでlocalhostの指定ポートにアクセスするとサーバーで配信しているアプリが表示されるはずです。
WebXRに対応したアプリであれば、実機テストができるようになっているはずなので頑張って開発しましょう。
まとめ
自分はReact Three Fiberを使って開発を行っています。
次の週末までに何かゲームをリリースできるといいんですが、開発は難航しています…