読者です 読者をやめる 読者になる 読者になる

196の日記

完全に開発メモと雑談、その他忘れそうな計算式などを書き溜める場所になっています!

Unity アニメーション遷移 Can Transition To Self

Animator 内の Any State から遷移するアニメーションのインスペクター内に、Can Transition To Self というチェックマークがあります。

f:id:thinline196:20170125222707p:plain



これをチェックしていると、遷移先がない場合、又は遷移条件になっていない場合に、今の状態が繰り返し実行されます。

もう少し詳しく書くと、今このAny Stateから遷移したアニメーション中にもう一度同じアニメーションに遷移できるかということを決めているっぽいです。アニメーション実行中にAny Stateからまたアニメーションを実行しろと言われるので、実質ループしているように(実際にはバグったように)見えてしまいました。


うまく回避するには、遷移のために使用したParamaetersのフラグ、値などを一度遷移条件外にすることです。例えば、Deadフラグがあったとしたら、アニメーションの遷移を確認してすぐフラグをfalseにすることで、バグっぽい挙動を直すことができます。
逆に、deadフラグは死亡した時に立てるということで、もう復活することもないやってことであれば、Can Tramnsition To Selfのチェックを外してやることに寄って、フラグをわざわざ書き換えなくても、挙動がおかしくなることはありません。



使いどころとしては、ガードアクション中にもう一度攻撃を受けたらガード中にまたガードアクションをするといったようなかぶせ気味の演出などにでしょうか。