【UnityC#講座】ユニティちゃんでもっとスカイリム風に操作したい 後編【Animator Controller】

【UnityC#講座】ユニティちゃんでもっとスカイリム風に操作したい 前編【カメラ】

この記事の続きです。

■Animator Controllerを設定する

次はユニティちゃんにアニメーションさせるためにAnimator Controllerの設定をします。
名前は「UnityChanAnime」にしました。

Project > Create > Animator Controller

Stateの設定をする

もっとスカイリム風/Animator Controller/State

Stateは長方形のものです。
画面上を右クリックして以下のように操作して出します。

Create State > Empty

一番最初に出したものがEntryとつながります。
名前はInspectorに入力してインターで変えられます。
Stateはドラッグして動かし、マウスホイールの回転でズームアップ&アウトができます。

Stateは6つ出して以下のように名付けてください。

Idle
Front
Back
Right
Left
Jump

Motionを設定する

もっとスカイリム風/Animator Controller/Motion

次はStateのInspectorでMotionを設定します。
Motionの空欄の右端の丸ぽちをクリックし、ユニティちゃんアセットに付属していたアニメーションを入れます。
それぞれこのような名前のものを入れてください。

Idle > WAIT00
Front > RUN00_F
Back > WALK00_B
Right > RUN00_R
Left > RUN00_L
Jump > JUMP00

Parametersの設定をする

もっとスカイリム風/Animator Controller/Parameters

次は左上にあるParametersをクリックします。
その右下にある+ボタンをクリックしてBoolを選びます。
そして画像のようにFront、Back、Right、Left、Jumpの5つを作ってください。

Transitionの設定をする

もっとスカイリム風/Animator Controller/Transition

TransitionはStateをつなぐ矢印の線です。
矢印を出す方のStateを右クリックしてMake Transitionを選び、つなげたいStateをクリックします。
AnyStateから4つのStateにつながり、そこからExitにつながります。
JumpはExitにつながるだけです。

もっとスカイリム風/Animator Controller/Transition/Settings

次はAny Stateから伸びるTransitionをクリックしてそのInspectorを見てください。
Settingsをクリックすると出てくるCan Transition Toのチェックを外します。
このチェックが入っていると連続でアニメーションを作動させるのでおかしな動きになります。

もっとスカイリム風/Animator Controller/Transition/Conditions

次は下部のConditionsの+ボタンをクリックしてください。
つながっているStateと同じ名前のParametersをセットしTrueにします。
これを4つともやってください。

もっとスカイリム風/Animator Controller/Transition/Has Exit Time

それが済んだら今度はその4つのStateからExitにつながるTransitionの設定をします。
まず4つともHas Exit Timeのチェックを外してください。
このチェックが入っているとアニメーションを最後まできっちり流すので不自然になります。

もっとスカイリム風/Animator Controller/Transition/Conditions/False

次にまたConditionsの設定をStateと同じ名前のParametersでしますが今度はFalseにします。

もっとスカイリム風/Animator Controller/Transition/Conditions/Jump

最後はJumpからExitに伸びているTransitionですが、こちらは最後までアニメーションを流したいのでHas Exit Timeのチェックを外しません。
ConditionsにJumpのFalseを入れるだけで良いです。

これでAnimator Controllerの設定は終わりです。
PlayerのAnimatorに入れましょう。

もっとスカイリム風/Animator Controller/Animatorに入れる

スポンサーリンク

■ユニティちゃんを動かす

Playerのスクリプトを書く

さあまずはPlayerを動かす「PlayerController」スクリプトを書きましょう。

WASDキー、あるいは上下左右キーで移動、向きはカメラが向く方向で変えてスペースキーでジャンプします。

できたらPlayerに入れてください。

PlayerのInspectorの設定をする

もっとスカイリム風/PlayerController設定

Playerにスクリプトを入れたら次はInspectorの設定をします。
CameにMain Cameraを、Unity ChanにはunitychanをそれぞれHierarchyからドラッグ&ドロップするか空欄の右にある丸をクリックして選択します。

これだけでも一応動きますがまだ地面に接しているという判定ができていないのでアニメーションとジャンプができません。
さて、最後の仕上げと行きましょう。

地面判定のスクリプトを書く

GroundDecisionに入れる同名の「GroundDecision」スクリプトを書きます。

できたらGroundDecisionへドラッグ&ドロップです。
あとGroundDecisionのSphere ColliderのIs Triggerにチェックが入っているかチェックしてください。

もっとスカイリム風/GroundDesicion/Spehe Collider/Is Triggerにチェック

されていたらさっそく動かしてみましょう。

もっとスカイリム風/完成

今回はここまでです。
お疲れさまでした。

ユニティちゃんライセンス

この作品はユニティちゃんライセンス条項の元に提供されています

■他に使用したアセット


Terrainの装飾に使いました。

■関連記事

【UnityC#講座】3D人型モデルの動かし方をユニティちゃんで学ぶ【Animator】

【UnityC#講座】ユニティちゃんにキソラちゃんがついてくるようにする【NavMeshAgent、Blend Tree】

【UnityC#講座】ユニティちゃんをスカイリム風に操作する

【UnityC#講座】ユニティちゃんでもっとAnimator Controllerを上手く使いたい

【UnityC#講座】AnimatorControllerを使いまわす【AnimatorOverrideController】

【UnityC#講座】AnimatorControllerの使い方

【UnityC#講座】ユニティちゃんをマウスカーソルの方向に移動させる

【UnityC#講座】上下キーで前進後退、左右キーで方向替える移動法【ユニティちゃん】

スポンサーリンク

目次に戻る