ユニティちゃんを歩かせる
はじめに
ユニティちゃんを(既存のPrefabでなく)前後に移動させることができたので記録として残します。
参考サイト:
準備(配置や設定)
適当にオブジェクトを(真似して)配置します。(配置の際にVキーでの頂点スナップというのも少し覚えました。)
配置したのはユニティちゃんのモデルだけなので、以前のように配置して即動かせるという訳でなく。
まずunitychanという名前でAnimator Controllerを作成し、それを予めunitychanモデルにAdd ComponentしておいたAnimatorのController欄に入力。
アニメーターunitychanの状態遷移を以下のように設定。
遷移条件のためのパラメータSpeedを設定。最初、パラメータの追加の仕方が分からず頭が?になりました。公式サイトのチュートリアル重要。
立ち、前進、後退のモーションにそれぞれユニティちゃんアセットのWaitと歩行前後をあてがって、(Foot IKもつけておきます)
状態遷移に条件(ここで前述したパラメータを使用。他に移動状態から立ち状態に戻る遷移もあります。)を設定し、Has Exit Timeのチェックを外します。外さないと状態遷移が即時発生しない?要勉強。
物理影響を与えるためRigidbodyを、地面を突き抜けないようCapsule Colliderをそれぞれアタッチ。
(Capsule Colliderの底の丸みのせいか、最初X,Z軸の回転を制約していなかった時、実行してしばらく経つとモデルがすっころがることに気付きました。)
スクリプト
ユニティちゃんの移動処理、およびAnimator ControllerのSpeedパラメータを操作するためのスクリプトをユニティちゃんにアタッチします。
Study for Unity that Charactor moving forward and ...
ありゃ。
(最初、移動方向は画面の左右X軸方向なので、Vector3.rightかと思ったのですがTransform.Translate()はrelativeTo変数がデフォルトだとモデル自身の軸になるので前後させるためにVector3.forwardに修正。)
Transform.Translate - Unity スクリプトリファレンス
完了
方向を修正して、前後に歩くようになりました。以上。