てんちょーの技術日誌

自分がつまづいたこととかメモ

【UE4】カノちゃんの腕をLeapMotionで動かす【AdventCalendar11日目_前編】

UE4のAdventCalendar11日目です。

今回はLeapJamの時に借りっぱなしのLeapMotionを使ってみたいと思います。

qiita.com

本来やろうとしてたことが思ったより長くなってしまったので分離しました。

UE4.10です。

カノちゃんの手とLeapを連動させる

正直アドカレ用のネタとして考えてたのですが、出来るかどうかわかってなかったので賭けでしたw

以下はLeapMotionコンテンツ内のLeapBasicRiggedCharacterを参考対象に話を進めていきます。頭のない黄色いモデルのやつです。

f:id:shop_0761:20151205102011p:plain

プラグインとかの導入方法はこちらを参考にしてください。今回は省略します。

toorsoo.hatenablog.com

肝となる部分はこの辺だと思われます。

  • 操作したいActorへのInterfaceの追加
  • 子要素になるLeapAnimBodyChildActorの追加
  • BasicCharacter_AnimBlueprintの中身のコピー
  • Initialize Variables if New関数 ★
  • Set Local Variables From Anim Body関数 ★
  • ArmScalingの初期値

★印のやつはマジでどのタイミングで呼ばれてるか分かりませんw  BPデバッガ、ブレークポイントC++のコードを追ってみたものの見つけられず困惑 (PrintStringが出力されるので確実に動いている…

だれか知ってる方がいれば教えてほしいです。

なので今回は動けばいいやくらいのスタンスでいきます。

やることは大きく分けて4つです。

BasicCharacter_AnimBlueprintから拝借

以下では貼り付けていくとどんどん変数が追加されるので、ノードを右クリック->変数"--"を作成 みたいな感じでひたすら追加しました。(なんかいい方法ないのかな

まずはAnimGraphから IK周りを貼っつけたものがこちらです。

f:id:shop_0761:20151130213601p:plain

Headは今回はいらないなと思って切り捨てました。

そしてEventGraphからはこの辺を頂きました。 先に★印の関数を作成して、中身をコピーしてからこっちのほうを貼り付けるとよいです。

f:id:shop_0761:20151130214653p:plain

これはEventBluePrintUpdateAnimationにつながってればおkです。

今回はこのノードの出番ではなさそうなのでコピーしてきませんでした。(きっとこれもやると他の全部の関数をお引越しさせなきゃならなくなりそう…

f:id:shop_0761:20151130221137p:plain

これがなくても必要なところは動いてくれてるのでよしとしました。

で、忘れてはならないのはArmScalingの初期値の設定です。これを忘れてたばっかりにこうなりました。

その後なぜか奇跡的に発見できたので滞り無く進められましたw

でこの変数、いじってみるとなかなかシュールでこんなこともできました。

動かしたいActorにChildActorを追加

一応LeapAnimBodyChildActorに名前変えておきます。

で、設定はこんな感じ

f:id:shop_0761:20151130220138p:plain

LeapAnimBodyConnectorをChildActorClassにします。 このActorの位置はキャラによると思うので高さとか調整しました。

ActorのBPの設定

BeginPlayのところにこれらを繋いであげます。コメントで言うSet convenience pointersの部分です。

f:id:shop_0761:20151130220819p:plain

Interfaceの追加

こちらはActorのBPにあるクラスの設定から追加できます。

f:id:shop_0761:20151130220445p:plain

追加したら、AnimBodyの中身も設定します。 Interfaceのところにあると思うので設定。

f:id:shop_0761:20151130220721p:plain

だいたいこんなところです。抜けがあるかもしれませんが、Leap側のActorやAnimBPを参考にするとよさそうです。

間違ってるところとか気になるところがあればtwitter等で気軽に声かけてください

これを使って遊んでみたの(後編)がこちら

shop-0761.hatenablog.com