【UE4】スキル使用時等の複数のアニメーションを単一のステートで管理する方法
目次
はじめに
UE4にはアニメーションをステートマシンで遷移させる仕組みがありますが、この機能をそのまま使用して複数のアニメーションを管理しようとした場合、あっちこっちに遷移の線が伸びてしまって管理しにくくなります。
複数アニメーションを使用する場面は多々ありますが、これらをたった1つのステートで管理できる方法があります。
以下ではgyazoによる動画を貼っていますがデフォルトでループ再生にならないため、右クリックから「コントロールを表示」で手動で再び再生させる必要があります(ループにチェックを入れればなお良し)。
アニメーションシーケンスに渡すアニメーションを変数化
通常、ステート内にアニメーションステートを追加する場合、以下のようにアニメーションアセットをD&Dして追加すると思いますが(検索かけたり等とか)、
この時、ステート内の「再生◯◯」というノードに渡すアニメーションは変数化することが出来ます。
その方法は、まずステート内に移動し、「再生◯◯」ノードの詳細にある「(As pin) Sequence」にチェックを入れるだけです。
こうすることで再生させるアニメーションを直接指定させることが出来るようになりました。
あとはこのピンから線を伸ばして変数を作成します。
後は、プレイヤー等の外部から「何のアニメーションを再生させるか」を引数として持つ関数を作成して呼び出せるようにしておけば、ステートを複数作成しなくても単一のステートアニメーションとして動作させることが出来ます(型はAnimSequenceBase)。
どう使うか
私の場合は、事前にデータベース化しておいた各Perk(スキル)情報にPerk使用時に再生させたいアニメーションを格納しておき、使用時にアニメーションBPに情報を渡す、という手法をとっています。
これを、解釈が間違っていなければ「アフォーダンス指向」と呼ぶそうです。
以下のサイトの情報を参考にしました。
まとめ
以下のような複数のアニメーションを...
アフォーダンス指向でこんなにスッキリさせることが出来た!