ユニティちゃんを歩かせる

はじめに

ユニティちゃんを(既存のPrefabでなく)前後に移動させることができたので記録として残します。

参考サイト:

nn-hokuson.hatenablog.com

 

準備(配置や設定)

適当にオブジェクトを(真似して)配置します。(配置の際にVキーでの頂点スナップというのも少し覚えました。)

f:id:kcha:20180815102303j:plain

配置したのはユニティちゃんのモデルだけなので、以前のように配置して即動かせるという訳でなく。

まずunitychanという名前でAnimator Controllerを作成し、それを予めunitychanモデルにAdd ComponentしておいたAnimatorのController欄に入力。

f:id:kcha:20180815102622j:plain

アニメーターunitychanの状態遷移を以下のように設定。

f:id:kcha:20180815103500j:plain

遷移条件のためのパラメータSpeedを設定。最初、パラメータの追加の仕方が分からず頭が?になりました。公式サイトのチュートリアル重要。

アニメーターコントローラー - Unity

立ち、前進、後退のモーションにそれぞれユニティちゃんアセットのWaitと歩行前後をあてがって、(Foot IKもつけておきます)

f:id:kcha:20180815104611j:plain

f:id:kcha:20180815104614j:plain

f:id:kcha:20180815104617j:plain

状態遷移に条件(ここで前述したパラメータを使用。他に移動状態から立ち状態に戻る遷移もあります。)を設定し、Has Exit Timeのチェックを外します。外さないと状態遷移が即時発生しない?要勉強。

f:id:kcha:20180815104847j:plainf:id:kcha:20180815104844j:plain

 物理影響を与えるためRigidbodyを、地面を突き抜けないようCapsule Colliderをそれぞれアタッチ。

f:id:kcha:20180815102700j:plainf:id:kcha:20180815102649j:plain

Capsule Colliderの底の丸みのせいか、最初X,Z軸の回転を制約していなかった時、実行してしばらく経つとモデルがすっころがることに気付きました。)

f:id:kcha:20180815103933j:plain

 

スクリプト

ユニティちゃんの移動処理、およびAnimator ControllerのSpeedパラメータを操作するためのスクリプトをユニティちゃんにアタッチします。 

Study for Unity that Charactor moving forward and ...

 

ありゃ。 

youtu.be

(最初、移動方向は画面の左右X軸方向なので、Vector3.rightかと思ったのですがTransform.Translate()はrelativeTo変数がデフォルトだとモデル自身の軸になるので前後させるためにVector3.forwardに修正。)

Transform.Translate - Unity スクリプトリファレンス

 

完了

方向を修正して、前後に歩くようになりました。以上。

youtu.be