OculusGo

Oculus GoでNOLO CV1を使えないかのテスト

Oculus Goで腕と頭のトラッキングがしたくなって NOLO CV1 を試してみました。

https://www.amazon.co.jp/dp/B07C9XNFP8

結論から言うと動きました!開発目的なら無理矢理6dofハンドトラッキング+6dofヘッドトラッキングで遊べます。

デモ動画


セットアップ


  • Oculus Go上で自作Unity製アプリが動くようにしておく

  • NOLO CV1のペアリングを済ませておく

  • Bluetoothキーボードをadb経由で無理やりOculusGoとペアリングしておく(Nolo CV1の接続時のデバイス接続許可ダイアログを操作するため)キーボードペアリングは末尾にメモがあります。


NOLO CV1を使うOculus Goアプリのインストール

NOLOのサンプルシーンのapkをGearVR向けっぽくビルドして



adb install -r hoge.apk



でOculusGoに転送する。


NOLO CV1を使うOculus Goアプリの起動

adb shell dumpsys package com.Company.YourVeryCoolApp

みたいなことをしてメインのアクティビティが何か調べて、メインのアクティビティを直接am startする。

Unity2017.4.3f1では

adb shell am start -n com.Company.YourVeryCoolApp/com.unity3d.player.UnityPlayerActivity

こんな感じ。

そしてアプリが起動したらUSBデバイス接続ダイアログが出ます! OculusGoのレンズ越しに…

やった!タッチもマウスも効かない!!!

はい…

adb shell getevent -l

でもそれっぽいイベント無さそうなので

キーボード入力を無理矢理行います。


BTキーボードでOKを押す

2DのUSBデバイス接続許可ダイアログ上では、BTキーボードが使えます。

なので矢印キーとEnterキーでOKを選択、決定してUSB接続ダイアログを黙らせたら、無事自作NOLO CV1がOculus Go上で動きました。

現在のSDKだと毎回アプリ起動時にこのUSB機器ダイアログが出るので、結構手間です…


adb経由でキーボードイベントを発行する

BTキーボードがない場合、無理やりadb経由でキーボードイベントを発行することもできます。

以下は「次回からは接続を確認しない」にチェックを入れてOKボタンを押すコマンドです。

参考サイト: http://d.hatena.ne.jp/kinneko/20130820/p1

上から順に↓ enter ↓ → enter というキーイベントを発行しています。

adb shell input keyevent 20

adb shell input keyevent 66
adb shell input keyevent 20
adb shell input keyevent 22
adb shell input keyevent 66


BTキーボードのペアリング

blutoothキーボードを適当にペアリングしてしまえば、PC不要でデモ出来て便利です。

OculusGoにadbが通る状態で以下のコマンドを発行すると、素のAndroidのBluetoothデバイス追加画面に遷移します。

遷移先でキーボードペアリングをした後に。VysorでPCから画面を閉じるか、ペアリングしたキーボードでescを押してOculusGoのHome画面に遷移しましょう。

adb shell am start -a android.intent.action.MAIN -n com.android.settings/.bluetooth.BluetoothSettings