SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

速習 Unity 2Dゲーム開発

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

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

アニメーションを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やプログラムから呼び出す部分は「とりあえず動かしてみる」という感じで紹介しました。これらについては次回しっかりと解説する予定です。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
速習 Unity 2Dゲーム開発連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/8134 2014/11/20 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー