遷移の設定
どのステートを相互にブレンドするかをコントロールするには、遷移 を作成します。遷移はステート マシンの構造を定義するステート間のリンクです。

遷移を作成するには、ステートの枠線から別のステートにドラッグします。この例では、Idle ステート が Run ステート と双方向に接続されています。これは基本的なロコモーションのステート マシンでは一般的な設定です。遷移は一方向であるため、2 つのステートを往復させる場合は、各方向に遷移を作成する必要があります。

また、遷移ノードを選択して別のステートにドラッグすることにより、既存の遷移ロジックを再バインドすることもできます。遷移矢印を新しいバインディングにドラッグすると、複数の遷移ノードを一度に再バインドすることができます。

遷移ルール
遷移がステート間のブレンドの構造をコントロールするのに対して、遷移ルール はステートが遷移できるタイミングをコントロールします。つまり、単に遷移を定義するだけではなく、遷移する方法やタイミングを定義する必要があります。
遷移ルールは、遷移の作成時に自動的に作成されます。ステートと同様に、[My Blueprint (マイ ブループリント)] パネルか、ステート マシン グラフの 遷移アイコン をダブルクリックすることで、遷移ルールを表示したり、アクセスしたりすることができます。

遷移ルールでは、ブール値 (true または false) を出力する目的で、確認と比較のためにさまざまなブループリント ロジックを作成できます。true 値を使用すると、ステートが次のステートに遷移できるかどうかを決定することができます。
たとえば、Idle ステートから Run ステートに遷移し、再び Idle ステートに戻る場合は、以下のようなロジックになります。この例では、bool 変数が遷移ルールに使用されています。デフォルトのステートに戻るときは、bool の逆数が使用されます。

遷移ルールは、通常、Movement コンポーネントと他のキャラクター変数によって通知されます。操作可能なキャラクターに共通のプロパティを取得する方法については、「アニメーション変数を取得する方法」ページを参照してください。
意図したロジックで変数が正しく設定されたら、設定した変数の条件がゲームプレイ中に満たされることで、遷移が発生します。

遷移関数
遷移ルール グラフで、以下のような遷移専用の関数を使用して、ロジックを強化することができます。
名前 | 画像 | 説明 |
---|---|---|
Current State Time | ![]() |
ステート マシン内の現在アクティブなステートの現在の経過時間 (秒) を取得します。この出力は、ステート マシンの アクティビティ インジケーター と同様の情報を提供します。 ![]() |
Get Current State Name | ![]() |
ステート マシン内で現在アクティブなステートの名前を取得します。 |
Get Relevant Anim Time | ![]() |
この遷移先のステート内で最も関連性の高いアニメーションの現在の経過時間 (秒単位) を取得します。 ステートには、同等の関連性を持つ複数のアニメーションが存在する可能性があるため、それらのアニメーションをチェックしたり、関連性のある関数で使用しないようにすることができます。これを行うには、ステート グラフを開き、除外したいアニメーション ノード (シーケンス プレイヤー、ブレンド スペース、エイム オフセットなど) を選択し、[Details (詳細)] パネルで [Ignore for Relevancy Test] をオンにします。 ![]() |
Current Time | ![]() |
前のステートからアニメーションの現在の経過時間 (秒単位) を取得します。この関数は、関連性ではなく、特定のアニメーションを直接参照する必要がある場合に役立ちます。 |
Get Relevant Anim Time Remaining | ![]() |
この遷移先のステート内で最も関連性の高いアニメーションの現在の残り時間 (秒単位) を取得します。 |
Time Remaining | ![]() |
この遷移先のステート内のアニメーションの現在の残り時間 (秒単位) を取得します。この関数は、関連性ではなく、特定のアニメーションを直接参照する必要がある場合に役立ちます。 |
アニメーション通知関数
また、遷移グラフ内で使用できる Animation Notify 関数もあります。これらの関数は、遷移グラフを右クリックして、Was Anim Notify… 関数を選択することで追加することができます。

名前 | 説明 |
---|---|
Was Anim Notify Name Triggered… | 名前で指定された スケルトン通知 が前のティックでトリガーされた場合は、true を返します。 |
Was Anim Notify State Active… | クラスで指定された 通知ステート が前のティックでアクティブであった場合は、true を返します。 |
Was Anim Notify Triggered… | クラスで指定された 通知 が前のティックでアクティブであった場合は、true を返します。 |
通知関数チェックの主な違いは、次のように検索を行うかどうかです。
- In any state。すべてのアクティブなステート マシンで通知を検索します。
- In the source state。前にアクティブだったステート (遷移元ステート) で通知を検索します。
- In the State Machine。特定のステート マシンで通知を検索します。
遷移の中断
遷移中に別のステートがアクティブになると、その遷移が「中断」され、代わりに新たなステートに遷移します。この中断が発生した場合、特定の アニメーション通知 を中断にリンクさせることができます。これにより、中断が発生したときに、それらの通知が実行されるようになります。
遷移中断の通知動作を設定するには、遷移を選択し、[Details] パネルで [Transition Interrupt (遷移中断)] のプロパティを見つけます。

中断にリンクする Notify または Notify State Class クラスを指定することができます。Notify State を使用すると、中断により、後続のフレームで 開始 通知イベントと 終了 通知イベントが順に実行されます。
その他のプロパティは、「モンタージュ通知」ページで参照できます。
遷移ブレンドのタイプ
ステートをどのように遷移させるかを決定する際に使用するステート遷移ブレンドには、主に次の 3 つのタイプがあります。標準ブレンド、慣性化、または カスタム です。これらのタイプは、遷移を選択し、[Details] パネルの [Blend Logic] プロパティで選択することができます。

標準ブレンド
[Standard Blend (標準ブレンド)] は、デフォルトの遷移オプションで、期間、カーブ、およびその他の基本的なコントロールの設定が含まれています。これらの設定を見つけて、調整するには、遷移を選択して、[Details] パネルの [Blend Settings (ブレンド設定)] カテゴリを選択します。

名前 | 説明 |
---|---|
Transition Crossfade Sharing | このドロップダウン メニューを使用すると、異なる遷移間で [Blend Settings] のプロパティを共有することができます。新しい共有設定を作成するには、[Promote to Shared (共有に昇格)] をクリックし、設定名を入力して Enter キーを押します。これで、他の遷移でこの設定にアクセスできるようになります。この設定は完全に共有されるため、ある遷移の設定を編集すると、他のすべての遷移に影響します。 |
Duration | 遷移にかかる時間を秒単位で指定します。 |
Mode | この遷移でブレンドするときに使用するカーブのタイプです。各オプションで Ctrl + Alt を押すと、カーブの形状のプレビューが表示されます。 |
Custom Blend Curve | [Mode] が [Custom] に設定されている場合、ここでは、この遷移でブレンドするときに、カーブの形状として使用する、カスタムで作成されたカーブ アセットを指定することができます。 |
Blend Profile | この遷移の間、特定のボーンを他のものより迅速にブレンドする必要がある場合、ここで ブレンド プロファイル をオプションで指定することができます。 |
慣性化
あるステートから別のステートに単純にブレンドするのではなく、慣性化 は、新しいアニメーションへの切り替え時に発生するアニメーションの速度と加速度が、動きを進めるために使用される場合に使用できます。詳細については、「慣性化」を参照してください。
ブレンド タイプとして慣性化を使用する場合、アニメーション グラフで必ず Inertialization ノード を使用する必要があります。このノードは、ステート マシンが評価された後に配置してください。

慣性化は、隣接する複数のステートで使用されるアニメーションによっては、必ずしも、遷移で適切な結果が得られるわけではありません。慣性化ブレンドを使用する際に注意する必要のある一般的なルールは、以下のとおりです。
- ブレンド時間は短く維持し、0.4 秒未満が最適である。
- ポーズが極端に異なる場合は、慣性化を使用しない。
カスタム
カスタム ブレンドは、独自のアニメーション グラフ レイヤーでグラフ化して、カスタマイズできるブレンドで、その期間とカーブ形状は 標準ブレンド設定 で決定されます。
[Blend Logic] が [Custom] に設定されている場合、ドロップダウン メニューの横にある [Edit Blend Graph (ブレンド グラフの編集)] をクリックするか、[My Blueprint (マイ ブループリント)] 内のカスタム ブレンドグラフをダブルクリックして、グラフを開きます。

カスタム ブレンド グラフ内で、以下の特殊関数を使用して遷移時間とステートの重み情報を読み取り、グラフに通知することができます。
名前 | 画像 | 説明 |
---|---|---|
State Weight | ![]() |
前のステートのブレンドの重みを取得します。この数値は、遷移期間中に 1 から 0 に徐々に減少します。 |
Get Transition Time Elapsed | ![]() |
指定した遷移の経過時間 (秒単位) を取得します。 |
Get Transition Time Elapsed (ratio) | ![]() |
指定された遷移のクロスフェード時間に対する経過時間を比率として取得します。つまり、この数値は、遷移期間中に 0 から 1 に徐々に増加します。 |
Get Transition Crossfade Duration | ![]() |
指定した遷移のクロスフェード時間を取得します。これは、[Blend Settings] > [Duration] プロパティで使用される数値です。 |
カスタム ブレンドを使用すると、さまざまなブレンド ロジックを作成できます。簡単な例として、通常の Blend ノードと Get Transition Time Elapsed (ratio) 関数を併用することで、標準ブレンド をレプリケートすることができます。

遷移のプロパティ
遷移には、次のプロパティがあります。

名前 | 説明 |
---|---|
Priority Order | 遷移の優先順位。複数の遷移の条件が同時に成立している場合は、優先順位の最も小さいものが選択されます。 |
Bidirectional | この設定はサポートされておらず、現在は機能しません。 |
Blend Logic | どの 遷移ブレンドのタイプ を使用するか。 |
Transition Rule Sharing | このドロップダウン メニューを使用すると、異なる遷移間で 遷移グラフ を共有することができます。新しい共有設定を作成するには、[Promote to Shared] をクリックし、設定名を入力して Enter キーを押します。これで、他の遷移でこの設定にアクセスできるようになります。グラフは完全に共有されるため、特定の遷移のグラフを編集すると、他のすべての遷移に影響します。 |
Automatic Rule Based on Sequence Player in State | 有効にすると、遷移ノードは内部時間を無視して、最も関連性の高いアセット プレイヤー ノードの残り時間と AutomaticRuleTriggerTime プロパティの値に基づいて、自動的に遷移を開始しようとします。このプロパティは、最初のアニメーション再生のより早い段階でブレンドを開始することで、より動的にステートの遷移間でブレンドするのに役立ちます。 |
AutomaticRuleTriggerTime | ここでは、Automatic Rule Based on Sequence Player in State プロパティも有効な場合に、自動遷移ルールを開始するタイミングを設定できます。このプロパティに設定される値は、関連するアセット プレイヤーの残り時間に応じて決まります (秒単位)。0.0 よりも小さな値は、ブレンドアウトのクロス フェード期間を使用して自動的にアニメーションから遷移します (AnimiationLength - CrossFadeDuration )。0.0 以上の値は、この値を秒単位で使用して遷移がトリガーされる時間を手動で設定します (AnimationLength - AutomaticRuleTriggerTime )。 |
Sync Group Name to Require Valid Markers Rule | ここで Sync Group (同期グループ) 名を指定すると、現在のステートに有効な Sync Marker (同期マーカー) を持つアニメーションがある場合に限り、この遷移が使用されます。通常の遷移ルールも引き続き適用されます。 |
Transition Crossfade Sharing | このドロップダウン メニューを使用すると、異なる遷移間で [Blend Settings] のプロパティを共有することができます。新しい共有設定を作成するには、[Promote to Shared] をクリックし、設定名を入力して Enter キーを押します。これで、他の遷移でこの設定にアクセスできるようになります。この設定は完全に共有されるため、ある遷移の設定を編集すると、他のすべての遷移に影響します。 |
Duration | 遷移にかかる時間を秒単位で指定します。 |
Mode | この遷移でブレンドするときに使用するカーブのタイプです。各オプションで Ctrl + Alt を押すと、カーブの形状のプレビューが表示されます。 |
Custom Blend Curve | [Mode] が [Custom] に設定されている場合、ここでは、この遷移でブレンドするときに、カーブの形状として使用する、カスタムで作成されたカーブ アセットを指定することができます。 |
Blend Profile | この遷移の間、特定のボーンを他のものより迅速にブレンドする必要がある場合、ここで ブレンド プロファイル をオプションで指定することができます。 |
Transition Interrupt | 遷移の中断 の設定が含まれます。 |
Start Transition Event (Custom Blueprint Event) | [Custom Blueprint Event] フィールドで使用されている名前を持つ スケルトン通知 を作成します。この通知は、遷移が開始されると実行されます。通常のスケルトン通知と同様に、アニメーション ブループリントの イベント グラフ で作成することで、イベントにアクセスできます。 |
End Transition Event (Custom Blueprint Event) | [Custom Blueprint Event] フィールドで使用されている名前を持つスケルトン通知を作成します。この通知は、遷移が終了すると実行されます。 |
Interrupt Transition Event (Custom Blueprint Event) | [Custom Blueprint Event] フィールドで使用されている名前を持つスケルトン通知を作成します。この通知は、遷移が 中断 すると実行されます。 |