11001001 (C9)

UE4の勉強用覚え書きやお仕事、3DCG関連、雑記など書いていきます。

UE4 覚え書き アニメーションBPの作成・実行

下準備

コンテンツブラウザ内のスケルタルメッシュ(「SK_Mannequin」)を右クリック、メニューの中の「作成する」⇒「Anim ブループリント」を選択してキャラクターアニメーション用のBPを作成する。

アニメーションさせる対象の3Dモデルの設定。ここでは「Third Person Character」を流用して使用。

 f:id:uzupiyo:20180929162150p:plain

Animationタブ内の「Animation Mode」は「Use Animation Blueprint」のままでOK。

「Anim Class」は使用したいAnimブループリント(AnimBP)に変更する。

※Animブループリントを複数用意しておけば、ここを変更するだけでアニメーションパターンを変える事ができる。

 一つ下のMeshタブでは使用するスケルタルメッシュの変更もできそう。(多分)

 AnimBPの編集 

AnimBPの「アニムグラフ」内に以下のノードを作成する。

  • New State Machine 

f:id:uzupiyo:20180930011632p:plain※Anim State Machineに名前を変更してます。

このNew State Machineノードの中でモーションの切り替え条件の設定、どのモーションを使用するかなど指定できる。 ダブルクリックして中に入ると「Entry▶」というノードがあるので、そこにモーションのノードを配置して接続していく。

f:id:uzupiyo:20180930011938p:plain

モーション同士のつながりにはトランジションルールを設定する必要がある。上記の場合なら、キャラクターの移動速度が100を超えた場合、待機モーションから走りモーションへの移行するというルールになっている。

f:id:uzupiyo:20180930013431p:plain

トランジションルールを更に開いて、その中で条件を設定。

f:id:uzupiyo:20180930013948p:plain

キャラクターのスピード値が100を超えた場合、走りモーションを再生開始する。

ここでシレっと登場した「スピード値」は、また他のBPによって取得する必要がある。以下はキャラクターのスピード値と落下中(宙に浮いているか?)かの判定を取得し変数に代入するBPでイベントグラフ内に構築する。f:id:uzupiyo:20180930024919p:plain

  • Try Get Pawn Owner

でキャラクターの状態を取得できるようにする。

  • Cast To Character

この「Cast~」ノードでは正直具体的に何をしているのか不明ですが、キャラクターの情報を変数などで使用する際の宣言的なものなのかな?と勝手に想像してます。Unreal Engine | ブループリントでキャストする

  • Get Velocity (キャラクターの情報からベクトルの移動幅を取得)
  • VectorLengthSquared (ベクトル値をFloat型の移動幅(スピード値)に変換)
  • Is Falling (キャラクターが宙に浮いているか判定。True、Falseを返す)

 

キャラクター制御に関しては結構ややこしい・・・これは実際に何か作ってみて体で覚えた方が良さそうだ。