キャラクターのアニメーションを「待機」、「歩き」、「ジャンプ」と切り替えていくにあたり、ステートマシーン内で色々とアニメーション遷移の条件を書くより、ブレンドポーズでキャラクターの状態別にアニメーションステートを切り替える方がシンプルで分かり易いのではないかと、思い立ちました。

 

※画像はクリックで拡大できます

 

ステートマシーン内でアニメーション遷移を記述する場合

 

ステートマシーン
ステートマシーン内でアニメーション事にステート配置
ステート内のアニメーションに作成したブレンドスペースを使用
ステートの遷移条件

 

ステートマシーン内でアニメーション遷移を記述して行く場合は、階層が深くなりがちで、モーションブレンドさせる場合は遷移事にブレンドスペースを作成する必要があると思ってます。

遷移条件の行き帰りの記述や確認も、中に入って確認する手間があります。そんな手間じゃないでしょうけど・・・・(汗

ブレンドスペースでアニメーション個別に細かい調整をかけたり、アニメーション遷移の条件を個別に記述していきたい場合はこっちの方が良いのかなぁと・・・・

 

ブレンドポーズの場合

 

ブレンドポーズと各ステートマシーン
ステートマシーン内のステート
ステート内にアニメーション配置

 

アニメーションの遷移条件は、キャラクターの状態を現す変数値のみというシンプルな作りにまとまります。

ブレンドスペースを作ることなく、各アニメーション間をブレンドしてくれるのも有りがたいです。

 

ブレンドポーズの懸念点

 

「 UE4 ANSWERHUB」にこちらのような投稿があります。

ー ブレンドポーズの切り替えによる再アニメーション ー

アニメーションがループで無い場合、アニメーションフレームが初期化されないようです。

一度再生したアニメーションをもう一度再生すると、アニメーションの最後から開始されてしまい動かない状態になるみたいです(UE4.9時点)。

しかしアニメーションをループにして、前回の記事でも書いた「アニメーションの通知」をアニメーションの最後に追加して、通知を受けたらブレンドポーズのアニメーションを変える方法であれば、問題無くアニメーションフレームは初期化されているようです。

とりあえず現状は便利だなぁと思いました!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です