AnimGraph

グラフを使用して Animation ブループリントでスケルタル メッシュに適用するポーズのサンプリング、ブレンド、操作をしてみましょう

Choose your operating system:

Windows

macOS

Linux

AnimGraph を使用して、現在のフレームに対するスケルタルメッシュの最終ポーズを評価します。デフォルトでは 各 Animation ブループリントには、AnimGraph があり、その中には アニメーション シーケンスのサンプリング、アニメーションのブレンド、 または SkeletalControl を使用したボーンのトランスフォームを制御する Animation ノード が配置されています。 結果として得られたポーズは、スケルタルメッシュの各フレームに適用されます。

AnimGraph

AnimGraph 内では、コードなど EventGraph などで計算した値を使用可能です。 これらをブレンドスペースや他のブレンド ノードへの入力値として使うことができます。もちろん、特別なブレンド処理をせずに、 直接アニメーション シーケンスをサンプリングすることも可能です。AnimGraph では、SkeletalControl を使って ボーンの位置、回転、スケールを直接修正することができます。

実行フロー

すべてのグラフには実行フローがあります。グラフのノードの実行ピンの間に、脈動するパルスリンクとして表示されます。ブループリントの EventGraph などの通常のグラフでは、このフローはイベントの発行に依存しているので 再生中に表示されます。AnimGraph の場合は、 イベントベースではなくフレームごとに評価されるので、常に実行フローを表示するいう点で異なります。

Blend - Alpha 0.0

AnimGraph では、実行フローは 1 つのノードから他のノードへポーズが渡されていることを表します。ただし ブレンド など、 複数のインプットを持ち、実行フローに現在関係している入力を内部で判断するノードもあります。こうした判断は通常、データピンへ渡された値など、 外部の入力に依存します。

以下のサンプルでは、上図と同じ Blend ノードが Alpha ピンの値に応じて 入力間で実行フローを切り替えています (値は手動で設定しています)。

Blend - Alpha 1.0

Alpha 1.0 とのブレンドの場合、入力 B を使用する

AnimGraph の操作

AnimGraph はノードグラフを評価することにより機能します。1 つ以上の入力ポーズに対して特定の操作を実行するノードもあれば、 アニメーション シーケンス、ブレンドスペース、Anim Montage などの他のタイプのアセットにアクセス またはこれらをサンプリングするために使用されるものもあります。独自のグラフ ネットワークを持つステートマシンは AnimGraph 内に存在可能であり、複数のステートマシンを合わせてブレンドして最終的な出力ポーズを作ることができます。 AnimGraph 内でどのように機能するかの情報については以下の各リンクをご覧ください。

スレッド セーフティ

AnimGraph のロジックは、[Class Defaults] にある [Use Multi-Threaded Animation Update] 設定を使ってワーカースレッドで実行することができます。これは、 マルチコア マシン上のゲームのパフォーマンスを大幅に向上させます。他の更新と平行してアニメーションの作業を完了させることが できるからです。

この設定が有効な場合 (デフォルトで有効)、AnimGraphで安全でないオペレーションが行われればコンパイラが警告します。一般的に 以下が安全なオペレーションです。

  • ほとんどの AnimGraph ノードの使用

  • Animation ブループリントのメンバー変数への直接アクセス (構造体のメンバーを含む)

  • ステートを修正しないブループリントの純粋関数の呼び出し (ほとんどの数学関数など)

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる