CodeZine(コードジン)

特集ページ一覧

速習 Unity 2Dゲーム開発
~第5回 キャラクターのアニメーション(前編)

速習 Unity 2Dゲーム開発 第5回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/11/20 14:00
目次

アニメーションをC#で制御する

 最後にC#からアニメーションを制御してみます。最終的な調整は次回行うことにして、今回はボタンに合わせてキャラクターを右向きに歩かせることにします。

Animatorウィンドウの起動

 アニメーションを追加し終わるとProjectウィンドウは以下のような表示になっています(Imagesフォルダにすべてのファイルが配置されていますが、とりあえず今はこのまま進めます)。

現時点のProjectウィンドウ
現時点のProjectウィンドウ

 上記画像の左上のアイコンをダブルクリックすると、Animatorウィンドウが起動します。

Animatorウィンドウ
Animatorウィンドウ

Mecanimについて

 Animatorウィンドウではアニメーションを管理するMecanim(メカニム)という機能が利用できます。メカニムは複数のアニメーションを制御、管理することができる機能で、アニメーションするための条件などを指定できます。

 なお、今回は簡単にスクリプトから利用するための設定だけを行いますが、次回はMecanimを用いてアニメーション全体を制御します。

 画面上部の水色の「Any State」はどの状態からでも遷移できるアニメーションを指定します。オレンジ色のwalk_leftはデフォルトのステータスを表します。そのためゲームを開始すると、キャラクターはデフォルトのアニメーションwalk_leftを再生し、左側に歩くモーションを行います。

デフォルトの動作を変更

 キャラクターのデフォルトの動作を「左向きで停止(stop_left)」とします。

 AnimatorウィンドウのStop_leftの枠を右クリックし、「Set As Default」をクリックします。

Stop_leftをデフォルトに
Stop_leftをデフォルトに

 ゲームを実行すると、キャラクターは左向きで足を揃えた状態で表示されます。

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を取り出そうとするとエラーになります。

charactorのInspectorウィンドウ
charactorのInspectorウィンドウ
Animator.Playメソッド

 取得したAnimatorクラスのPlayメソッドでアニメーションを再生します。

 ゲームを実行すると、スペースキー押下に合わせてキャラクターが右向きに歩くアニメーションが再生されます。

まとめ

 今回は以下のことを解説しました。

  • アニメーションを作成する素材について
  • 素材を分割してコマとして扱う方法
  • アニメーションの作成方法
  • Mecanimの基礎
  • アニメーションのプログラムからの呼び出し

 今回はアニメーションの作成部分にボリュームを割いてMecanimやプログラムから呼び出す部分は「とりあえず動かしてみる」という感じで紹介しました。これらについては次回しっかりと解説する予定です。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:速習 Unity 2Dゲーム開発

もっと読む

著者プロフィール

  • 西村 誠(ニシムラ マコト)

     Microsoft MVP Windows Platform Development。  Flash、PHPの開発経験もあり国産ECサイト構築フレームワーク「EC-CUBE」の公式エバンジェリストでもある。  ブログ:眠るシーラカンスと水底のプログラマー  著書:基礎から学ぶ Windows...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5