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