前回の記事ではプレイヤーをフィールドマップ上で移動させる処理を作りました。
前回の記事:
今回の記事ではプレイヤーのアニメーションを作成します。そのために必要なUnityのアニメーション機能の使い方についても解説していきます。
色々な要素が出てきて慣れるまで大変ですが、使いこなすととても便利な機能になりますので、是非覚えてください。
Unityでのアニメーションについて
Unityではアニメーションさせる際は次のものが必要になってきます。
- Animatorコンポーネント
- AnimatorControllerアセット
- 各アニメーションを表すAnimationアセット
AnimatorControllerの作成
まずは「CharacterPrefab」のルートGameObjectに「Animator」コンポーネントをアタッチしてください。
アタッチしましたら、「CharacterPrefab」を保存し、「Player」プレハブに切り替えてください。
次にメニューのAssets > Create > Animator Controllerをクリックし、AnimatorControllerアセットを作成してください。
名前は「 PlayerAC」にしてください。保存先はお好みでOKですが、記事ではAssets > AnimatorControllerの中に保存しています。
作成した「PlayerAC」は「Player」プレハブの「Animator」コンポーネントの「Controller」フィールドに設定してください。
AnimatorControllerの編集用タブ
「AnimatorController」は「Animation」アセットで表現されるアニメーションを管理するものになります。
そのため「Animation」アセットも必要になります。
「Animation」アセットについては次の項目で説明しますので、ここではUnityエディターにおける「AnimatorController」を編集するためタブの開き方について説明していきます。
- メニューのWindow > Animation > Animator をクリックし、「Animator」タブを開いてください。
- 選択している「AnimatorController」の内容が「Animator」タブに表示されます。
「Animator」タブの編集内容は色々ありますが順に追って見ていきます。
Animationアセットの作成
「AnimatorController」アセット自体はアニメーションデータを管理せず、アニメーションの流れを管理するアセットになります。
そのため実際のアニメーション内容は「Animation」アセットの中に編集・記録していきます。
「Animation」アセットはキーフレームアニメーションを表現するアセットになり、各コンポーネントのパラメータをキーフレームで変更することができます。
その際、「Animator」コンポーネントをアタッチしているGameObjectをGameObject階層のルートとして扱います。
まとめ
今回の記事ではUnityでのアニメーションについて解説していきました。
まだ「AnimatorController」のノード間の遷移周りについてはまだ説明していませんが、そちらについてはスクリプト制御を合わせて解説していきます。
アニメーションでは色々なコンポーネントやアセットが出てきて把握するのが難しいですが、基本的に次のことを抑えておけばOKです。
- アニメーションしたいGameObjectに「Animator」コンポーネントをアタッチする
- 「Animator」コンポーネントにアニメーションの組み合わせや流れを制御するための「AnimatorController」アセットを設定する
- 実際のアニメーションは「Animation」アセットで管理する
- 「Animation」アセットにはキーフレームアニメーションでアニメーション内容を表現している。
- 「Animation」アセットは基本的にルートGameObjectからのGameobject親子階層に依存した作りになっている。
これらの操作は一度覚えてしまえばその後ずっと利用できる強力なUnityの機能になるので頑張って覚えてください。
キャラクターのアニメーションに利用すること以外にもUIの動作など、固定のアニメーションを行う際にも利用できます。スクリプトの中でコンポーネントのパラメータを変更し、アニメーション内容を制御するよりは管理が簡単になるのでオススメです。
ただし、スプライトを切り替えるスプライトアニメーションについてはUnityのアニメーション機能では使い回しにくいため、この講座では専用のスクリプトで行うようにします。
それでは、次の記事では「AnimatorController」の設定方法について解説していきます。
次の記事:
コメント