本日は Unity の小ネタ枠です。
Unity の StarterAssets の三人称プロジェクトのキャラクター操作コンポーネントをカスタマイズする方法を記事にします。
前提条件
三人称の StarterAssets のインポート手順は以下の記事を参照ください。
bluebirdofoz.hatenablog.com
ThirdPersonController
ThirdPersonController コンポーネントは StarterAssets に含まれる三人称視点のキャラクターを操作するためのコンポーネントです。
本コンポーネントの設定を変更してキャラクターの移動速度やジャンプの高さ、接地判定やカメラの一部動作設定を変更できます。

ThirdPersonController コンポーネントで Inspector ビューから変更可能な各種フィールドとその効果について以下に確認したものを記述します。
操作キャラクター項目(Player)
| 項目名 | 説明 |
|---|---|
| MoveSpeed | キャラクターの歩き速度(m/s) |
| SprintSpeed | キャラクターの走り速度(m/s) |
| RotationSmoothTime | キャラクターが移動方向を変える速さ |
| SpeedChangeRate | 加速と減速レート |
| LandingAudioClip | 着地時の音 |
| FootstepAudioClips | 足音(複数登録時は一歩ごとにランダム再生) |
| FootstepAudioVolume | 足音の音量 |
| JumpHeight | キャラクターがジャンプできる高さ |
| Gravity | キャラクターの独自の重力値(Unityのデフォルトは-9.81f) |
| JumpTimeout | 着地から再ジャンプできるまでの時間(0fで即座に再ジャンプ可能) |
| FallTimeout | 落下状態(InAir)に入るまでの所要時間(階段での誤判定を防ぐ) |
接地判定(PlayerGrounded)
| 項目名 | 説明 |
|---|---|
| Grounded | キャラクターが接地中か(CharacterControllerの接地チェックとは別) |
| GroundedOffset | 不整地で接地判定を行うための調整用オフセット |
| GroundedRadius | 接地チェックの半径(CharacterControllerのRadiusと一致する必要あり) |
| GroundLayers | キャラクターが接地判定に使うオブジェクトのレイヤー種別 |
カメラ設定(Cinemachine)
| 項目名 | 説明 |
|---|---|
| CinemachineCameraTarget | CinemachineVirtualCameraに設定したカメラが追従するターゲット |
| TopClamp | 何度までカメラを上に向けられるか |
| BottomClamp | 何度までカメラを下に向けられるか |
| CameraAngleOverride | カメラに上書きする追加の角度(LockCameraPosition有効時の微調整に利用する) |
| LockCameraPosition | 全軸のカメラの回転をロックする |
設定例
例えばシーン再生中に LockCameraPosition を有効にするとカメラの回転が固定されたまま、キャラクターを追従するようになります。

