アニメーション変数を取得する方法

アニメーション ブループリントのイベント グラフとスレッドセーフ関数でキャラクターをアニメーション化するためにアニメーション変数を取得する方法を説明します。

Choose your operating system:

Windows

macOS

Linux

Unreal Engine でキャラクターの アニメーション ブループリント の開発時に、アニメーションの動作の制御に動的な動きと移動 変数 を実装すると、便利な場合があります。

このドキュメントでは、EventGraph アニメーション ブループリント ロジックを設定して、自分のプロジェクトでこれらの変数を計算する方法について説明します。さらに、このドキュメントでは、property access ノードを使用してプロジェクトのパフォーマンスと安定性を向上させて、スレッドセーフブループリント関数 でこのような変数を計算する方法についても説明します。

前提条件

  • [移動コンポーネント](understanding-the-basics\components\movement-components)
    による制御可能なサード パーソン キャラクター。

必要に応じて、

[「Third-Person」テンプレート プロジェクト](understanding-the-basics\projects-templates\third-person-template)
で、この要件を補足することができます。

キャラクター オブジェクトの参照

ほとんどのアニメーション変数は、EventGraph でキャラクターの

[移動コンポーネント](understanding-the-basics\components\movement-components)
を使用して計算することができます。キャラクターの移動コンポーネントを使用して他のアニメーション変数を計算するには、参照変数を作成する必要があります。

最初に、キャラクターのアニメーション ブループリントの イベントグラフ で、Event Blueprint Initialization Animation ノードを作成します。

event blueprint initialize animation amination blueprint event graph node

Event Initialization ノードから、キャラクターのブループリントにアニメーション ブループリントをキャストする Cast ノードを作成します。

ワークフローの例では、キャラクターのブループリントは、「Third Person」テンプレート プロジェクトにある BP_ThirdPersonCharacter です。

次に、Get Owning Actor ノードを作成して、Return Value 出力ピンを Cast ノードの Object 入力ピンに接続します。

cast event graph animation blueprint node cast to third person character blueprint

次に、キャスト ノードの As Character 出力ピンを 右クリック して、コンテキスト メニューから Promote to Variable オプションを選択し、キャラクター オブジェクトの参照変数を作成します。

ロジックの接続後、ブループリントの EventGraphAnimGraphキャラクター オブジェクト の参照変数にアクセス可能になります。

set character reference variable with cast to third person blueprint animation blueprint node event graph

移動コンポーネントの参照

キャラクター オブジェクト からキャラクターの 移動コンポーネント を分離するには、Get Character Movement ノードが必要です。Set Character 変数ノードの Character 出力ピンから、Get Character Movement ノードを作成します。

get character movement by create a get character movement node from the character reference node

次に、変数に対して Character Movement 出力ピンを 右クリック して、コンテキスト メニューから Promote to variable を選択し、移動コンポーネントの参照変数を作成します。

set character movement component reference variable in event graph

ロジックの接続後、ブループリントの EventGraphAnimGraphキャラクターの移動コンポーネント の参照変数にアクセス可能になります。

full character reference and movement component reference animation blueprint event graph

速度

方向やスピードが必要なアニメーションの計算時に、キャラクターの速度は、使用すると便利な値になる場合があります。

EventGraph で速度変数を作成するには、最初に Event Blueprint Update Animation ノードを作成します。

次に、移動コンポーネント の参照変数を EventGraph に追加します。次に、Get Velocity ノードを使用して、移動コンポーネントの方向と移動のマグニチュードを表すベクター値を計算することができます。

create a get velocity node from the movemnt component reference variable

次に、Get VelocityVelocity 出力を 右クリック して、コンテキスト メニューから Promote to Variable オプションを選択し、速度変数を作成します。

ロジックの接続後、ブループリントの EventGraphAnimGraph速度 変数にアクセス可能になります。

full velocity reference variable in event graph

ここで、Print String ノードが、キャラクターの速度の更新された X 値、Y 値および Z 値でフレームごとにデバッグ メッセージを送信します。

velocity print string demo

スレッドセーフ

最初に、キャラクターのアニメーション ブループリントで新しいスレッド セーフ関数を作成します。

次に、グラフを 右クリック して property access ノードを作成します。

property access ノードのドロップダウン メニューから関数 Try Get Pawn Owner > Get Movement Component > Velocity を選択します。次に、ベクターの出力ピンを右クリックして、Promote to Variable を選択し、速度変数を作成します。

velocity get property access context menu

ロジックの接続後、ブループリントの EventGraphAnimGraph速度 変数にアクセス可能になります。

velocity thread safe graph full function

この関数をプロジェクトのランタイム時に更新するには、スレッド セーフの Velocity 関数を Blueprint Thread Safe Update Animation グラフに追加します。

add the velocity thread safe function to the blueprint thread safe update function

キャラクターのアニメーション ブループリントは、キャラクターの速度をスレッド セーフで計算するようになりました。

Character Speed

走っている状態または歩いている状態など、キャラクターのスピードに基づいてアニメーションを選択する際に、キャラクターの移動のスピード変数を使用すると便利な場合があります。

Vector Length XY ノードを速度変数から作成して、キャラクターのスピードを移動コンポーネントの速度と分離できます。

次に、Vector Length XY ノードの Return Value 出力ピンを 右クリック して、コンテキスト メニューから Promote to Variable を選択します。

create a vectory xy node to isolate speed from the variable function

ロジックの接続後、ブループリントの EventGraphAnimGraphスピード 変数にアクセス可能になります。

ここで、Print String ノードが、キャラクターのスピードの更新された値でフレームごとにデバッグ メッセージを送信します。

print string debug displaying character speed demo

スレッドセーフ

最初に、キャラクターのアニメーション ブループリントで新しいスレッド セーフ関数を作成します。

次に、property access ノードを作成して、ドロップダウン メニューから関数 Try Get Pawn Owner > Movement Component > Velocity を選択します。

property access ノードの出力から、Vector Length XY ノードを作成して、前方向の動きと横方向の動き (X 軸と Y 軸) を抽出します。

thread safe function to get speed of character

この関数をプロジェクトのランタイム時に更新するには、スレッド セーフの Speed 関数を Blueprint Thread Safe Update Animation グラフに追加します。

add thread safe speed function to the blueprint thread safe update function

キャラクターのアニメーション ブループリントは、キャラクターの速度をスレッド セーフで計算するようになりました。

移動のしきい値

キャラクターの移動がアニメーションの再生をトリガーするタイミングを制御するには、キャラクターのスピードが設定したマグニチュードに達した際に移動を許可する、移動のしきい値変数を作成します。

EventGraph のキャラクターのスピード変数から、Greater Than or Equal To (>=) ノードを作成して値を低い数値に設定します。

0.1 など、非常に小さな値になることがあります。

Greater Than or Equal To (>=) ノードのブール型出力ピンを 右クリック して、コンテキスト メニューから Promote to Variable を選択します。

add a greater than or equal to node to set the min movement that will allow animations to update

ロジックの接続後、アニメーション ブループリントの EventGraphAnimGraph 移動のしきい値 変数にアクセス可能になります。

ここで、Print String ノードが、キャラクターの移動のしきい値変数の更新された状態でフレームごとにデバッグ メッセージを送信します。

should move debug text demo

スレッドセーフ

最初に、キャラクターのアニメーション ブループリントで新しいスレッド セーフ関数を作成します。

スレッド セーフ グラフに property access ノードを作成して、ノードを Try Get Pawn Owner > Movement Component > Velocity に設定します。Vector Length XY 関数ノードで前方向の動きと横方向の移動を抽出します。

次に、Greater Than or Equal To (>=) ノードで、スピードのしきい値を設定して移動のアニメーションが発生しないようにします。

0.1 など、非常に小さな値になることがあります。

次に、Greater Than or Equal To (>=) ノードのブール型出力ピンを 右クリック して、コンテキスト メニューから Promote to Variable を選択します。

should move thread safe funtion

この関数をプロジェクトのランタイム時に更新するには、スレッド セーフの Should Move 関数を Blueprint Thread Safe Update Animation グラフに追加します。

add the should move thread safe function to the blueprint thread safe update function

キャラクターのアニメーション ブループリントは、キャラクターの移動のしきい値変数をスレッド セーフ関数で計算するようになりました。

ジャンプと落下

ジャンプと落下変数を使用して、キャラクターの AnimGraph でジャンプと着地アニメーションを再生するタイミングを決定できます。

最初に、移動コンポーネント 変数をアニメーション ブループリントの EventGraph に作成します。

これで、IsFalling 関数ノードを 移動コンポーネント 参照変数ノードから作成できます。

Is Falling ノードの Return Value 出力ピンを 右クリック して、コンテキスト メニューから Promote to Variable を選択します。

add a greater than or equal to node to determine

ロジックの接続後、アニメーション ブループリントの EventGraphAnimGraphジャンプと落下 変数にアクセス可能になります。

ここで、Print String ノードが、キャラクターのジャンプと落下変数の更新された状態でフレームごとにデバッグ メッセージを送信します。

should move debug text demo

スレッドセーフ

最初に、キャラクターのアニメーション ブループリントで新しいスレッド セーフ関数を作成します。

property access ノードを作成して、ノードを Try Get Pawn Owner > Get Movement Component > IsFalling に設定します。

property access ノードの出力ピンを 右クリック して、コンテキスト メニューから Promote to Variable オプションを選択します。

blueprint thread safe function is falling

この関数をプロジェクトのランタイム時に更新するには、スレッド セーフの Is Falling 関数を Blueprint Thread Safe Update Animation グラフに追加します。

add the thread safe is falling function to the blueprint thread safe update function

キャラクターのアニメーション ブループリントは、キャラクターのジャンプと落下状態変数をスレッド セーフ関数で計算するようになりました。

EventGraph リファレンス

ここで、完全な Event Blueprint Update Animation ロジックをワークフロー例で使用される EventGraph で参照することができます。

full update function on event graph