Leap Motionとは?
LeapMotionは2012年にLeap Motion社から販売された手のジェスチャーやモーションを取得できるセンサーデバイスです。発売された当初「これはすごい!」とすぐに飛びつき、早速「流線ノート」という作品で採用したこともありました。
今回はこのLeapMotionをUnreal Engineで使用する方法をご紹介します。過去にはデフォルトのプラグインだったようですが、現在では若干セットアップに手間がかかるようです。以下の手順を追って説明します。
- Visual StudioをWindowsへインストール
- LeapドライバをWindowsヘインストール
- プラグインのダウンロードとコンパイル
- Leapのデータへのアクセス
1.Visual Studioのインストール
プラグインのビルドのためにC++の開発環境としてVisual Studioのインストールが必要になります。方法は公式サイトにて説明がありますのでそちらを参照してインストールを完了させてください。
2.LeapMotionのドライバをインストール
下記URLからOS(Windows)にドライバをインストールして、Leapデバイスを使う準備を行います。
https://developer.leapmotion.com/sdk-leap-motion-controller/
ドライバーのインストールが完了したら、Leap Motion Control Panelを起動して、Leapが正しく起動しているか確認してみましょう。診断ビジュアライザーを見ながら、Leapに手をかざしてみると3Dの手が表示されるかと思います。
- Leap Motion Control Panelを実行
- トラブルシューティング
- 診断ビジュアライザー
- 様々なモードで確認可能
4.Leapデータへのアクセス
プラグインのコンパイルが成功すると、コンテンツブラウザにLeapMotionコンテンツが表示され、UnrealEngineからLeapのデータにアクセスできるようになります。Examplesフォルダの中には、すぐに使えるようサンプルがいくつか準備されています。今回はカメラと両手のメッシュが内包されている「LeapHandsPawn」を使って、レベル上のアクターを「手」で触ってみます。
LeapHandsPawn
あらかじめ用意されている「LeapHandsPawn」を開いて確認すると、CameraとLeapHandsコンポーネントが追加されています。この段階でも既にLeapに反応して手のメッシュがリアルタイムに動くはずです。
実際にLeapデータにアクセスする
Leapがセンシングしている情報には、下記のように「On Leap Tracking Data」ノードからアクセスすると、リアルタイムに最新情報が取得できます。下記の例では日本の手の人差し指の位置や向きにアクセスしています。
- Leapコンポーネントを追加
- On Leap Tracking Dataイベントを追加
- イベントノードからデータを取得
- Get Latest Frame Dataで最新の情報にアクセス
- 取得した手のデータ
- 手の部位の指定
- 人差し指のデータ
- 第一関節のデータ
Minority Report
ドライバやプラグインのインストールに若干手間はかかりますが、一度セットアップに成功してしまうと、とても簡単にLeap Motionを活用できるようになります。通常のキーボードやゲームコントローラーとはまた異なる、より身体的なインタラクションを実現できる方法ですので、インスタレーションなどへの応用が考えられると思います。
また、今回は解説していませんが、ピンチやグラブのようなジェスチャーをとることも出来るので、映画「マイノリティリポート」のような3DCGを用いたUIをUnrealEngineで作ることも出来るかもしれません。