今回は、プレイヤー(Unityちゃん)のスプライトアニメーションを作りたいと思います。
スプライトアニメーションの作り方
まずは、Unityちゃんが静止状態のスプライトを探します。
UnityChan_footwork_0がそれっぽいので、シーンビューに配置します。
続いてアニメーターコントローラーを作りましょう。
プロジェクトウィンドウで右クリックし「Create」→「Animator Controller」を選択。名前を「Unitychan」など分かりやすいものに変えます。
今作ったコントローラーは「Animator」の「Controller」にアタッチしておきましょう。
ジャンプアニメーションを作る
前回お話した通り、上に動く処理を実装するため少なくともジャンプが必須になります。というわけで、まずはジャンプアニメーションを作ることにします。
Unityちゃんを選択してWindowメニューよりAnimationを開きます。
Createボタンを選択して「unitychan@jump」というクリップ名で作成します。
基本的にアニメーションクリップは複数に及ぶので、行動に応じて適宜名前を変えた方がいいです。
大体は「プレイヤー名@〇〇」といったクリップ名にすることが多いですね。
それでは、キーフレームの設定を行っていきます。
「0:00」の位置に初期状態のスプライトを配置します。
ジャンプスプライトは結構種類が多くて迷ったんですけど、私は「UnityChan_jump_up_0」を使うことにしました。このスプライトを「0:05」と「0:30」にドラッグ&ドロップします。
この辺の設定は、実際にアニメーションを再生させながら速さを決めるようにしてください。
私は一連のアニメーションを「0:30」で終わるようにしました。
静止アニメーションの作成
続いて静止している場合のアニメーションも同じように作っちゃいましょう。
「unitychan@jump」の右にあるトグルを開いて「Create New Clip」をクリックします。
「unitychan@idle」等の名前で新規作成します。
静止している場合は簡単です。デフォルト状態のスプライトを「0:00」地点に配置するだけ。
メカニムの設定について
アニメーションの準備が出来たところでメカニムの設定を行います。
Unityちゃんを選択した状態でAnimatorウィンドウを開きます。
先ほど作ったクリップが表示されていることが分かりますね。
まずは、ジャンプしているかどうかを判断するbool値を追加します。
Parametersパネルの「+」ボタンから「Bool」を選択。名前を「jump」にします。
次に、トランジションの設定です。jumpフラグがtrueならジャンプアニメーションに遷移して、falseなら静止するようにしましょう。
「unitychan@jump」を右クリックし「Make Transition」を選択。
「unitychan@idle」をクリックして矢印を繋ぎます。
作成された矢印をクリックした状態で「Conditions」の「+」ボタンを開いてjumpパラメータをfalseに変更します。
また、デフォルトでチェックがついているHas Exit Timeのチェックも外しておいてください。
ここにチェックが入っているとステートが遷移しても、再生中だったクリップが最後まで再生されてしまうので。
同じように「unitychan@idle」→「unitychan@jump」の設定も行ってください。
先ほどと違う点は、ジャンプステートに移行するため「Conditions」のパラメータを「true」にする事です。
ゲームを実行してAnimatorのParametersのjumpフラグをクリックしてみます。
trueになるとジャンプアニメーションが再生され、falseだと静止モーションになります。