キャラクターの アニメーション ブループリント の AnimGraph では、Blend ノード を使用して、複数のソース アニメーション ポーズをブレンドして、新しいアニメーション ポーズを作成することができます。

各ブレンド ノードでは、ノードの ポーズ入力ピン を使用して複数のアニメーション ポーズを入力し、ノードの 出力ポーズピン からアクセス可能なブレンドされたポーズを生成することができます。

一部の Blend ノードは、3 つ以上のアニメーション ポーズを受け入れてブレンドすることができます。こういったノードでは、AnimGraph でノードを 右クリック して、[Add Blend Pin (ブレンド ピンを追加)] を選択すると、ポーズ入力ピンをもう 1 つ追加することができます。

また、削除したい特定の入力ピンを 右クリック し、コンテキスト メニューから [Remove Blend Pin (ブレンド ピンを削除)] を選択すると、追加のポーズ入力ピンを削除することもできます。
Blend ノードを使用している場合、このくらいブレンドするかを アルファ値 でコントロールすることができます。Blend ノードのアルファ値を手動で割り当てるには、変数入力ノードを選択するか、Blend ノードの [Details (詳細)] パネルで Alpha プロパティを選択して値を入力します。また、AnimGraph でアルファ変数ノードをアルファ入力ピンに接続することで、Blend ノードの Alpha を割り当てることもできます。アルファ値が 0 の場合は、通常、プライマリ ポーズが優先され、1 の場合はセカンダリ ポーズが優先されます。

追加のアニメーション データを取り込むことができるより高度な Blend ノードを使用すると、プロジェクトで独自のアニメーション ブレンドを活用した成果物を作成することができます。このドキュメントでは、Unreal Engine でアニメーション ポーズのブレンドに使用できる Blend ノードのリファレンスを提供します。
ブレンド ノード
タイトルの色がグレーに分類されている標準のブレンド ノードは、ノード固有のパラメータに基づいて、アニメーション ポーズのシンプルなブレンドを実行します。以下は、AnimGraph でアニメーション ポーズをブレンドするためにプロジェクトで使用できる標準のブレンド ノードの参照リストです。
Apply Additive
Apply Additive ノードおよび Apply Mesh Space Additive ノードはいずれも、アルファ値に基づいてベースの通常アニメーション ポーズに加算ポーズを追加します。
ノードの入力ピンを使用して、Base ポーズと適用する Additive ポーズを接続することができます。
Apply Additive ノードは、 LOD しきい値システムの影響も受けます。Apply Additive と Apply Mesh Space Additive の [Details] パネルで、ブレンドが行われる LOD レベルのしきい値を調整することができます。
また、Make Dynamic Additive ノードを使用すると、加算アニメーション ポーズを減算的にブレンドすることができます。このノードを使用すると、ベース ポーズから加算ポーズを減算して出力ポーズを作成することができます。

Make Dynamic Additive ノードの [Details] パネルでは、このノードを メッシュ空間 で動作するように設定することもできます。
ブレンド
標準の Blend ノードは、2 つの入力ポーズの単純な組み合わせで、Alpha 入力ピンのアルファ値に基づいて、どちらの入力を優先されるかに関するウェイトを調整します。

A 入力ピンと B 入力ピンにアニメーション ポーズを接続し、Alpha ピンでこれらのポーズをどのくらいブレンドするかをコントロールすることができます。
Blend Bone by Channel
Blend Bone by Channel ブレンド ノードを使用すると、特定のブレンド トランスフォームを適用する個々のボーンを指定できます。

Blend Bone by Channel の [Details] パネルで、(+) 追加 を使用して [Bone Definitions (ボーン定義)] セクションを追加することができます。定義を作成したら、トランスフォーム データを取得するソース ボーンと、ブレンドを適用するターゲット ボーンを定義することができます。また、使用可能なプロパティを切り替えることで、平行移動、回転、スケール など、ブレンドに取り込みたいトランスフォームの要素を定義することもできます。さらに、ワールド空間、コンポーネント空間、親ボーン空間、ボーン空間 など、どの トランスフォーム空間 でトランスフォーム データを計算するかを定義することができます。
現在のアルファ値が、ブレンドのウェイトをコントロールします。
Blend Multi
Blend Multi ノードを使用すると、アルファ値の範囲内で 3 つ以上のブレンド ポーズをブレンドすることができます。

Blend Multi の [Details] パネルでは、Additive Node プロパティでノードが加算的に動作するように切り替えることもできます。
関数ブレンド ノード
タイトル カラーが緑に分類される関数ブレンド ノードは、ノード固有のパラメータに基づいて、アニメーション ポーズのより高度な計算ベースのブレンドを実行します。以下は、AnimGraph で複数のアニメーション ポーズをブレンドするためにプロジェクトで使用できる関数ベースのブレンド ノードの参照リストです。
Blend Poses by bool
Blend Poses by Bool ノードは、ブール値 をトリガーとして使用して、2 つのポーズを時間に基づいてブレンドします。ブール値が true の場合は、True Pose 入力ピンに接続されているポーズが使用されます。ブール値が false の場合は、False Pose が使用されます。各ポーズには、Blend Time という浮動小数点値があります。この値を使用して、そのポーズにブレンドするのにかかる時間をコントロールします。

[Details] パネルでは、Blend Time ピンの AnimGraph での表示/非表示を切り替えたり、遷移ブレンドのタイプ を設定することができます。
Blend Poses by int
Blend Poses by int ノードは、整数値をキーとして使用して、任意の数のポーズを時間に基づいてブレンドします。入力整数値それぞれに対して、その値の入力ピンに関連付けられたポーズが使用されます。たとえば、整数が 0 に設定されている場合、Blend Pose 0 に接続されているポーズが使用されます。各ポーズには、Blend Time という浮動小数点値があります。この値を使用して、そのポーズにブレンドするのにかかる時間をコントロールします。

[Details] パネルでは、Blend Time ピンの AnimGraph での表示/非表示を切り替えたり、遷移ブレンドのタイプ を設定することができます。
Blend Poses by Enumeration (Enum)
[Details] パネルでは、Blend Time ピンの AnimGraph での表示/非表示を切り替えることができます。また、Transition Type プロパティを Standard、 Inertialization) 、または Blend Type のいずれかに設定できます。また、各ポーズには、Blend Time という浮動小数点値があります。この値を使用して、そのポーズにブレンドするのにかかる時間をコントロールします。

[Details] パネルでは、Blend Time ピンの AnimGraph での表示/非表示を切り替えたり、遷移ブレンドのタイプ を設定することができます。
Layered blend per bone
Layered blend per bone ノードを使用すると、定義された一連のボーンに基づいて、任意の数の動的ブレンド ポーズをブレンドすることができます。

Layered blend per bone ノードの [Details] パネルでは、ブレンド モードを Branch Filter または Blend Mask として定義することができます。

Mesh Space Rotation Blend および Mesh Space Scale Blend プロパティを有効にして、回転 と スケール のブレンドが メッシュ空間 で行われるか、ローカル空間 で行われるかをコントロールすることができます。
Curve Blend Options プロパティで、カーブ ブレンド動作を設定リストから設定し、アニメーション レイヤーをどのようにブレンドするかをコントロールすることができます。次は、使用可能な Curve Blend Options のリファレンスです。

ブレンド オプション | 説明 |
---|---|
Override | 有効なカーブ値を含む最後のポーズに対してポーズをオーバーライドします。 |
Do Not Override | ポーズをオーバーライドしません。必要な前のポーズにカーブ値がない場合に最適です。 |
Normalize by Weight | すべてのブレンド ウェイトの 合計 によってポーズのブレンドを正規化します。 |
Blend by Weight | 正規化 しないで ブレンド ウェイトでポーズをブレンドします。 |
Use Base Pose | すべてのカーブ値で ベース ポーズ を使用します。 |
Use Min Value | 接続されたすべてのポーズから 最も高い カーブ値を選択して、これを使用してブレンドします。 |
Use Max Value | 接続されたすべてのポーズから 最も低い カーブ値を選択して、これを使用してブレンドします。 |
Blend Root Motion Based on Root Bone プロパティを有効にして、 ルート モーション のブレンドで ルート ボーン のボーンごとのブレンド ウェイトを組み込むことができます。
Branch Filter
Branch Filter オプションで、ブレンドが影響するボーンの インデックス を定義できます。

要素を Branch Filters プロパティに追加すると、参照ポイントとして使用する ボーン名 としてボーンを入力し、ローカライズされたアニメーションのブレンドをコントロールすることができます。Blend Depth プロパティを使用して、ボーン名 の子ボーンでブレンドのウェイトをコントロールすることができます。
値 | 例 | 説明 |
---|---|---|
Positive | ![]() |
正の Blend Depth 値は、同じ数のボーンでウェイトをオフセットし、ボーン名 のチェーンでウェイトをテーパーします。たとえば、Blend Depth を 2 にすると、ブレンド ウェイト 1 が次の子ボーンに適用され、ブレンド ウェイト 0.5 が ボーン名 に適用されます。 |
Zero | ![]() |
Blend Depth を 0 にすると、ブレンド ウェイト 1 が ボーン名 および接続されたすべての子ボーンに適用されます。 |
Negative | ![]() |
負の Blend Depth 値はすべての ブレンド ポーズ を無効にして ベース ポーズ を優先します。-1 より小さい値は、同じ数のボーンでウェイトをオフセットし、ボーン名 のチェーンで無効になったブレンド ウェイトをテーパーします。たとえば、Blend Depth を -2 にすると、ブレンド ウェイト -1 が次の子ボーンに適用され、ブレンド ウェイト -0.5 が ボーン名 に適用されます。 |
Blend Mask
Blend Mask オプションで、キャラクターの ブレンド マスク を参照ポイントとして定義して、ベース ポーズ と ブレンド ポーズ 間のブレンドをコントロールすることができます。

Inertialization
慣性ブレンド は、従来のアニメーション クロスフェードに代わる高性能な処理であり、ポストプロセスとして自然な遷移を生み出します。慣性ブレンドを有効にすると、ソース ポーズはまったく評価されなくなります。一方、従来のブレンド方法では、遷移中はソース ポーズとターゲット ポーズの両方を評価して、2 つがブレンドされたポーズを作成します。

慣性ブレンドを使用するには、AnimGraph で、慣性的にブレンドさせたいソース アニメーション ブレンドの後にInertialization ノードを追加します。

Inertialization ノードは、慣性ブレンドが有効な場合、ターゲット アニメーションに向けて動きを継続するために、ポーズ モーションとカーブの変化を追跡します。このノードは、入力ポーズ ピンに接続された任意の 慣性ブレンドリクエスト によって有効になります。ステート マシンの遷移 、 Blend ノード 、Linked Anim Graph および Linked Anim Layer はいずれも、慣性ブレンドをトリガーできます。
Inertialization ノードは、慣性ブレンド リクエストのソースの後に接続する必要があります。ただし、ソースのすぐ隣に配置する必要はありません。Inertialization ノードを Output Pose ノードのより近くで保持することで、グラフから標準のブレンドが削減または排除され、パフォーマンスを向上できます。AnimGraph に Inertialization リクエストが含まれているものの、Inertialization ノードが配置されていない場合は、[Message Log (メッセージ ログ)] パネルにランタイム エラーが記録されます。

1 つの Inertialization ノードで多数の慣性ブレンド リクエストを処理できます。最小のリクエストされたブレンド時間が使用されます。
慣性ブレンドを考慮してアニメーションとグラフを作成する際は、出力アニメーションがまだ動いているときに遷移を開始することをお勧めします。慣性ブレンドによってスムーズかつ自然に停止位置への遷移が処理されるため、ニュートラルなポーズに戻る必要はありません。慣性ブレンドは、ターゲット アニメーションにモーションをイージングする ポストプロセス であるため、短いブレンドが最もよく機能します。慣性ブレンドは別の慣性ブレンドによって中断される場合がありますが、継続的な中断が発生するシナリオは避けるようにします。ポーズを安定した状態に保つために、後続のブレンド時間が削減される可能性があるからです。
必要に応じて、グラフに複数の Inertialization を配置することができます。それぞれのノードが、ソース ポーズからの慣性ブレンド リクエストを処理します。これは、さまざまな空間で慣性ブレンドを実行できることを意味します。たとえば、キャラクターの上半身と下半身に個別の Inertialization ノードを用意して、その後に Layered Blend per boneノードを配置し、それらを最終ポーズに接合するとします。ベース ポーズに適用する前に Inertialization ノードを挿入することで、慣性ブレンドを加算ポーズと一緒に使用することができます。最終ポーズの準備では通常、IK の前に慣性化を実行することで、実質的に、IK 空間で慣性ブレンドを行います。
慣性ブレンドが始まると、ソース ポーズの評価が停止します。結果として、ソース アニメーション シーケンス からの アニメーション通知 は慣性ブレンドの開始後はトリガーされません。既存のゲーム ロジックとアニメーション通知を慣性化に対応させるには、リファクタリングが必要な場合があります。
Blend ノードからのリクエスト
慣性化対応ノードの [Details] パネルでは、Transition Type プロパティを Inertialization に設定することができます。慣性ブレンドを使用するには、アニメーション グラフで、Inertialization ノードが Blend ノードの後の任意の場所に配置されている必要があります。

ステート マシン遷移からのリクエスト
慣性ブレンドのリクエストは、 ステート マシン から行うことができます。トランジション ルール の [Details] パネルでは、Blend Logic プロパティを Inertialization に設定することができます。

Linked AnimGraph および Layered AnimGraph からのリクエスト
慣性化プロパティは、 アニメーション レイヤー または Linked Anim Graph からも定義することができます。[My Blueprints (マイ ブループリント)] パネルでグラフを選択すると、[Details] パネルにプロパティの [Graph Blending (グラフ ブレンド)] セクションが表示されます。アニメーション レイヤーはブレンド イン またはブレンド アウト を行うことができますが、それには 慣性ブレンド が必要です。Inertialization ノードを、このアニメーション ブループリントにリンクする Linked Anim Layer ノードの後の任意の場所に配置する必要があります。負の値は、ブレンド時間が他の入力または出力アニメーション レイヤーによって決定されることを表します。
