遷移ルール

ステートマシンの遷移を規定するルールのガイド

Windows
MacOS
Linux

遷移ルールの作成

遷移ルール は、ステート マシン 内のフローを制御する方法であり、ステートコンジット を接続するワイヤーで自動作成されます。遷移ルールでは、変数値に対していくつでもチェックやテストを実行することができます。こうしたチェックやテストでは全て True または False を出力し、遷移を通してアニメーションが動くことができるかどうかを決めます。

ステートやコンジットを接続するには、左クリック して、あるステート (またはコンジット) から別のものにドラッグします。

ConnectStates.png

接続できたら、遷移ルールは以下のように接続内で方向を持つ小さな丸いアイコンで表示されます。

TransitionRule.png

このアイコン上にマウスオーバーすると何のルールかが視覚的に表示されます。

TransitionRuleMouseOver.png

この例では、JumpLoop から JumpEnd に遷移するために、変数 IsInAir? が true であっては なりません

ルールは遷移のフローを双方向で決定するように設定することもできます。

RulesBothWays.png

つまり、あるステートから出て、他のステートに移動するようにルールを設定可能であり、そのステートに戻る遷移になるようにルールを適用できます。

遷移ルールの編集

Transition Rule (遷移ルール)ダブルクリック すると、ウィンドウが開きます。このウィンドウで、遷移が起こるために満たさなければならない変数を定義できます。

EditRule.png

ブループリント と同様に、My Blueprint ウィンドウで変数を指定し、それをグラフにドラッグすることができます。変数を様々な条件に接続し、それらを Result ノードに接続することで、遷移が起こるために何が true (または false) であるべきかを定義できます。

ブループリントの使用を開始するための情報は、ブループリント入門 のドキュメントをご覧ください。

遷移ルールの詳細

遷移ルールを 左クリック すると、[Details (詳細)] パネルが更新され、追加のオプションが利用できるようになります。

TransitionDetails.png

プロパティ

説明

Transition Priority Order

遷移の優先順位。あるステートからの複数の遷移が同時に true である場合、一番小さい数字の優先順位の高いものが優先されます。

Bidirectional

遷移が双方向であるか否かを決定します。

Blend Logic

使用する遷移ロジックを指定します。標準ブレンドまたは カスタム ブレンド。カスタムを選択すると、ブレンドグラフにカスタムのブレンド遷移を設定するように入力できます。

Transition Rule Sharing

他の遷移とルールを共有できるか否か、または他の遷移からのルールを使用するかを設定することができます。

Automatic Rule Based on Sequence Player in State

内部時間は無視して最も関係のあるプレイヤーのノードの残り時間と遷移のクロスフェード持続時間に基づき自動的にルールを設定しようとします。

Transition Interrupt

Trigger Weight Threshold を設定し、Notify State Class を指定します。

Transition Crossfade Sharing

既存の Transition Crossfade Blend を使用する、または既存の Transition Crossfade を共有に昇格します。

Duration

クロスフェードに適用する持続時間。

Mode

クロスフェードに適用するブレンドのタイプ。詳細は Animation ブレンドモード を参照してください。

Custom Blend Curve

ユーザー指定のブレンドカーブを取り込み、それをブレンド中に適用します。

Blend Profile

ボーン単位で遷移を評価するために使うブレンド プロファイルです。

Start Transition Event / Custom Blueprint Event

遷移開始時に通知されたブループリント内からイベントを呼び出し実行します。

End Transition Event / Custom Blueprint Event

遷移終了時に通知されたブループリント内からイベントを呼び出し実行します。

Interrupt Transition Event / Custom Blueprint Event

遷移中断時に、通知されたブループリント内からイベントを呼び出し実行します。

その他の検討事項

Animation ブループリント で作業し、ステートマシンでアニメーションをオーバーライドする場合、遷移ルールによって参照されるアニメーションは、すべての子 Animation ブループリントで同じ長さである必要はありません。Time Remaining ノードのようなノードを使用する場合 (アニメーションの残り時間を判断し、遷移ルールの一部として使用可能)、こうしたタイプのノードは、子 Animation ブループリントでアニメーションがオーバーライドされる場合にアニメーションの長さの変化に正しく対応します。

変更されたり、オーバーライドされることがある遷移ルールの一部として特定のアニメーションを対象にするのではなく、いくつかのクラス ベースの get ノードを使用して、ソース ステートから最も重み付けが高いアニメーションを常に選ぶことができます (以下の図)。

GetRelevantNodes.png

番号

ノード

説明

1

Get Relevant Anim Length (Movement)

ソース ステートで最も関連性のあるアニメーションの秒数を取得します。

2

Get Relevant Anim Time (Movement)

ソース ステートで最も関連性のあるアニメーションの現在の累積時間の秒数を取得します。

3

Get Relevant Anim Time Fraction (Movement)

ソース ステートで最も関連性のあるアニメーションの長さの割合として現在の累積時間を取得します。

4

Get Relevant Anim Time Remaining (Movement)

ソース ステートで最も関連性のあるアニメーションの残り時間を秒単位で取得します。

5

Get Relevant Anim Time Remaining Fraction (Movement)

ソース ステートで最も関連性のあるアニメーションの残り時間を持続時間の割合として取得します。

カスタム ブレンド ノード

上記のノード以外にも、一回限りのカスタム遷移アニメーションだけではなく、さらに使用できるようにカスタム ブレンド グラフにエクスポーズされる情報もあります。

CustomBlendNodes.png

番号

ノード

説明

1

State Weight

指定されたステートのブレンド ウェイトを取得します。

2

Get Transition Time Elapsed

指定された遷移の秒単位の経過時間を取得します。

3

Get Transition Time Elapsed (ratio)

指定された遷移のクロスフェードの持続時間の割合として経過時間を取得します。

4

Get Transition Crossfade Duration

指定された遷移のクロスフェードの持続時間を取得します。

遷移ルールのようにアセット プレイヤーを参照する get ノードを使用することもできます。

アンリアル エンジンのアニメーションのプログラミングを理解している場合は、パフォーマンスを向上させるために ネイティブの getter をご利用いただくこともできます。

Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信