PR

Oculus RiftでLeap Motionの動きをよりリアルにする

いよいよ「Leap Motion」を「Oculus Rift」の目にしてみましょう。Oculus RiftはOculus VRが開発しているHMD（Head Mounted Display）です。最近ではOculus VRがFacebookに買収されたことで知った方もいるでしょう。Oculus Riftをかぶると、目の前に仮想空間（VR：仮想現実、VR空間）が広がり、よりコンテンツに入り込んだ体験ができます。

しかし、Oculus Riftをかぶることで表示される画面以外が見えなくなるため、コンテンツを見ることはできますが、そこに何かの入力を与えることが難しくなります。これにLeap Motionを組み合わせることで、Leap Motionで検出した手をOculus Rift上の仮想空間に表示させ、自分の手が仮想空間の中にいるような効果を出すことができます。

また、Leap Motionのカメラ画像をOculus Riftに表示させることで、現実の映像を重ね合わせることもできます。これらの機能によって、Oculus Riftで表現した仮想空間に入力を与えることが、より簡単になりました。

Leap MotionとOculus Riftを「Unity」で利用するパッケージはこちらで提供されています（下にスクロールすると出てくるUnity VR Asset）。Leap Motionのパッケージと同様にUnity Pro用とFree用の2種類があります。Oculus Riftを単体で使う場合には、Unity 4.5.5以降でUnity Freeにも対応しています（Unityとの戦略的提携による）。本稿ではUnity Proで解説を進めますが、操作はUnity Freeと同じです。

事前の確認、設定事項として、Leap MotionをOculus Riftと組み合わせ、Leap Motionのカメラ画像を使いたい場合は「Leap Motionコントロール パネル」から「イメージを許可する」にチェックを入れ、「OK」をクリックします。

Leap Motionのカメラ画像を取得できるようにする

Unityで新しいプロジェクトを作成し、Unityパッケージ（LeapMotionVRAssets2_2_2.unitypackage）をインポートします。AssetsフォルダにLeap Motion用とLeap Motion ＋ Oculus Rift用のフォルダができるので、Leap Motion ＋ Oculus Rift用の「Asset → LeapMotion+OVR → Scenes」にあるサンプルのシーンを開きます。どれでもよいですが、ここでは「LeapOculusPassthrough」を開きます。

パッケージをインポートしてサンプルのシーンを開く

シーンに配置されているオブジェクトを表すHierarchyビューにいくつかのオブジェクトが表示されます。この状態でLeap MotionとOculus Riftをコンピュータに接続し、シーンを実行します。

サンプルのシーンを実行する

すると、Oculus Rift用に分割された画面に、Leap Motionのカメラ画像が表示されます。ここに手をかざす（手を下から入れるとよいです）と、手のモデルが表示され、手を奥に動かすとブロックが壊れていきます。

このようにOculus Riftの仮想空間に自分の手を使った入力を追加できます。なお、実際にOculus Riftをかぶって見たい場合には、Unityエディターの「File → Build Settings」からビルドを行います。ビルドが成功すると2つの実行ファイルが生成されます。このうち「DirectToRift.exe」と付いているほうを起動します。

独自のアプリケーションに組み込む場合には「Asset → LeapMotion+OVR → Prefabs」にあるPrefabsを利用します。

Oculus Riftアプリケーション開発時の注意点

Leap Motionとの組み合わせに限らず、Oculus Riftを使ったアプリケーション開発にはいくつかの注意点や、展示の際のガイドラインがあります。

特にOculus Riftでは3D酔いと呼ばれる現象への対処が必要です。これは処理速度が間に合わない場合や、ユーザーの動作とVR空間の視点が一致しないために、酔いが発生する現象です。ユーザーの動きと表示する視点が同じになるようコンテンツを開発します。

またOculus Riftはコンピュータに高い性能を求めますが、これをクリアしないとユーザーによい体験をしてもらえません。必ず高スペックのコンピュータ（具体的にはOculus Rift DK2でコンテンツのフレームレートが75を維持できるもの、ノートPCよりデスクトップPC）を選択しましょう。

WindowsでUntiyアプリケーション開発の際にVisual Studioを利用する

Untiyでスクリプト（プログラム）を記述する際には、規定では付属のMono Developを使います。しかしWindows環境であれば、MicrosoftのVisual Studioという高機能の統合開発環境があります。以前はUnityのスクリプトをVisual Studioで開発するための拡張機能が発売されていましたが、Microsoftが買収し、「Visual Studio Tools for Unity」として無償でリリースされています。

Visual Studio Tools for Unityを利用することで、Windowsアプリケーション開発者であれば使い慣れた開発環境を、普段Windowsのアプリケーション開発をしていない開発者であれば、Visual Studioのパワフルな環境を利用できます。Visual Studio Tools for Unityではメソッドの検索のようなUnityアプリケーションの開発支援や、Unityアプリケーションのデバッグなどの機能があります。

Unity側はアセット、Visual Studio側は拡張機能として提供されます。そのため、Visual Studioは無償のExpressでは利用できません。Visual Studio 2013では個人開発者向けの「Visual Studio 2013 Community」というエディションが追加されました。Visual Studio 2013 Communityは拡張機能を含む「Visual Studio 2013 Professional」と同等機能が無償で利用できます。商用利用に関しては制限がありますので、サイトを参照してください。

これらを組み合わせることで、個人開発者であれば、Unity Free、Visual Studio Community、Visual Studio Tools for Unityで素晴しい開発環境を手にできます。商用利用であれば、Unity ProおよびVisual Studio Professional以上のエディションの購入検討にもなるでしょう。