ブログ@kaorun55

HoloLensやKinectなどのDepthセンサーを中心に書いています。

Leap MotionとOculus Riftを組み合わせてみる

Leap MotionOculus Riftの目になることにも注力しているようで、HMD用の機能やOculus Rift用のマウンタの発売などを始めています。ちなみにマウンタは$20くらいですが、Leap MotionOculus Riftに張れればOKなので、テープや耐震用ジェルのようなものでも大丈夫みたいです。

Leap MotionOculus Riftの組み合わせは楽しいので、ぜひ体験してみてください。

図1

ユニティちゃんにふれてみる?

Oculus Riftで眺めながらユニティちゃんにふれられるようにしてみましょう。全体のプロジェクトはこちらに置いておきます。

result

Oculus Passthrough Unity Asset」をダウンロードします。数日前に「Rift/Desktop」というリンクが追加されており、よりコンパクトなパッケージになっているようです。

1

これをUnityにインポートすることで、Leap MotionOculus Riftで利用できる環境が整います。なお、このAssetはUnity Proのみでの動作となります(Oculus Riftの制限)。

また、Oculus RiftSDKは0.4系となっています。別途ランタイムのインストールが必要です(ランタイムはここからダウンロードできます)。筆者の環境はDK1を利用していますので、その前提で進めます。

AssetはLeap Motion SDKOculus Rift SDKが組み込まれた状態になっています。Oculus RiftのOVRPlayerControllerに若干の変更が加えられており、両目にLeap Motionのカメラ画像データが表示されるようになっています。Leap MotionのHandControllerも組み込まれています。これを実行することで、手を動かすとブロックをバラバラにできます。Leap Motionのカメラ画像の表示、カメラ画像と手の位置の位置合わせ、手のあたり判定がすべて組み込まれていることがわかります。

2

Leap Motionは手が入ってきたほうを手前(ヘッドマウントモードでは下)として認識します(トラッキングの向きの自動調整をオン(デフォルト)にしていた場合)ので、向きはどちらでも構いません。この仕様から、Leap Motionに手を認識させる場合は、下から入れるときれいに認識できます。

Oculus Passthrough Unity Assetをインポートした状態で、Asset Storeからユニティちゃんをインポートします。最初に設定されているブロック(Row)をすべて削除し、ユニティちゃんのモデルを配置します。Oculus Riftのカメラが(0,0,0)の位置にいるので、それに合わせてユニティちゃんを配置します(下図)。

3

LeapTriggerスクリプトをScriptsフォルダごとAssetに追加します。ユニティちゃんに「LeapTrigger」スクリプトと「Capsule Collider」を設定、「FaceUpdate」スクリプトを無効または削除します。

4

このプロジェクトをexeとして出力して実行します。Oculus Riftを装着して後ろを向くとユニティちゃんがいるので、撫でてみてください。ユニティちゃんがやさしく微笑んでくるでしょう。

result