このチュートリアルでは、アニメーションの入門としてブループリントクラスをループアニメーションさせてみます。アニメーションする方法は様々ですが、Timelineノードを用いると時間軸に沿ったカーブで動きを制御できるので制御しやすく、Easeノードとの併用で加減速のモーションも容易に作成できます。

クラスの作成

Actorを継承したブループリントクラスを作成します。名前は「BP_Sphere」としましょう。

  1. 新規作成
  2. ブループリントクラスを選択
  3. Actorクラスを選択
  4. 作成したクラスの名前を「BP_Sphere」に変更
メッシュと変数の作成

作成した「BP_Sphere」内に、球体メッシュコンポーネントと変数を追加します。この変数は後にアニメーションのタイミングを変更するために使用します。

  1. ビューポートを選択
  2. コンポートネントに球体を追加
  3. 変数「Offset」を追加
  4. OffsetのタイプをFloatに変更
  5. Offsetの「インスタンス編集可能」をONに設定
  6. Offsetの「スポーン時に公開」をONに設定
ブループリントの構築

球体を上下にアニメーションするブループリントを構成します。タイムラインのループ機能とEaseノードを組み合わせて、等速運動を加減速のある動きに変換しているのがポイントです。

  1. イベントグラフに切り替え
  2. タイムラインを追加し編集する
  3. 変数Offsetを利用してタイムラインの開始時間を変更
  4. Easeを使用して加減速する数値を生成
  5. 球体の位置を設定

(3)ではタイムラインの開始時間をずらしているのですが、タイムラインの全体の時間以上ずれないように余の計算をしてループ処理をしています。

タイムラインノードについて

タイムラインは時間に合わせて数値を出力するノードでアニメーションやタイミング制御などに活用できます。タイムラインノードをダブルクリックすると設定パネルが開きます。この作例では4秒でループする0から1への往復アニメーションを作成しています。

  1. タイムラインを開く
  2. Float型の変数を追加
  3. 全体の時間の長さを設定(作例では4秒)
  4. 「ループ」をONに設定
  5. Float型の変数名を「Rate」に変更
  6. キーを追加「0秒に0」
  7. キーを追加「2秒に1」
  8. キーを追加「4秒に0」
Easeノードについて

等速で変化する値に緩急をつけることができるノードです。様々なイーズタイプが設定可能で、加減速のあるアニメーションに活用ができます。

Easingの詳しい解説に関しては下記ページがとても参考になります。
[UE4] 動きに緩急をつけるEaseノードの紹介

個人的におすすめの設定は「Ease in Out」。Blend Expの値を調整して緩急のかかり具合を変更できるからです。

確認

ブループリントが正しく動作するか試してみましょう。作成した「BP_Sphere」クラスをレベルに配置して実行してみてください。球体が上下にループアニメーションしていたら成功です。

これでこのチュートリアルは完了です。とてもシンプルな仕組みですがブループリントを使ってアニメーションを作っていく際の基本的なアプローチの一つになるのではないかと思います。

現在、このチュートリアルの続編を執筆中です。続編では下のムービーのように、今回作ったクラスをブループリントで複数スポーンしてアニメーションを作成してみます。(自力でできる方はチャレンジしてみてください。)

クリップボードにコピーされました。Unreal Engineにてペースト可能です。
メニュー