概要

こんにちは!Qitzの平田です!

前回に続いて、今回はUnity公式の2Dアクションチュートリアルを徹底的に丁寧に解説して行きます!

https://learn.unity.com/tutorial/character-controller?uv=2019.3&projectId=5ea809f0edbc2a00215f1fa5#5ea81ee4edbc2a00215f245c

Unity公式Boltのチュートリアル(英語)のキャラクターが歩くアニメーションをするところまで作って行きたいと思います!

 キャラクターのアニメーションを再生させる

ここでは、キャラクターに設定されたアニメーションを再生させる部分を見ていきます。

また再生させるアニメーションなのですが、実はすでにPlayer中にアニメーションが設定されていたりします。

今回は、キャラクターに設定されているアニメーションの内容などを確認するため

Window/Animation/Animator

を選択します。

今回はこのようなAnimatorのStateが組まれていることがわかります。

ここで、Idle(待機モーション)からWalk(歩くモーション)に遷移するための条件を見てみましょう。

ここでは、Speedというパラメーターが設定されていてその値が0.01超過だった場合は、Walkに遷移するようになっています。

反対にWalkからIdleへ遷移する条件はSpeedが0.5未満だった場合になっています。

BoltでAnimaterのSpeedをMovementに合わせて変化させるようにする

では、早速AnimatorにMovementの値をセットするためのGraphを作ってみます。

こんな感じでUnitをつなげてみます。

AnimatorのSetFloatの名前は Speedとします。

この処理は何を行っているのか?

こちらの処理では、

1:GetVariableでMovementの値を取得

2:Absoluteで絶対値に変換(Movementの値は -5 ~ 5の値が来るので 0~ 5の値に変換します。)

3:Animator Set FloatでSpeedに2で取得した値をSetします。

Updateの流れにつないで実際に処理が動くようにする

では、Updateの緑矢印の繋がりに繋ぎこんで実際に動かしてみます。

今回はBranchの緑矢印出口とSetLoacalScaleの緑矢印出口からAnimator Set Floatの緑矢印入り口にコネクタを繋ぎました。

 なぜ2箇所の出口と繋いだのか?

今回は、Branchから(Movementが0と等しいかどうかを)Trueだった場合のUpdateとFalseだった場合をBranchで分岐させているため、True,FalseどちらでもAnimationにSpeedの値を入れたいので、両方の出口の緑矢印からAnimatorの緑矢印の入り口につないでいます。

動きを確認してみる

こんな感じでMovementに沿って歩くアニメーションが再生されるようになりました!

次回

次回はプレイヤーがジャンプしたりするところを実装して行こうかなと思います!