[Unity][Oculus]目で見つめて選択できる機能を作ってみた

 こんにちは、料理長です。


今回はVRを使ってコントローラーではなく目で選択できる機能を作りました。


目で選択できる機能は、Windows MRのチュートリアルにもあって、目の前にあるボタンを見て一定の秒数を経ったら「押した」判定になります。


調べた結果は、意外と参考できる文献は少ない、5年前の動画スレを参考しました。


どうやってできるか考えにくい、動画を見たらシンプルでした。

これは、頭にさらにカメラを載せて、そこからRaycastだけ飛ばして当たり判定を付けることです。

まずは設定しましょう。

OVR PlayerControllerなどのものを導入できたら、まずは CenterEyeAnchorの下にカメラを追加して、名前をLook Cameraにします。

Transformの方は必ずリセットして0にします。そうしないとずれが発生してしまいます。


Clear Flagsを Dont'Clearで、Culling Maskを Nothing、今必要のはそのカメラから出るRayだけで、「見る」ことができてしまうと処理が重くなります。

Target Eye は None(Main Display)にします。


Look CameraのしたにCanvasを追加して、ターゲット的な画像を入れて当たる位置をわかりやすくします。


シーンに検証用のパネルとボタンと球体を動画の通りで置きます。


ボタンのHighlighted Colorに色を付けます。


参考用のスレから BasicLookInputModuleのスクリプトをコピーして、EventSystemに付けて、他のStandaloneなどのInput Moduleは要らないので無効にします。このモジュールがなければUIに反応しません。


動画にあるbuttonHoverのスクリプトもコピーします。


ボタン自身にbutonHoverのスクリプトを入れて、Event Triggerも入れて、 Pointer Enter と Pointer Exitをそれぞれ追加して MouseOver() と MouseOut()をアサインします。

プレイボタンを押して動作確認します。


ずれたと思ったらターゲットを調整しましょう。


正常に動作できれば、ボタンを見たら色が変わり、Consoleにカウントダウンが始まり、0になったら球体がボタンの位置まで飛ばします。

できました!


これで、VRコンテンツ開発にできることが増えます!

さらに、普通のFPSみたいにオブジェクトに当たるスクリプトを作れば、UIボタン以外も幅広く使えます!



今度は、この機能を活かしたゲームを作りたいと思います!



参考資料:

Look Selection with Oculus VR and Unity

https://youtu.be/zI0wFAc6trY


New Unity UI + OVR Look-Based Input HOWTO

https://forums.oculusvr.com/t5/Unity-Development/New-Unity-UI-OVR-Look-Based-Input-HOWTO/td-p/253590


--------------------------------------------------------------------------------

現在
ではスタッフを大募集しております!!
UNITY、Unreal Engine4、AI、プログラミングや建築パースに興味がある方!
ぜひご応募下さい!!
初心者の方、未経験の方やインターンを受けてみたい方々でも大歓迎です!!


〔企画運営〕株式会社シェルパ 

【福岡本社】〒810-0042 福岡県福岡市中央区赤坂
      1丁目13-10赤坂有楽ビル7F
tel 092-717-6800 / fax092-717-6801

--------------------------------------------------------------------------------

コメント