Unreal Engine 4 + LeapMotion で手の動きをトレース

たかしー

2016年11月04日 19:03

こんにちは、たかしーです。

最近、LeapMotionでいろいろ動かすために、いろいろ勉強しています。
今は、Unreal Engine 4 + Leap Motionを使って、手を動かしたり、ものに触ったりできるように、いろいろいじっているところです。

箱や球体のオブジェクトに触ったときに、動かしたり掴んだりできるようにしたいのですが、まず手を表示させるところまでが少し苦労しました(;´∀`)

今回は。公式のドキュメントが英語+GIFアニメの解説で分かりづらかったので、備忘録的に手順を乗せてみようと思います。

新規プロジェクトを作ったら、
UnrealにビルトインされているLeapMotionプラグインを読み込みます。

コンテンツブラウザを右クリックして、


「ブループリントクラス」を新規追加します。
種類は「ゲームモード」を選択。



コンテンツブラウザにブループリントクラスが追加されるので、名前を付けて保存しておきます。
出来たブループリントクラスをダブルクリック


以下のようなエディタ画面が出てきます。
右側の設定パネルで、Classes の Default Pawn Classes プルダウンから "LeapFloatingHandsCharactor"を選択して保存します。


Untitled(Editor)の部分を右クリックし、ワールドセッティングをひらき、
GameModeから、先ほど作成したブループリントクラスを選択します。


最後に、画面上部の"プレイ"から"スタンドアロンゲーム"を選択すると、



別ウインドウで開いて、プログラムが実行されます。
LeapMotionセンサーで感知した手が、画面上に表示されました。




さすがUnreal、描画がメチャクチャリアルですね(
非常に動きがスムーズで、とても驚きました。

ただ、手が非常にリアルすぎて、逆にちょっと気持ち悪さがあるので、他のアセットを適用したほうがよさそうです(;´∀`)

ここまではなんとかたどり着いたのですが、問題はここから。
キューブを生成して、手で触れたときに動いたりさせようと思っていろいろ触っていたのですがどうもうまくいきません...

サイトを調べていると、Collisionを設定すると、あたり判定が有効になるという記述を見つけたのですが、設定しても手が箱をすり抜けてしまいます...


どうすればうまくいくのか...ウーン...(;´Д`)

関連記事