視聴メモ「Animation ブループリントの使い方を学ぼう!」
今回のメモの範囲(Start ~ End)
※ 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レベル
3. サードパーソンのAnimationブループリント解説
3.1. Animationブループリント確認方法
- サードパーソンBPを表示する
- コンポーネントタブからMeshコンポーネントを選択する
- 詳細パネルのアニメーション項目のAnim ClassにAnimation BPが設定されている
- Anim Classの虫眼鏡をクリックするとコンテンツブラウザ上でAnimation BPファイルが選択される
- Animation BPをダブルクリックするとアニメーションエディタにAnimation BPが表示される
Animation BPはMeshコンポーネントのプロパティで設定されているのみで
サードパーソンBPに特別な処理は書かれていない
# UE4.14より前はアニメーションエディタは「ペルソナ」という名称だったらしい
# 名残でペルソナと表現されることもあるみたいなので覚えてくといいかも
3.2. アニメーションエディタ概要
- スケルトンエディタ
- スケルタルメッシュエディタ
- アニメーションエディタ
- アニメーションブループリントエディタ
- 物理エディタ
アニメーションブループリントエディタではアニメーションをプレビュー表示できる
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などの補正ノードを挟むことができる
3.5. ステートマシン
遷移ルールのトランジション項目の「双方向」はサポートされていない
双方向にしたい場合は、新たに逆方向の遷移ルールを追加する
Time Remainigノード・・・アニメーションの残り時間を判断し、遷移ルールの一部として使用可能
遷移ルールのブレンド設定の継続時間を適度な値に設定することで
次のアニメーションへのつなぎ目を自然に見せる(0にするとカクつく)
# 遷移ルールはトランジションルールともいう
4. Tips
4.1. ブレンドスペースノード
ブレンドスペースの作成方法は以下
Shiftキーを押しながらマウスを動かすとプレビューポイントを動かせる
アセット詳細パネルの水平軸項目からグリッドを調整可能
4.2. ボーン毎のレイヤーブレンドノード
ボーン毎に異なるアニメーションを設定したい場合に利用する
- アニメーショングラフにボーン毎のレイヤーブレンドノードを追加
- コンフィグ項目 -> Layer Setup -> インデックス[0] -> Branch filtersで追加を選択
- Branch filters -> インデックス[0] -> Bone Nameにフィルタリングするボーン名を指定
# 上半身と下半身で異なるアニメーションにするとか、銃を握ったまま走るという場合に利用する
4.3. アニメーションの通知
アニメーション再生ノードをダブルクリックするとアニメーションエディタが起動する
アニメーションエディタでアニメーションの任意のタイミングに通知を設定できる
通知のタイミングで音を鳴らしたりパーティクルを表示したりできる
4.4. 注視点(Look at)ノード
特定のボーンを指定の位置に向かせる
- アニメーショングラフに注視点ノードを追加
- ターゲット項目のLook at Locationで「ピンとして公開」を選択
- Look at Locationを変数化しておくとプレビューで値を指定できるようになるのでおススメ
- スケルタルコントロール項目のBone to Modifyから任意のボーンを選択
- ターゲット項目のLook at Targetから任意のボーンを選択
# Look at Targetが空だとプレビューには反映されるがゲームプレイに反映されなかった
# rootを指定したらゲームプレイにも反映された