ほびーらいふ

趣味に関すること。ゲームとかUE4とか。あと好きなサービスとか。

イベントディスパッチャーを利用したアニメーションブループリントへの値の渡し方

はじめに

この記事は Unreal Engine 4 (UE4) #2 Advent Calendar 2019) 4日目の記事です。

qiita.com

この記事の対象者は最近UE4を触り始めて、アニメーションの切り替えに挑戦している人が対象です。
初心者向けにイベントディスパッチャーを利用したアニメーションブループリントへの値の受け渡しを紹介します。 プロジェクトの規模等では別の方法が良い可能性もあるため、参考に留めておいていただければと思います。

もし間違った情報がありましたら、修正いたしますのでのろうさのTwitterまでご連絡をお願いいたします。

環境について

  • UE4.23.1
  • アニメーションスターターパック

(お持ちでない方はEpic Games Launcher からDLをお願いします。)

アニメーションの切り替え

アニメーションの切り替えにはbool値やenum型等の変数を用います。
サードパーソンのテンプレート や アニメーションスターターパックのアニメーションブループリントを見てみると、イベントグラフ内で切り替えに使用する値を取得していることがわかると思います。

f:id:norousa:20200102035801p:plain
値の取得

個人的にはこの値をイベントディスパッチャーでやりとりするのが好きです。

イベントディスパッチャー

UE4にはイベントディスパッチャーという機能が搭載されております。

この機能はとても便利です。
Aのブループリントで呼び出し→BとCのブループリントで別々の処理を同時に動かす…ことなどができます。
詳細はキンアジさんの記事がとてもわかりやすいのでぜひ読んでみてください!

kinnaji.com

実際にやってみましょう!

以下の画像の処理を、ブループリントに対して書き加えてください。
大事なところは赤丸で囲んでいます。

f:id:norousa:20200123163903p:plain
Third Person Character

次に作成したウィジェットブループリントに対して処理を書きます。

f:id:norousa:20200123163259p:plain
ウィジェットブループリント1

f:id:norousa:20200123164044p:plain
ウィジェットブループリント2

最後にアニメーションスターターパックに付属しているアニメーションブループリントに書き加えます。

f:id:norousa:20200123163515p:plain
アニメーションブループリント1

f:id:norousa:20200123163548p:plain
アニメーションブループリント2

プレイをして問題なければ、右クリックをした際にエイムのアニメーションが再生されるようになります。
また、左下にAim中は Aim On に通常時は Aim Off と表示されるようにもなります。
他にもやりとりの仕方はあるのですが、最近はこの方法がわかりやすい気がし、ほかのブループリントとの兼ね合いでも楽な気がするので紹介しました。

まとめ

これにて終了です。お疲れ様でした。 最後までご覧いただきありがとうございます。

明日はalweiさんUE4 誰でもわかるアウトライン入門 です。

unrealengine.hatenablog.com