アニメーション コントローラのトランジション

トランジションは、アニメーション コントローラが 1 つの状態から別の状態に移動する方法、トランジションが起きるタイミング、ブレンドされる方法をコントロールします。

From State
トランジションが起きる前の状態またはネストされた状態。
To State
トランジションが起きた後の状態またはネストされた状態。
On
このトランジションをトリガするイベント。
Blend Duration

ブレンド トランジションにかかる時間(秒単位)。値が 0 (ゼロ)の場合は、アニメーションが 1 つの状態から別の状態に直接ジャンプし、2 つの状態のアニメーション ポーズが正確に一致しない限り、ぎこちなく見えます。

ブレンド時間が 0.2 秒の場合、From State からのアニメーション ポーズが To State のアニメーション ポーズに 0.2 秒間でブレンドされることを意味します。

注: ブレンド時間は、ステート マシンの状態には影響せず、視覚的に表示される状態のみに影響します。ブレンド時間に関係なく、ステート マシンは To State にすぐに移行します。ブレンド時間は、From State アニメーションが完全にブレンドされるのにかかる時間のみをコントロールします。

Mode
アニメーション時間が From State と To State 間で同期される方法を指定し、トランジションが発生するタイミングに関するコントロールをさらに追加します。使用可能な値は次のとおりです。
Immediate
From State がすぐに終了し、t=0 の時間に To State に入ります。
Wait Until End

マシンは From State が再生を完了するまで待機し(実際にはブレンド時間を考慮して少し早めに起動します)、その後 att=0 で To State にトランジションします。

トランジションが発生するまで、マシンは From State の状態を維持します。その間に別のトランジションが発生した場合は、Wait Until End トランジションはキャンセルされ、代わりに別のトランジションが行われます。
Sync-Beat-Closest-Immediate

Anim Clip Editor で作成したアニメーション ビートを使用し、From State のアニメーション内のビートと、To State のアニメーション内のビートとを一致させようとします。

このモードでは、ステート マシンは元のアニメーション(右など)内の現在のフレームの前後にある現在の時間に最も近いビートを探します。その後すぐに To State にトランジションし、その名前を持つ最初のビートが発生した時点で開始します。これにより、移行元のポーズが移行先のポーズに近くなるようにできます。

重要: トランジションの実行を可能にするには、ビートが To アニメーションと From アニメーションの両方で発生する必要があります。「アニメーション クリップにビートとフロー イベントを追加する」も参照してください。

Sync-Beat-Wait-Until-Beat

このモードでは、マシンは元のアニメーション内で次のビートを探します。その後、同じ名前を持つ最初のビートが発生するまで待機し、To State にトランジションし、その名前を持つ最初のビートが発生した時点で開始します。

Wait トランジションと同様に、ビート トランジションが起きる前に別のトランジションが発生した場合は、待機中のビート トランジションはキャンセルされます。

重要: トランジションの実行を可能にするには、ビートが To アニメーションと From アニメーションの両方で発生する必要があります。「アニメーション クリップにビートとフロー イベントを追加する」も参照してください。

Sync-Percentage-Immediate
from 状態をすぐに終了し、from 状態が再生されたパーセンテージの時点で to 状態に入ります。たとえば、トランジションが起きたときに from アニメーションの 25% が再生されている場合、マシンは to 状態のタイムラインの 25% にジャンプします。
Sync-Inverse-Percent-Immediate

Sync-Percentage-Immediate と同じですが、from のパーセンテージが to パーセンテージと逆に同期されます。from アニメーションが 25% である場合は、to アニメーションの 75% にジャンプします。

これは、「登る」と」「降りる」など、お互いに逆の動作を示すアニメーションを同期するのに便利です。
Beat

これを指定すると、アニメーションの次のビートが指定したビートである場合にトランジションが起こります。(または、beat-closest を使用した場合は、最も近いビート)。

Mode タイプがビートを使用する場合にのみ有効になります。これはビートを使用するモードを選択した場合は必須です。

これは、同じアニメーション イベントに基づいて異なるトランジションを実行するために使用できます。

たとえば、「走る」状態は、どちらの足が前に出されるかに応じて、左ジャンプまたは右ジャンプのいずれかにトランジションできます。

グループ トランジション

2 つのグループの状態間のトランジションに対して、グループ トランジションを使用できます。グループ トランジションでは、From State にある各サブ状態とそれが移行するべき To State にある各サブ状態をリストで指定します。

グループ トランジションは、類似したサブ状態があるグループの状態に使用すると便利です。たとえば、非武装のキャラクタに対応する全動作グラフがあり、武装したキャラクタに対して非常に類似した動作グラフがある場合などに便利です。キャラクタが武器を装備している場合は、非武装の状態から対応する武装の状態に移動します。

グループ トランジションを作成するには、2 つのグループの状態間でトランジションをドラッグします。

グループ トランジションを単純なトランジションに変換するには、右クリックして Convert to Simple Transition を選択します。

エディタは、From 状態と To 状態内で同じ名前を持つネストされた状態を自動的に一致させようとします。トランジションを作成してから複数のネストされた状態を作成している場合は、Update Auto-Mapping をクリックします。

条件付きトランジション

条件付きトランジションを使用すると、式を評価して、ランタイムにステート マシンにおけるトランジションのフローをコントロールすることができます。TransitionSwitch ノードを使用し、TransitionSwitch ノードの式の評価に基づいてランタイムに状態間のトランジションを行います。

たとえば、C または LUA を使用してランタイムに設定されたレイヤ シードに応じてさまざまに移動するキャラクタがある場合は、条件付きトランジションを使用することができます。「アニメーション コントローラの状態」も参照してください。