【Unity7】プレイヤーのAnimator Controllerを設定したい!【ローグライク8】
Unity5.0.0f4 Personal(2015年6月)
前回の続きです〜
今回はプレイヤーキャラにアニメーションを取り付けていきます〜
【目標】プレイヤーにアニメーションを設定する
2D Roguelike 8 of 14 : Player Animator Controller ...
①アニメーションの設定
まずはPlayerプレファブをHierarchyビューに戻します〜
次にProjectフォルダのAnimations>Animation Controllers>Playerを選択しPlayerのAnimatorビューを表示させて下さい〜
画像のようにアニメーションを配置しておくと分かりやすいと思います〜
PlayerのAnimatorビュー
次にAnimatorを切り替えるパラメーターを設定していきます〜Animatorビュー左側にあるParameterをクリックしパラメーター設定画面を出し、更にプラスボタンを押しパラメーターの種類を決めます〜今回はTrigger型を選択します〜
Trigger型を選択
名前はPlayerChopにして下さい〜また、同じ要領でTrigger型のPlayerHitも作成して下さい〜
Trigger型の変数PlayerChopとPlayerHitを作成
数値を表すInt型や正誤判定をするBool型はよく見かけますが、Trigger型とはどんなものなのでしょう?
Trigger型はほとんどBool型と同じですが、1フレームtrueを実行したら即座にfalseへ自動的に戻る点だけがBool型と異なります〜
今回のように一度だけアクションをし、すぐにIdle状態へ戻る時などに便利です〜
それでは実際にアニメーション遷移を設定していきましょう〜Player Idleを右クリックし、Make Transitionを選択し、Player Chopへ矢印を繋げて下さい〜
Make Transition選択
PlayerChopに矢印を向ける
続いてPlayerChopからPlayerIdleへもMake Transitionを使い矢印を向けて下さい〜
Make Transition選択
お互いを繋ぐ
PlayerIdleからPlayerChopへ向けた矢印をクリックし、Inspectorビューを見て下さい〜
まずはHas Exit Timeのチェックを外して下さい〜Player Idle状態はアニメーションを繰り返し行い続けるため、アニメーション終了の条件を指定する必要がないためです〜
続いてTransition Durationを0にして下さい〜
3Dアニメーションの場合、アニメーションとアニメーションの間にちょっとした時間を用意することで自然なアニメーションとなります〜このちょっとした時間がTransition Durationです〜
しかしSprite画像を使った2Dアニメーションの場合は即座に切り替わったほうが自然であるため、基本的にTransition Durationは0にしてしまいます〜
Has Exit Timeをfalse、Transition Durationを0に設定
最後に一番下にあるConditionsのプラスボタンを押し、アニメーション遷移条件を指定します〜今回はPlayerIdleからPlayerChopへ遷移するので、Trigger型のPlayerChopを選択します〜(PlayerChopがtrueになった時アニメーション遷移)
続いてPlayerChopからPlayerIdleへ伸びている矢印をクリックし、Inspectorの設定をしていきます〜
今回は1回アニメーションしたらPlayerIdleへ戻したいので、Has Exit Timeをtrue、Exit Timeを1に設定します〜Transition Durationは同じく0です〜
また、Trigger型は自動的にfalseに戻るため、Conditionsの設定は必要ありません〜
PlayerChop→PlayerIdleの設定
それではアニメーション遷移がうまくいっているか確認するため、1回ゲームを動かしてみましょう〜
ゲーム実行時にPlayerChopをクリックすると
PlayerChopへアニメーション遷移し
PlayerChopが1回終わるとPlayerIdleアニメーションへ戻る
うまくいきましたでしょうか〜
続いて全く同じようなことをPlayerHitでも行います〜
Make Transitionで相互にアニメーション遷移の矢印を引き
PlayerIdle→PlayerHitのInspector設定
PlayerHit→PlayerIdleのInspector設定
それではこちらもテストしてみましょう〜
ゲーム実行時にPlayerHitをクリックすると
PlayerHitアニメーションへ遷移し
PlayerHitが1回終わるとPlayerIdleへ戻る
今回はここまでです〜
ありがとうございました〜
【Unity開発7】Unity公式チュートリアル2Dローグライクの導入【2Dローグライク1】
【Unity開発7】アニメーションを作りたい!【2Dローグライク2】
【Unity開発7】Floorやアイテムを作成したい!【2Dローグライク3】
【Unity開発7】床や敵キャラ、アイテム等を自動生成させたい!【2Dローグライク4】
【Unity開発7】BoardManagerを呼び出すGameManagerを作成する【2Dローグライク5】
【Unity開発7】キャラクターを動かすための抽象クラス作成【2Dローグライク6】
【Unity開発7】破壊可能な壁(Wall)を作成したい!【ローグライク7】
【Unity開発7】プレイヤーのアニメーターを設定したい!【ローグライク8】
【Unity開発7】プレイヤー用のスクリプトを設定したい!【ローグライク9】
【Unity開発7】敵キャラクターのスクリプトを作成したい!【2Dローグライク10】
【Unity開発7】敵キャラクターのアニメーターを設定したい!【2Dローグライク11】
【Unity開発7】uGUIでUIの表示とレベル機能を実装したい!【2Dローグライク12】
【Unity開発7】BGMと効果音を付ける【2Dローグライク13】
【Unity開発7】タッチパネルに対応させたい!【2Dローグライク14(Fin)】