CodeZine(コードジン)

特集ページ一覧

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

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

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

アニメーションを完成させる

メカニムの編集

 まずはメカニムを編集して、アニメーションの遷移とその条件を設定しましょう。

Animatorウィンドウを開く

 Projectウィンドウを開き、Imagesフォルダのcharactorという名前のAnimatorファイルを開きます(下画像の左上のアイコン)。

Mecanimの起動
Mecanimの起動

 Animatorウィンドウが開きます。

状態を並び変える

 Animatorウィンドウに表示されている長方形のそれぞれがアニメーションの「状態(State)」を表します。前回も説明しましたが「Any State」というのが「あらゆる状態」を表す特殊なもので、最初から存在しています。それ以外は、前回の記事で追加したアニメーションを表す状態です。stop_leftがオレンジ色で表示されているのは、前回の記事でデフォルトの状態として定義したからです。

 初期の並びでは分かりにくいので以下の画像のように、それぞれの状態を並び変えます。

状態を整頓する
状態を整頓する

 左方向への移動、ジャンプ停止などをAny Stateの左側に配置し、右方向は右側に配置しました。また、ジャンプのアニメーションを上部に中央に歩くアニメーション、停止を下になるように並べました。

 このように並べ替える必要はありませんが、こうすることで遷移が見やすくなります。

遷移の追加

 続いて、これらの状態に遷移するためのトランジション(Transition)を追加します。

 Any Stateの上でマウスを右クリックし、「Make Transition」をクリックします。

Make Transition
Make Transition

 その状態でjump_leftをクリックすると、Any Stateからjump_leftに伸びる線が引かれます。

Transitionの作成
Transitionの作成

 Any Stateからそれ以外の状態にも遷移(Transition)を作成します。

すべての状態へTransitionの追加
すべての状態へTransitionの追加

Parametersの追加

 遷移が追加されましたので、それぞれの状態へ遷移する「条件」を指定します。条件の指定はParametersへの追加という形で行います。

 Parametersは、Animatorウィンドウ左下にあるParametersと書かれた枠の右側の「+」をクリックすることで追加できます。

Parameters
Parameters

 「+」ボタンをクリックし、Boolをクリックします。これはBoolean型のパラメーターを追加するという意味です。

パラメーターのタイプを選択
パラメーターのタイプを選択

 「New Bool」と書かれた箇所をクリックして「isJump」と入力します。

isJumpパラメーターを追加
isJumpパラメーターを追加

 同じ手順でBool型のパラメーター「isLeftMove」と「isStop」を追加します。

isLeftMove、isStopパラメーターを追加
isLeftMove、isStopパラメーターを追加

パラメーターの意味

 それぞれのパラメーターの意味は以下のようになります。

  • isJump……キャラクターがジャンプ状態かどうか
  • isLeftMove……キャラクターが左側に動いているかどうか
  • isStop……キャラクターが停止しているかどうか

 この3つパラメーターでアニメーションの遷移先を決定します。

遷移にパラメーターを追加する

 それぞれの遷移に条件を追加していきましょう。まずはAny Stateからjump_leftに伸びる遷移の線をクリックして、水色の選択状態にします。

遷移を選択
遷移を選択

 選択した状態で、Inspectorウィンドウを見ると下部に「Conditions」という項目があります。

Conditions
Conditions

 初期状態では「Exit Time」という条件が設定されていますが、これは時間(0.9秒)でアニメーションを切り替えるという指定です。Exit Timeという条件を変更したいので文字をクリックします。

Exit Timeをクリック
Exit Timeをクリック

 プルダウンからisJumpをクリックします。

 isJumpが追加され右側の値がtrueになっています。jump_leftは左側にジャンプしているアニメーションなのでそのままにしておきます。

isJumpを追加
isJumpを追加

 さらに条件を追加したいので、Conditionsウィンドウの右下の「+」ボタンをクリックします。isJumpがもう一つ追加されるので文字をクリックしてisLeftMoveを選択します。isLeftMoveの値もtrueのままでOKです。

isJisLeftMoveumpを追加
isJisLeftMoveumpを追加

 これでjump_leftへの条件追加は完了です。

 続けて、それ以外の遷移にも以下のように条件を追加していきます。

jump_left
パラメーター
isJump true
isLeftMove true
walk_left
パラメーター
isJump false
isLeftMove true
isStop false
stop_left
パラメーター
isJump false
isLeftMove true
isStop true
jump_right
パラメーター
isJump true
isLeftMove false
walk_right
パラメーター
isJump false
isLeftMove false
isStop false
stop_right
パラメーター
isJump false
isLeftMove false
isStop true

 これでAnimatorウィンドウでのMenicam設定は終了です。


  • 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