次にノックバックなどのアニメーションクリップの再生時間を取得し、Invokで再生時間後にストップを解除しようとした。しかし、Animatorの再生速度を加味する必要があったのでこれも断念した。
最終的にアニメーションイベントでストップを解除するようにした。ただし、ヒット中にもう一度攻撃を受けると、ステート推移の影響でアニメーションイベントがギリギリ読み込まれる事態が生じてしまった。
つまり、
- 1回目のヒットアニメーション冒頭でストップフラグが立つ
- → 2回目のヒットアニメーション冒頭でヒットでストップフラグが立つ
- →1回目のアニメーション終了時のイベントがギリギリ読み込まれ、ストップフラグが解除される
Interrupt Sourceについては公式マニュアル参照。とりあえず中断させたければ、None以外にすれば良さそう。今回は、ヒットモーションを繰り返して欲しかったのでCurrent State then Next Stateにした。
これにより、いわゆるハメの状態が可能に。処理としてはこちらの方が正しい。あとはハメ対策としてダウン値を設けるなどの工夫をすれば良い。
0 件のコメント:
コメントを投稿