Unity

AnimatorのInterruption Source

更新日:

近道との分かれ道

長らく謎だったAnimator Controller 遷移の設定項目の一つ「Interruption Source」ですが、このほどやっとわかったので共有します。

公式には以下のように書いてあります。

AnyState の遷移は、常にキューの先頭に加えられます。その後、他の遷移が Interruption Source の値に基づいてキューに加えられます。(中略)

Current State 現在のステートからの遷移を予約できます。(以下略)

https://docs.unity3d.com/ja/2018.4/Manual/class-Transition.html#TransitionInterruption

なるほど(全然わからない)。現在のステートからの遷移を予約?? これで理解できる人っているんでしょうか……

WAITからWALKへの遷移

まずは、WAITからWALKへの遷移のSettingsを考えます。元が「Current」で、先が「Next」です。

遷移のSettings

Current State 「元」のステートから生えている遷移のConditions(条件)がどれか成立したら、今の遷移を中断して、その成立した条件の遷移へブレンドしつつワープします。こういう設定です。

WAITからWALKに遷移しているところ

今、WAITからWALKに遷移しているところで、「元」つまりCurrent(ここではWAIT)に設定されている条件の一つ、JumpのトリガーがONになったとします。

Interruption SourceがCurrent Stateの例

WAIT -> WALKのIntteruption Sourceが「Current State」になっているので、「元」のステートWAITから出ていく条件のうち、Jumpが成立しているのでそちらの遷移へワープします。

これがわかってしまえば、他も芋づるで理解できます。

「Next State」の場合は、「次」のステートから出ていく条件に着目します。WAITからWALKの遷移のInterruption Sourceが「Next State」になっているとすると

Interruption SourceがNext Stateの例

WinのトリガーがONになったとき、WALKから出ていく条件が成立するので、ブレンドしつつワープします。

残りも説明します。

Current State Then Next State 「元」も「次」もチェックする。どちらかから出ていく条件が成立したらそちらの遷移へワープする。もし同時に成立した場合は「元」から出ていく遷移のほうへワープする。

Next State Then Current State 上と同じですが、もし同時の場合は「」から出ていく遷移のほうへワープします。

わかったのはいいけど、これがどう役に立つのかは、また次以降の投稿で。

-Unity

Copyright© みじんこゲームズ , 2024 All Rights Reserved Powered by STINGER.