UE4 アニムグラフからAnimNotifyを飛ばす方法

目次

やあ

AnimationBPのアニムグラフのステートマシンからAnimNotifyを飛ばしたいなーって思ってたら出来たのでメモとして残しておくよ。
f:id:pto8913:20201011221119p:plain
赤丸の部分どこからでも飛ばせるよ。

環境

UE4.25.0

目次に戻る

やる

ステートマシンからAnimNotifyを飛ばす場合

AnimNotifyを飛ばしたいステートマシンを選択します。
このとき詳細パネルのアニメーションステートにAnimNotifyの名前を入力することでAnimNotifyを飛ばせます。
f:id:pto8913:20201011222145p:plain

ステート開始イベントからAnimNotifyを飛ばしてみる

今回は、移動し始めたらAnimNotifyが飛ばされ、移動速度が表示されるようにします。

  1. 詳細パネルのアニメーションステートにAnimNotifyの名前を入力します。
    f:id:pto8913:20201011222724p:plain

  2. イベントグラフでAnimNotifyイベントを作成します。
    f:id:pto8913:20201011223134p:plain

  3. テストしてみます。
    youtu.be
    期待通り、動き始めた瞬間に移動速度が表示されました。

目次に戻る

ステート離脱イベントからAnimNotifyを飛ばしてみる

今回は、移動し終わったらAnimNotifyが飛ばされ、移動速度が表示されるようにします。

  1. 詳細パネルのアニメーションステートにAnimNotifyの名前を入力します。
    f:id:pto8913:20201011224135p:plain

  2. イベントグラフでAnimNotifyイベントを作成します。
    f:id:pto8913:20201011223134p:plain

  3. テストしてみます。
    youtu.be
    期待通り、動き終わったら移動速度が表示されるようになりました。

目次に戻る

ステートブレンド完了イベントからAnimNotifyを飛ばしてみる

見た目には開始イベントとほぼ変わらないように思いますが全然違います。

  1. 詳細パネルのアニメーションステートにAnimNotifyの名前を入力します。
    f:id:pto8913:20201011230012p:plain

  2. イベントグラフでAnimNotifyイベントを作成します。
    f:id:pto8913:20201011223134p:plain

  3. テストしてみます。
    youtu.be
    わかりづらいですが待機状態から歩行状態へブレンドが完了したら移動速度が表示されています。

目次に戻る

トランジションイベントからAnimNotifyを飛ばす場合

AnimNotifyを飛ばしたいトランジションを選択します。
このとき詳細パネルの通知にAnimNotifyの名前を入力することでAnimNotifyを飛ばせます。
f:id:pto8913:20201011230923p:plain

やることはステートマシンの時と同じなので省略します。

おまけ : アニムグラフからキャラクターBPにAnimNotifyを飛ばす

下準備(BPインターフェースを作成)

  1. コンテンツブラウザを右クリック->ブループリント->ブループリントインターフェースから作成します。
    f:id:pto8913:20201011232009p:plain

  2. 関数を追加します。
    f:id:pto8913:20201011232103p:plain

やる

  1. AnimBPのイベントグラフ上でさっき作った関数を、AnimNotifyイベントから呼び出します。
    f:id:pto8913:20201011232335p:plain

  2. AnimNotifyを受け取りたいキャラクターBPにインターフェースを追加します。
    f:id:pto8913:20201011232544p:plain

  3. さっき作った関数をオーバーライドします。
    f:id:pto8913:20201011232931p:plain
    f:id:pto8913:20201011233030p:plain

  4. テストします。
    youtu.be
    動きだすたびに名前が表示されます。