Leap MotionはOculus Riftの目になることにも注力しているようで、HMD用の機能やOculus Rift用のマウンタの発売などを始めています。ちなみにマウンタは$20くらいですが、Leap MotionがOculus Riftに張れればOKなので、テープや耐震用ジェルのようなものでも大丈夫みたいです。
Leap MotionとOculus Riftの組み合わせは楽しいので、ぜひ体験してみてください。
- Get Started with Leap Motion VR Development / Leap Motion Developers
- Leap Motion VR / Leap Motion Developers
ユニティちゃんにふれてみる?
Oculus Riftで眺めながらユニティちゃんにふれられるようにしてみましょう。全体のプロジェクトはこちらに置いておきます。
「Oculus Passthrough Unity Asset」をダウンロードします。数日前に「Rift/Desktop」というリンクが追加されており、よりコンパクトなパッケージになっているようです。
これをUnityにインポートすることで、Leap MotionをOculus Riftで利用できる環境が整います。なお、このAssetはUnity Proのみでの動作となります(Oculus Riftの制限)。
また、Oculus RiftのSDKは0.4系となっています。別途ランタイムのインストールが必要です(ランタイムはここからダウンロードできます)。筆者の環境はDK1を利用していますので、その前提で進めます。
AssetはLeap Motion SDKとOculus Rift SDKが組み込まれた状態になっています。Oculus RiftのOVRPlayerControllerに若干の変更が加えられており、両目にLeap Motionのカメラ画像データが表示されるようになっています。Leap MotionのHandControllerも組み込まれています。これを実行することで、手を動かすとブロックをバラバラにできます。Leap Motionのカメラ画像の表示、カメラ画像と手の位置の位置合わせ、手のあたり判定がすべて組み込まれていることがわかります。
Leap Motionは手が入ってきたほうを手前(ヘッドマウントモードでは下)として認識します(トラッキングの向きの自動調整をオン(デフォルト)にしていた場合)ので、向きはどちらでも構いません。この仕様から、Leap Motionに手を認識させる場合は、下から入れるときれいに認識できます。
Oculus Passthrough Unity Assetをインポートした状態で、Asset Storeからユニティちゃんをインポートします。最初に設定されているブロック(Row)をすべて削除し、ユニティちゃんのモデルを配置します。Oculus Riftのカメラが(0,0,0)の位置にいるので、それに合わせてユニティちゃんを配置します(下図)。
LeapTriggerスクリプトをScriptsフォルダごとAssetに追加します。ユニティちゃんに「LeapTrigger」スクリプトと「Capsule Collider」を設定、「FaceUpdate」スクリプトを無効または削除します。
このプロジェクトをexeとして出力して実行します。Oculus Riftを装着して後ろを向くとユニティちゃんがいるので、撫でてみてください。ユニティちゃんがやさしく微笑んでくるでしょう。