OculusLink使用時、手がコントローラー代わりになる問題
古いOculusIntegrationが入っているUnityプロジェクトを、OculusLinkをヘッドセット代わりにUnityEditorで実行したら、コントローラーで動く部分が、ハンドトラッキングでも動いた。
コントローラーを水平に置いておそらくQuest内でハンドトラッキングモードに切り替わると、いままでコントローラーの動きをもとに動いていたものが手の位置とか角度をもとに動く!
でも角度はあってない↓
↑は手を前にピーンって伸ばした状態だが、HandModelは右を向く
↓コントローラーモードのとき
しかもピンチをしたら私の作ったアプリではXボタンに割り当てた機能に反応する。
(この文章で伝わっているのだろうか。)
ControllerOnly実験
OVRManagerのHandTrackingSupportをControllerOnlyにしたら、この症状は起きないのだろうか
19.1で実験しようと思ったら、HandTrackingSupportが表示されてない!・・・
と思ったら、以前やった時もAndroidへのSwitchPlatformとかQuestビルド用の準備をしないと表示されなかったみたい
【OculusHandTracking】環境構築とサンプルシーンを見る【Unity】 - トマシープが学ぶ
AndroidにSwitchPlatformしたら出てきた。
QuestFeatureとSecurityという項目が追加されているのね。
結果
デフォルトのControllerOnlyでOculusLinkを試したが、手の動きは反応した。
やはりこれはQuestアプリでの設定だね。
ということで、OculusLinkをUnityEditorでPCVRの代わりとして使うときハンドトラッキングモードで反応しないようにするにはQuest側でハンドトラッキングをオフにする(もしくは自動有効をオフ)にするのが良さそう。
UnityEditor or 開発環境のせい?
Clusterとか他のアプリでもOculusLinkを使って試したが、起こらなかった。
まあ今まで私も何回も使ってたけど、そんなこと起こらなかったもんね。
自分のアプリもPCビルドして試したら起こらなかった。
つまりUnityEditorもしくはVRTKとかOculusIntegrationのバージョンとか何かしらの開発環境のせいで起こっているみたい!
OculusIntegrationのアップデート情報など
こちらの記事が詳しいです。
全般的にこちらが詳しいです。
システムキーボード
面白そうなのは、v19でQuestでシステムキーボードを呼び出せるようになったことですね!
OVRManagerのRequiresSystemKeyboardにチェックを入れると、InputFieldを押したときなどに出てくるらしい!スマホとかでシステムキーボードが出てくるときと同じ条件だと思う(しらないけど)
@korinVR @needle 19.1に入れかえた直後はだめだったんですが突然キーボードを出せました。影響してそうなのはユニバーサルメニューを一旦無効にして再度有効にしたくらいです。off/onで何かが初期化されたのかな? pic.twitter.com/2dVyTsodJw
— KOGA Mitsuhiro (@shiena) 2020年8月10日
このツイートのスレッドにあるように今はQuest側いろいろ再起動とかしないと出てこなさそう。
まあ今は使う用事ないのでいいや。
OculusLinkでもハンドトラッキング動く
以前はビルドしないとハンドトラッキング(指も動くほう)が試せなかったが、今はOculusLinkでつないで、UnityEditorで実行するだけで動く。
v13からすでに対応してたらしい。
HandTestというシーン
でもこのシーン、ControllerOnlyになってるけどなんで動くんだろう。
手が出るかどうかはOVRHandPrefabがいるかどうかの違いかな
OVRCameraFade
いつからあるのか知らないけど、シーン切り替え時やStart時に画面をFadeするコンポーネント。
DebugUIというサンプルシーンのCenterEyeCameraについていた。
カメラの前にPlaneみたいなのが表示されてそれの透明度が変わっていくという構造
OVR Vignette
同じくCenterEyeCameraにつけて使うVignette. v15からある
ずっとカメラについている。
VRTKのTunnelOverlayみたいに動いたときだけこれがかかるのかと思った