学習ノート

学習者ゆえ、記事の内容は間違っていることもあります。ご了承ください。

視聴メモ「Animation ブループリントの使い方を学ぼう!」

今回のメモの範囲(Start ~ End)


www.youtube.com

UE4(4.25.0)の初心者向け動画を視聴して、UE5(5.0.0早期アクセス)の学習をします

※ 全内容のメモではありません 学習者は元動画の視聴を強くお勧めします

※ 略記 UE = Unreal Engine , BP = Blueprint

 Agenda

 

1. UEのアニメーション機能について 基本編

下記のそれぞれのアセットで管理される

  • Skeletal Mesh・・・3DCGモデル
  • Skeleton・・・ボーン(骨)
  • Animation Sequence・・・アニメーション

 

Skeletonが中心になってSkeletal Mesh、Animation Sequenceと結びつく

AnimationブループリントもSkeletonと結びつく

 

2. Animationブループリントについて

  • イベントグラフ
  • アニメーショングラフ(AnimGraph)
  • ステートマシン

 

以下、参考資料

機能別サンプル Maps/Animationレベル

docs.unrealengine.com

www.slideshare.net

 

3. サードパーソンのAnimationブループリント解説

3.1. Animationブループリント確認方法

  1. サードパーソンBPを表示する
  2. コンポーネントタブからMeshコンポーネントを選択する
  3. 詳細パネルのアニメーション項目のAnim ClassにAnimation BPが設定されている
  4. Anim Classの虫眼鏡をクリックするとコンテンツブラウザ上でAnimation BPファイルが選択される
  5. Animation BPをダブルクリックするとアニメーションエディタにAnimation BPが表示される

Animation BPはMeshコンポーネントのプロパティで設定されているのみで

サードパーソンBPに特別な処理は書かれていない

 

# UE4.14より前はアニメーションエディタは「ペルソナ」という名称だったらしい

# 名残でペルソナと表現されることもあるみたいなので覚えてくといいかも

 

3.2. アニメーションエディタ概要

  • ケルトンエディタ
  • スケルタルメッシュエディタ
  • アニメーションエディタ
  • アニメーションブループリントエディタ
  • 物理エディタ

 

docs.unrealengine.com

 

アニメーションブループリントエディタではアニメーションをプレビュー表示できる

 

3.3. イベントグラフ

3.3.1. イベントBlueprint Update Animationノード

Animation BPには、イベントBlueprint Update Animationノードが配置されている

Tickと同様なタイミングで起動するが、Animationを停止させたときは起動しない

 

3.3.2. Try Get Pawn Ownerノード

サードパーソンキャラクターBPの情報を取得する

サードパーソンキャラクターの今の状況を元に、後続の処理を行う

 

サードパーソンキャラクターの情報を取得できなかった場合に

エラーにならないようにisValidノードで情報の有無をチェックしている

 

# ゲームを実行していないときはサードパーソンキャラクターの情報は取得できない

# ゲーム実行中は基本的に取得できない状況はないはずだが予想外のエラーに備えてチェックしておく

 

3.3.3. Get Movement Componentノード

Try Get Pawn Onwerノードの戻り値(サードパーソンキャラクターBPの情報)から

Get Movement Componentの情報を取得する

 

空中にいるかどうかの情報を取得したい場合、さらにisFallingノードをリンクする

 

3.3.4. Get Velocityノード

キャラクターが移動している「速さ=Velocity」を取得する(ベクトルの向きと長さ)

ベクトルの長さ(速度)を取得したい場合、さらにVectorLengthノードをリンクする

 

3.4. アニメーショングラフ(AnimGraph)

出力ポーズは最終的な結果

IKなどの補正ノードを挟むことができる

 

docs.unrealengine.com

 

3.5. ステートマシン

遷移ルールのトランジション項目の「双方向」はサポートされていない

双方向にしたい場合は、新たに逆方向の遷移ルールを追加する

 

Time Remainigノード・・・アニメーションの残り時間を判断し、遷移ルールの一部として使用可能

 

docs.unrealengine.com

 

遷移ルールのブレンド設定の継続時間を適度な値に設定することで

次のアニメーションへのつなぎ目を自然に見せる(0にするとカクつく)

 

# 遷移ルールはトランジションルールともいう

 

4. Tips

4.1. ブレンドスペースノード

ブレンドスペースの作成方法は以下

  1. スケルタルメッシュアセットまたはスケルトンアセットを右クリック
  2. 作成する -> ブレンドスペースまたはブレンドスペース1Dを選択
  3. アセットブラウザからアセットをドラッグ&ドロップで追加する

 

Shiftキーを押しながらマウスを動かすとプレビューポイントを動かせる

アセット詳細パネルの水平軸項目からグリッドを調整可能

 

4.2. ボーン毎のレイヤーブレンドノード

ボーン毎に異なるアニメーションを設定したい場合に利用する

  1. アニメーショングラフにボーン毎のレイヤーブレンドノードを追加
  2. コンフィグ項目 -> Layer Setup -> インデックス[0] -> Branch filtersで追加を選択
  3. Branch filters -> インデックス[0] -> Bone Nameにフィルタリングするボーン名を指定

# 上半身と下半身で異なるアニメーションにするとか、銃を握ったまま走るという場合に利用する

 

4.3. アニメーションの通知

アニメーション再生ノードをダブルクリックするとアニメーションエディタが起動する

アニメーションエディタでアニメーションの任意のタイミングに通知を設定できる

通知のタイミングで音を鳴らしたりパーティクルを表示したりできる

 

4.4. 注視点(Look at)ノード

特定のボーンを指定の位置に向かせる

  1. アニメーショングラフに注視点ノードを追加
  2. ターゲット項目のLook at Locationで「ピンとして公開」を選択
  3. Look at Locationを変数化しておくとプレビューで値を指定できるようになるのでおススメ
  4. スケルタルコントロール項目のBone to Modifyから任意のボーンを選択
  5. ターゲット項目のLook at Targetから任意のボーンを選択

# Look at Targetが空だとプレビューには反映されるがゲームプレイに反映されなかった

# rootを指定したらゲームプレイにも反映された