今日からまたいつも通りにUE4の機能について解説していきたいと思います。
今回解説するのはアニメーションシステムの中にある機能のひとつであるブレンドスペースについてです。
アニメーションシステムに関しては以前にも解説しているので、そちらもあわせてどうぞ。
UE4の簡単なアニメーションシステム解説 - Let's Enjoy Unreal Engine
ブレンドスペースとは?
ブレンドスペースは簡単に言えば、複数のアニメーションを補間して簡単にひとつのアニメーションとして使えるようになる機能です。アニメーションさえ用意していれば誰でも簡単に使うことができます。まずはちょっと作ってみましょう。
コンテンツブラウザーからNewのボタンを押すか特定のフォルダーの中で右クリックしてBlendSpaceアセットを作成しましょう。今回はBlendSpace1Dという名前のアセットを選択します。
このあとに適用したいスケルトンを選択します。このスケルトンのアセットは事前にインポートしておく必要がありますので、注意してください。
そうするとコンテンツブラウザー上にBlendSpace1Dのアセットファイルができていると思いますので、これをダブルクリックして開きましょう!
ブレンドスペース内にアニメーションを配置する
ブレンドスペースを開いた時点だとこのような画面になっています。
"Display editor vertically"となっているチェックボックスにチェックをいれるとブレンドスペースの空間情報が縦になります。これはお好みで変更してください。それでは実際にアニメーションを配置していきましょう。
ブレンドスペースを選択した状態で他のアニメーションアセットをクリックして、その状態で画像のようにドラッグ&ドロップ操作をしてください。これでブレンドスペース内にアニメーションが配置できました。
今回は待機、歩く、走るの3つのアニメーションを配置します。同様の操作を繰り返して3つのアニメーションを配置しましょう。配置したアニメーションは黒丸になっているので、それをクリックすることにより数値を手入力したり、削除したりできます。
適当に3つ配置したら画像の矢印のようにマウスを動かしてみてください。それぞれのアニメーションがうまくブレンドされて自然に流れるようになっていると思います。これでブレンドスペースの配置はOKです。
あとはX Axis Labelというところにわかりやすい名前をつけてそのすぐ下、"Apply Parameter Change"で適用させてください。今回はSpeedという名前に変更しました。
ブレンドスペースアニメーションをAnim Graphに配置
以前に解説しておいたステートマシンについてを参考にしながら、ブレンドスペースアニメーションをAnim Graph上に配置します。
UE4でアニメーションブループリントを使ってステートマシンを組む - Let's Enjoy Unreal Engine
このSpeedという値はEvent Graphの中のUpdate Animationから毎フレームごとに呼び出されて設定しています。ブループリント上で移動量を取得して、移動速度として保存した値をそのままブレンドスペースアニメーションに渡して、最終結果としてFinal Animation Poseにノードを繋げます。
これによって3つのアニメーションがSpeedという変数の値に応じて自動で切り替わり、それぞれがブレンドして綺麗に流れているのが確認できるようになりました!ここにステートの切り替えは必要なく簡単にアニメーションの切り替えが行なわれるようになりました。
他の使い方にも…
当然ブレンドスペースはもっと様々な使い方が存在しており、このような走りアニメーションだけではなく、FPSやTPSなどで銃をエイミングさせたい場合は上向き、下向き、中向きの3つの1フレームアニメをそれぞれ配置させれば、あとはエイム角度を渡してあげるだけで簡単にエイミングアニメーションのできあがりです。
ここらへんの具体的な使い方はエピックが用意したサンプルのContent ExamplesやShooter Gameにも参考になる部分が沢山ありますので、ぜひ一度参考にしてみてください。