本日は 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 オブジェクトを指定しておきます。