アニメーションをC#で制御する
最後にC#からアニメーションを制御してみます。最終的な調整は次回行うことにして、今回はボタンに合わせてキャラクターを右向きに歩かせることにします。
Animatorウィンドウの起動
アニメーションを追加し終わるとProjectウィンドウは以下のような表示になっています(Imagesフォルダにすべてのファイルが配置されていますが、とりあえず今はこのまま進めます)。
上記画像の左上のアイコンをダブルクリックすると、Animatorウィンドウが起動します。
Mecanimについて
Animatorウィンドウではアニメーションを管理するMecanim(メカニム)という機能が利用できます。メカニムは複数のアニメーションを制御、管理することができる機能で、アニメーションするための条件などを指定できます。
なお、今回は簡単にスクリプトから利用するための設定だけを行いますが、次回はMecanimを用いてアニメーション全体を制御します。
画面上部の水色の「Any State」はどの状態からでも遷移できるアニメーションを指定します。オレンジ色のwalk_leftはデフォルトのステータスを表します。そのためゲームを開始すると、キャラクターはデフォルトのアニメーションwalk_leftを再生し、左側に歩くモーションを行います。
デフォルトの動作を変更
キャラクターのデフォルトの動作を「左向きで停止(stop_left)」とします。
AnimatorウィンドウのStop_leftの枠を右クリックし、「Set As Default」をクリックします。
ゲームを実行すると、キャラクターは左向きで足を揃えた状態で表示されます。
C#コードから呼び出す
GameManager.csを開きUpdateメソッドのジャンプ判定の箇所を以下のように書き換えます。
// スペースキーでジャンプ
// ジャンプ中はスペースキーが押されてもさらに上昇しない
if (Input.GetKeyDown("space") && this._charactorScript.isJumping == false)
{
var animator = this._charactor.GetComponent<Animator>();
animator.Play("walk_right");
this._moveCharactor(Vector2.up * 400f);
}
処理としては少し不自然ですが、スペースキーでジャンプした場合にキャラクターを右向きに歩かせます。
GetComponentメソッド
GetComponentメソッドでAnimatorクラスを取り出します。
アニメーションを作成する過程でcharactorのInspectorウィンドウにAnimatorが追加されていることも併せて確認しておきましょう。InspectorにAnimatorが追加されていない場合にGetComponentでAnimatorを取り出そうとするとエラーになります。
Animator.Playメソッド
取得したAnimatorクラスのPlayメソッドでアニメーションを再生します。
ゲームを実行すると、スペースキー押下に合わせてキャラクターが右向きに歩くアニメーションが再生されます。
まとめ
今回は以下のことを解説しました。
- アニメーションを作成する素材について
- 素材を分割してコマとして扱う方法
- アニメーションの作成方法
- Mecanimの基礎
- アニメーションのプログラムからの呼び出し
今回はアニメーションの作成部分にボリュームを割いてMecanimやプログラムから呼び出す部分は「とりあえず動かしてみる」という感じで紹介しました。これらについては次回しっかりと解説する予定です。



