Chapter 25

アニメーションを再生する方法(Animation Blueprint編)【UE5,UE4】

daichi_gamedev
daichi_gamedev
2021.11.18に更新

UE5で行いますがUE4でも同じようにできます。  

https://www.youtube.com/watch?v=eSYEkcXs5_c

はじめに

今回はAnimation Blueprint(アニメーションブループリント)を使用してアニメーションを再生する方法を解説していきたいと思います。AnimBPはUnrealEngineで最も基本的なアニメーション管理機能です。歩く、走る、ジャンプなどのアニメーションを実装したい時に向いています。AnimMontageで実装する方法もありますが、そちらは攻撃、アイテムを拾うなど一度きりのアニメーション再生に向いています。

キャラクターの準備

今回は、前回の記事(YouTube版はこちら)で用意したオリジナルのモデルを使用してアニメーションを追加、再生したりしていきたいと思います。もちろん他のモデルでも構いません。

AnimBPでのアニメーションを再生させる手順

ではまずは基本となるAnimBPでの実装手順を解説していきます。

①Idle(ぶらぶらする)アニメーションを再生する

最初にIdleアニメーションを再生させていきます。
コンテンツブラウザからAnimationBlueprintを作成します。

アニメーションさせたいスケルトンを選択してOKを選択します。

名前をAnimBP_Charaなどにします。

先にキャラクターのブループリントを開いてMeshコンポーネントを選択、今作成したAnimBPを適用しておきましょう。

AnimClassから作ったAnimBPを選択します。そしたらコンパイルしておきましょう。

では戻ってAnimBPを開くとAnimGraphが表示されます。OutputPoseという箇所が最終的に出力するアニメーションになります。

右クリックでnew stateと検索して

state machineとoutputposeをつなぐ。

statemachineを開きます。

次に右下に出ているアニメーションを確認します。ここにはこのAnimationBlueprintを作成した時に選択したスケルトンに紐づいているアニメーション、要するにこの3Dモデルで使用できるアニメーション一覧が表示されています。

この画像の場所にアニメーションが無い場合は、アニメーションをインポート、もしくはリターゲットする必要があります。リターゲット方法はこちら

では、今回は例としてIdleアニメーションを追加してます。今回はドラッグする方法で行います。

名前はIdleにしてEntryと繋げます。そしてコンパイルします。

キャラクターを確認してみるとIdleアニメーションが再生されているのがわかります。


Entry(スタート)→Idleアニメーション、そのステートマシンがOutPutPose(最終出力)に繋げているので再生されているといった状況になります。

②WalkとRunアニメーションを再生する

では次に歩くアニメーションと走るアニメーションを追加しようと思います。Idleステートから矢印(トランジションと言います)を伸ばしてAddStateを選択します。

名前をWalkAndRunにします。

さらに今度はWalkAndRunからIdleへトラジションを伸ばします。

Blend Spaceでアニメーションを自然に切り替える

WalkとRunは別々のステートにしてもよいのですが、より自然にアニメーションを再生させるためBlendSpaceというアニメーションを混ぜる機能を使用します。このBlendSpaceで歩くアニメーションと走るアニメーションを移動スピードに合わせて少しずつ変更させていきます。
ではコンテンツブラウザ右クリックでAnimation > Blend Spaceを作成します。

名前をBS_Chara_WalkAndRunにします。

開いて、以下の赤枠の部分を画像と同じように設定します。

次に下にあるブレンドする場所でまずはIdleアニメーションをドラッグして追加していって一番下に5つ配置します。次にWalkアニメーションを中央に配置、Runを上に配置します。

Shift + ドラッグで挙動を試しかめる事ができます。

SaveしたらAnimBPに戻って、WalkAndRunをダブルクリック。

ドラッグで先ほど作成したBlendSpaceを追加。繋げます。

変数を作成して以下のようにします。

EventGraphで以下のノードを作成します。

こちらでコピー&確認できます↓上の画像のように修正してください。

https://blueprintue.com/blueprint/sg-vtdv0/
次にステートマシンでトラジション遷移条件を決めます。ここをクリック。

以下のようにします。

下の遷移条件も同じく。

以下のようにします。

コンパイルします。
これでキャラがスピードと方向に合わせてWalkとRunアニメーションが再生されるようになりました。

③Jumpアニメーションを再生する

ステートマシンでJumpアニメーションを追加してトランジションを双方向に伸ばします。

遷移条件を変更します。

trueの箇所↓

falseの箇所↓

次に先ほど作成したEventGraphに落ちているかどうかを判定させるノードを追加します。

こちらでコピー&確認できます↓

https://blueprintue.com/blueprint/_mp51q3o/
コンパイルします。これでジャンプアニメーションが再生されるようになりました。

以上です。お疲れ様でした😌