MRが楽しい

MRやVRについて学習したことを書き残す

UnityのStarterAssetsのプロジェクトのキャラクターをユニティちゃんに差し替える

本日は Unity の小ネタ枠です。
Unity の StarterAssets のプロジェクトのキャラクターをユニティちゃんに差し替える方法を記事にします。

前提条件

予め StarterAssets とユニティちゃんをプロジェクトに取り込んでおきます。
StarterAssets とユニティちゃんのインポート手順は以下の記事を参照ください。
bluebirdofoz.hatenablog.com
bluebirdofoz.hatenablog.com

三人称視点のサンプルシーンを開きます。

ユニティちゃんをシーンに追加する

キャラクターを差し替えるため、サンプルシーンに設定されているプレイヤーキャラクターの PlayerArmature オブジェクトを無効化します。

代わりに以下のユニティちゃんモデルを Hierarchy にドラッグしてシーンに配置します。

Assets/UnityChan/Prefabs/unitychan.prefab

デフォルトでユニティちゃんに設定されている以下のコンポーネントは不要なので Remove Component で除去します。
・IdleChanger
・FaceUpdate
・AutoBlink

サンプルシーンのキャラクターのアニメーションコントローラをユニティちゃんに設定します。
以下のアニメーションコントローラを Animator コンポーネントの[Controller]にドラッグします。

Assets/StarterAssets/ThirdPersonController/Character/Animations/StarterAssetsThirdPerson.controller

サンプルシーンのキャラクターの操作用コンポーネントをユニティちゃんに追加します。
PlayerArmature オブジェクトに設定されている以下のコンポーネントを Copy Component でコピーして unitychan オブジェクトに Paste Component As New で貼り付けます。



ユニティちゃんモデルに合わせたカスタマイズを行う

ユニティちゃんモデルに合わせてキャラクターの当たり判定を変更します。
Charactor Controler コンポーネントの[Center],[Radius],[Height]で当たり判定を調節します。

次にユニティちゃんモデルのレイヤーを変更します。
デフォルトでは地面判定を行うレイヤーが[Default]に設定されているので、キャラクターはこれ以外のレイヤーである必要があります。

今回は[Player]レイヤーを新規作成してユニティちゃんモデルに割り当てました。
子オブジェクト全てのレイヤーを変更する必要はないので unitychan オブジェクトのみ変更しています。




ユニティちゃんにカメラ追従の設定をする

ユニティちゃんにカメラが追従するようにカメラ設定を行います。
カメラの追従ポイントとして unitychan オブジェクトの頭部辺りに PlayerCameraRoot オブジェクトを追加します。

PlayerFollowCamera オブジェクトを開き、CinemachineVirtualCamera コンポーネントの[Follow]に先ほど追加した PlayerCameraRoot オブジェクトを指定します。

デフォルトでは[Ignore Tag]に[Player]タグが指定されています。
unitychan のタグが[Player]以外の場合、unitychan を障害物と判定してしまい、カメラが正常に三人称視点で動きません。

ユニティちゃんモデルを障害物と判定しないように unitychan オブジェクトの[Tag]を[Player]に変更しておきます。

最後に ThirdPersonController コンポーネントの[CinemachineCameraTarget]にも PlayerCameraRoot オブジェクトを指定しておきます。

動作確認

これで操作キャラクターをユニティちゃんに差し替えることができました。
シーンを再生してみます。

各種キーでユニティちゃんを動かすことができ、カメラは三人称視点で追従しました。