パラパラアニメ : Mecanim編
Unity
前回は、SimpleAnimation機能を使ってパラパラアニメ(スプライトアニメ)を再生しました。今回は同じアニメ再生をUnityデフォルトのMecanimを使って実装します。
完成形は前回と同じで、ボタンを押すと流れ星アニメを再生します。
Mecanim
MecanimはUnity標準のAnimatorを使ってアニメを制御する方法です。ステートマシンで状態を管理して、状態に応じてアニメを切り替えることができます。
例えばプレイヤーのIdleからWalk/Run/Jumpなどのステート(状態)を切り替え、その状態に応じてアニメを切り替えるということができます。

Animatorを設定する
Animatorを作成する
前回、Animation Clipを作成しました。実はAnimation Clipを作成した時に自動でAnimatorが作成されています。

Animatorの遷移をつくる
AnimatorをダブルクリックするとAnimatorウィンドウが開きます。今回は「ボタンを押したタイミングでアニメを再生する」を実装します。
それに必要なステートは「待機状態」と「再生状態」の2つです。Animatorを以下のように組みます。

遷移パラメータの追加
ボタンを押したというトリガーで「ShootingStar」状態に遷移させます。まず、遷移するための条件のトリガーを追加します。AnimatorウィンドウのParametersタブを開いて、Playというトリガーを追加します。

トランジションの設定
次にWaitからShootingStarのトランジションの条件にTriggerを追加します。トランジションを選択した状態で、Cordinationsで遷移条件を指定します。

最後にShootingStarアニメが終了したタイミングでWait状態に戻すようにします。今度は逆のShootingStarからWaitのトランジションを選択した状態で、HasExitTimeの設定をします。HasExitTimeは指定時間が経過したら遷移させることができます。

これでAnimatorの設定は完了です。
アニメを再生する
最後にボタンを押した時にアニメーションを再生させるようにします。
前回と同様にアニメを再生するためのゲームオブジェクトを用意します。そのオブジェクトに Animatorコンポーネントを追加します。Controllerには先ほど作成したAnimatorを設定します。

最後に、ボタンクリック時にAnimatorで用意した Play という名前のトリガーを呼べば完了です。

これでボタンを押したらアニメーションを再生することができました。
まとめ
今回は Mecanim でアニメを再生してみました。
前回のSimpleAnimationと比べて1段階Animatorでのステート管理が挟まるので、ちょっと手間がかかるケースもあるかもしれません。それぞれのやり方を把握しておくと、実装の選択肢は広がるかなと思います。
次回は、(スプライトアニメの再生ではないのですが)同じ流れ星アニメの再生をDotweenという機能を使って実装してみます。