本日は Unity の技術調査枠です。
基本変形(移動・回転・スケール)のアニメーションを作成する方法についてまとめます。
今回はアニメーションを一度だけ再生する方法です。
前回記事
以下の記事の続きになります。
bluebirdofoz.hatenablog.com
アニメーションを繰り返さず一度だけ再生する
前回作成したアニメーションコントローラの設定だとアニメーションが繰り返され、オブジェクトが移動し続けます。
今回はアニメーションを繰り返さず、一度だけ再生するように設定してみます。
以下の2つの方法があります。
Loop Timeを無効化する
1つはアニメーションファイルの[Loop Time]を無効化する方法です。
アニメーションファイルを選択し、Inspector ビューから[Loop Time]のチェックを外します。
これでアニメーションは一度しか再生されなくなります。
Unity の[再生]ボタンで動作を確認すると、アニメーションが一度だけで止まるようになっています。
Stateを変更する
もう1つはアニメーションの状態を再生次第、すぐに待機状態に戻してしまう方法です。
アニメーションコントローラを選択し、[Animator]画面を開きます。
待機状態に戻す遷移を作成します。
[CubeAnimation]を 右クリック -> Make Transition で[WaitState]へ線を引きます。
ここでトリガーの設定は行わず、[List is Empty]のままにしておきます。
これにより[CubeAnimation]への遷移した後、即座に状態が[WaitState]に戻るようになります。
これでアニメーションが一度実行された後は[WaitState]に戻っているため、アニメーションが繰り返し再生されなくなります。
Unity の[再生]ボタンで動作を確認すると、アニメーションが一度だけで止まるようになっています。
2つの方法は同じ動きですが、それぞれアニメーション実行後の State が異なることに注意が必要です。
アニメーションの繋がり
2つ目の待機状態に戻す方法をそのまま利用すると、アニメーションの最後が少しカクつきます。
これはアニメーションの繋がりがデフォルトだと、以下のように一部重なった状態になっているためです。
以下の通り、アニメーションが重ならないよう変更します。
1.[Exit Time](遷移先アニメーションの実行開始タイミング)を[1]に設定する。
2.[Transition Duration](重なりの秒数)を[0]に設定する。
これで再生を行うとアニメーションが最後まで綺麗に再生されます。