ゲームプログラマー暇人日記

プロのゲームプログラマーが技術的な事から、そうじゃないことまで書いていきたいと思います。

Unreal Engine 4.10.1でLeap Motionを使う

はじめに

この記事はUnreal Engine 4 (UE4) Advent Calendar 2015の13日目の記事です。

 

今回はUE4でデフォルトサポートされているLeap Motionの使い方の記事です。

非公式プラグインを使ったLeap Motionの使い方の記事は多いのですが、公式を使ったLeap Motionの使い方の記事は少ないので書いてみます。

 

UE4でLeap Motionを扱う

かなり簡単に出来ます。

  • Leap Motion Controller Actorを探す

    f:id:hima_zinn:20151212163737p:plain

  • Leap Motion Controller Actorを追加し、いい感じの位置に配置する

    f:id:hima_zinn:20151212163800p:plain

  • プレイ!

    f:id:hima_zinn:20151212164042p:plainはい。もう手がでました!
    簡単!
    素晴らしい!

Leap Motionの情報をBlueprintからアクセスする

  •  LeapMotionControllerActor1をBlueprint化する
    場所やファイル名は適当です。

    f:id:hima_zinn:20151212165842p:plain

    f:id:hima_zinn:20151212170029p:plain

  • 作成したBlueprintを開き、LeapMotionControllerComponentを開く

    f:id:hima_zinn:20151212170148p:plain

  • 詳細の下の方にあるイベントのOn Hand Added、On Hand Removed、On Hand Updateedを追加する

    f:id:hima_zinn:20151212170229p:plain

  • 下記のBlueprintを作成し、動作確認

    f:id:hima_zinn:20151212170358p:plain


  • プレイし、手が増えるとき、手が減るとき、手が出ている間にログが出ていることを確認する

    f:id:hima_zinn:20151212170446p:plain

Blueprintから手の位置情報を取得する

  • 下記のようにBlueprintを作成してください

    f:id:hima_zinn:20151212172031p:plain

     

  • プレイすると、手のひらの位置情報を表示し続けます

    f:id:hima_zinn:20151212172053p:plain

  • 今回はGet Bone ActorでPalmを選択したため手のひらの位置情報を取得していましたが、他のものを選択するとそれぞれの関節の位置情報を取得できます

    f:id:hima_zinn:20151212172109p:plain

Blueprint Referenceには他にも色々と使い方が載っています。

詳しくはそちらをご確認ください。

追伸

今回は簡単な説明だけとなりましたが、実際にLeap Motionを使う場合は色々とクセが強いので対応が大変になります。

特に難しいのはLeap Motion内だけで独自の座標系があるのではないかという挙動が見られます。

Leap Motionを使う際はテストプロジェクトを作って、必要としている要素ができるかどうかを確かめてからの使用をオススメします。

 

明日はmenononさんの『UE4で科学可視化やってみよう ~ジオメトリキャッシュ』です