Blend ノード

一連の条件に基づいて複数のアニメーションをブレンドするアニメーション ノードです。

Choose your operating system:

Windows

macOS

Linux

Blend ノード は複数のアニメーションをブレンドするために使用されます。このノードは、アニメーション ブループリントの アニメーション グラフ にのみ配置することができます。各 Blend ノードは、複数のポーズと、アルファ (重み値) を受け取ります。このアルファは、最終的な出力における各ポーズの重みを計算するために使用されます。Blend ノードの中には、より複雑で、追加データを入力する必要があるものもあります。

Apply Additive

Apply Additive ノードおよび Apply Mesh Space Additive ノードはいずれも、アルファ値に基づいてベースの通常アニメーション ポーズに加算ポーズを追加します。

ApplyAdditive.png

ピン

説明

入力ピン

Base

ベースとして使用する通常のポーズ。

Additive

上にブレンドする加算ポーズ。

Alpha

アルファ値として使用するための [0.0, 1.0] の範囲の浮動小数点値です。これにより、加算ポーズが与える影響の度合いが決定されます。0.0 という値は、 Additive ポーズが Base 入力ポーズにまったく追加されません。値 1.0 を指定すると、 Additive ポーズが Base 入力ポーズに完全に追加されます。

出力ピン

Pose

ブレンディング適用後の最終ポーズです。

受けます。 Apply Additive ノードは 4.11 で導入された LOD Threshold システムの影響も受けます。この設定は Apply Additive ノードの [Details (詳細)] パネルにあります。

perf.png

プロパティ

説明

LOD Threshold

このノードで実行が認められている最高 LOD (Level of Detail) です。例えば、LOD Threshold を 2 に設定すると、LOD 2 になるまでは実行しますが、コンポーネントの LOD が 3 になると無効になります。

Blend

一般的な Blend ノードは、2 つの入力ポーズをアルファ入力に基づいてそのままミックスします。

Blend.png

ピン

説明

入力ピン

A

ブレンドする 1 つ目のポーズ。

B

ブレンドする 2 つ目のポーズ。

Alpha

アルファ値として使用する範囲 [0.0, 1.0] の浮動小数点値。これにより、2 つのポーズの重みを決定します。値 0.0 は入力ポーズ A に最大限の重み付けをし、値 1.0 は入力ポーズ B に最大限の重み付けをします。

出力ピン

Pose

ブレンディング適用後の最終ポーズです。

Blend Poses by Bool

Blend Poses by Bool ノードは、ブール値をキーとして使用して、2 つのポーズを時間ベースでブレンドします。ブール値が true の場合、true 入力ピンに接続されているポーズが使用されます。ブール値が false の場合、false ポーズが使用されます。各ポーズには、ブレンド時間という浮動小数点値があります。この値を使用して、そのポーズにブレンドするのにかかる時間が制御されます。

BlendPosesByBool.png

ピン

説明

入力ピン

Active Value

これは、2 つのポーズのどちらを使用するかを判断する入力ブール値です。

True Pose

ブール値が true に設定されている場合にブレンドするポーズを受け取ります。

False Pose

ブール値が false に設定されている場合にブレンドするポーズを受け取ります。

True Blend Time

true ポーズにブレンドするのに必要な時間を定義します。

False Blend Time

false ポーズにブレンドするのに必要な時間を定義します。

出力ピン

Pose

ブレンド適用後の最終ポーズ。

[Details (詳細)] パネルで、ブレンド時間ピンの表示/非表示を変更できます。また、 Transition Type (Standard または Inertialization ) や Blend Type を設定できます。

Blend Poses by Int

Blend Poses by int ノードは、整数値をキーとして使用して、任意の数のポーズを時間ベースでブレンドします。入力整数値それぞれに対して、その値の入力ピンに関連付けられたポーズが使用されます。たとえば、整数が 0 に設定されている場合、[Blend Pose 0] に接続されているポーズが使用されます。各ポーズには、ブレンド時間という浮動小数点値があります。この値を使用して、そのポーズにブレンドするのにかかる時間が制御されます。

BlendPosesByInt.png

追加の Blend Pose 入力を作成するには、ノードを右クリックして、コンテキスト メニューから [Add Blend Pin (ブレンドピンを追加)] を選択します。

AddBlendInput.png

入力を削除するには、目的の入力を右クリックして [Remove Blend Pin] を選択します。

ピン

説明

入力ピン

Active Child Index

この入力値の整数によって、使用するポーズが決定されます。

Blend Pose X

[Active Child Index] が [X] に設定されている場合にブレンドするポーズを受け取ります。

Blend Time X

ポーズ X にブレンドするのに必要な時間を定義します。

出力ピン

Pose

ブレンド適用後の最終ポーズ。

[Details (詳細)] パネルで、ブレンド時間ピンの表示/非表示を変更できます。また、 Transition Type (Standard または Inertialization ) や Blend Type を設定できます。

Blend Poses by Enum

Blend Poses by Enum ノードは、列挙 (Enum) 値をキーとして使用して、ポーズを時間ベースでブレンドします。デフォルトのポーズを使用でき、追加のポーズは Active Enum Value を通じて接続された列挙値内で特定される値に追加することができます。さらに、各ポーズには、ブレンド時間という浮動小数点値があります。この値を使用して、そのポーズにブレンドするのにかかる時間が制御されます。

BlendByEnum.png

ピン

説明

入力ピン

Active Enum Value

接続されている列挙値またはインデックス値によって現在選択されているポーズ。

Default Pose

デフォルトで使用されるポーズ。

Additional Poses

指定されている列挙値内の値に応じた追加ポーズ。

Blend Time

指定のポーズにブレンドするのに必要な時間を定義します。

出力ピン

Pose

ブレンド適用後の最終ポーズ。

[Details (詳細)] パネルで、ブレンド時間ピンの表示/非表示を変更できます。また、 Transition Type (Standard または Inertialization ) や Blend Type を設定できます。

Layered Blend Per Bone

Layered blend per bone ノードは、スケルトンに含まれるボーンの特定のサブセットのみに影響するマスクブレンドを行います。たとえば、キャラクターの腰から上だけにアニメーションを適用したい場合は、 Blend Per Bone を使用してそれを実現できます。

Blend Nodes - Blend Per Bone

ピン

説明

入力ピン

BasePose

ブレンドする 1 つ目のポーズ。

BlendPose

ブレンドする 2 つ目のポーズ。

BlendWeight

アルファ値として使用する範囲 [0.0, 1.0] の浮動小数点値。これにより、加算ポーズが与える影響の度合いが決定されます。値 0.0 を指定すると、 Additive ポーズは Base 入力ポーズにまったく追加されません。値 1.0 を指定すると、 Additive ポーズが Base 入力ポーズに完全に追加されます。

Add Pin

追加の Blend Pose 入力と Blend Weight 入力を作成します。

出力ピン

OutPose

ブレンド適用後の最終ポーズです。

Slot

Slotnode.png

Slot ノードは、所定のアニメーション スロットから結果として得られるアニメーションを再生します。

スロットとアニメーション モンタージュ システムの使用の詳細については、 アニメーション モンタージュ を参照してください。

Inertialization

上記の映像で、左側は従来のクロスフェードを使用して腕を振っています。右側は慣性ブレンドを使用しており、終わり方がより自然です。

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

Inertialization.png

Inertialization ノードは、グラフ内で、慣性ブレンド リクエストのソースの の任意の場所に配置します。Inertialization ノードは、慣性ブレンドが有効な場合、ターゲット アニメーションに向けて動きを継続するために、ポーズ モーションとカーブの変化を追跡します。このノードは、ソース ポーズに流れる慣性ブレンド リクエストによって有効になります。以下に示すように、 State Machine Transition 各種 Blend ノード Linked Anim Graph Linked Anim Layer はいずれも、慣性ブレンドをトリガーできます。

Node_TransitionType.png

上記の画像で、 Blend Poses by bool ノードの [Transition Type] は [Inertialization] に設定されています。慣性ブレンドを使用するには、アニメーション グラフ内で、Inertialization ノードが Blend Poses by bool ノードの後の任意の場所に配置されている必要があります。

以下の画像では、2 つの [Transition (トランジション)] ルールの [Blend Logic (ブレンドロジック)] で [Inertialization] を使用するように設定されています。慣性ブレンドを使用するには、アニメーション グラフ内で、それらの遷移を含む State Machine ノードの後の任意の場所に Inertialization ノードが配置されている必要があります。

StateMachine_Transition.png

State Machine で慣性ブレンドを使用する方法の詳細については、 遷移ルール を参照してください。

以下では、「Upper Body」 アニメーション レイヤー が選択されており、 [Details] パネルで [Graph Blending] オプションが表示されています。アニメーション レイヤーはブレンドインとブレンドアウトができますが、それには慣性ブレンドが必要です。Inertialization ノードを、このアニメーション ブループリントにリンクする Linked Anim Layer ノードの後の任意の場所に配置する必要があります。負の値は、ブレンド時間が他の入力または出力アニメーション レイヤーによって決定されることを表します。

LinkedAnimGraphLayer.png

Inertialization ノードは、慣性ブレンド リクエストのソースの後に接続する必要がありますが、ソースの直近である必要はありません。Inertialization ノードの接続場所を Output Pose に近くすることで、必要に応じて、慣性ブレンドを保留にできます。このように、標準のブレンドをグラフから減らしたり、排除したりして、パフォーマンスを向上できます。グラフに Inertialization ノードがない場合は、 [Message Log (メッセージ ログ)] ウィンドウにランタイム エラーが記録されます。

Inertialization_Graph.png

1 つの Inertialization ノードで多数の慣性ブレンド リクエストを処理できます。最小のリクエストされたブレンド時間が使用されます。

慣性ブレンドを考慮してアニメーションとグラフを作成する際は、出力アニメーションがまだ動いているときに遷移を開始することをお勧めします。慣性ブレンドによってスムーズかつ自然に停止位置への遷移が処理されるため、ニュートラルなポーズに戻る必要はありません。慣性ブレンドは、ターゲット アニメーションにモーションを遷移させるポストプロセスなので、短いブレンドが最もよく機能します。慣性ブレンドは別の慣性ブレンドによって中断される場合がありますが、継続的な中断が発生するシナリオは避けるようにします。ポーズを安定した状態に保つために、後続のブレンド時間が削減される可能性があるからです。

必要に応じて、グラフに複数の Inertialization を配置することができます。それぞれのノードが、ソース ポーズからの慣性ブレンド リクエストを処理します。これは、さまざまな空間で慣性ブレンドを実行できることを意味します。たとえば、キャラクターの上半身と下半身に個別の Inertialization ノードを用意して、その後に **Layered Blend per bone**ノードを配置し、それらを最終ポーズに接合するとします。ベース ポーズに適用する前に Inertialization ノードを挿入することで、慣性ブレンドを加算ポーズと一緒に使用することができます。最終ポーズの準備では通常、IK の前に慣性化を実行することで、実質的に、IK 空間で慣性ブレンドを行います。

慣性ブレンドが始まると、ソース ポーズの評価が停止することに留意してください。再生が停止するので、その時点でソース シーケンスからの アニメーション通知 はトリガーされなくなります。既存のゲーム ロジックと通知に慣性化との互換性を持たせるには、リファクタリングが必要な場合があります。

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