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

FirstPersonController コンポーネントで Inspector ビューから変更可能な各種フィールドとその効果について以下に確認したものを記述します。
プレイヤー項目(Player)
| 項目名 | 説明 |
|---|---|
| MoveSpeed | プレイヤーの歩き速度(m/s) |
| SprintSpeed | プレイヤーの走り速度(m/s) |
| RotationSmoothTime | プレイヤーが移動方向を変える速さ |
| SpeedChangeRate | 加速と減速レート |
| JumpHeight | プレイヤーがジャンプできる高さ |
| Gravity | プレイヤーの独自の重力値(Unityのデフォルトは-9.81f) |
| JumpTimeout | 着地から再ジャンプできるまでの時間(0fで即座に再ジャンプ可能) |
| FallTimeout | 落下状態に入るまでの所要時間(一人称はアニメーションがないため効果なし) |
接地判定(PlayerGrounded)
| 項目名 | 説明 |
|---|---|
| Grounded | キャラクターが接地中か(CharacterControllerの接地チェックとは別) |
| GroundedOffset | 不整地で接地判定を行うための調整用オフセット |
| GroundedRadius | 接地チェックの半径(CharacterControllerのRadiusと一致する必要あり) |
| GroundLayers | キャラクターが接地判定に使うオブジェクトのレイヤー種別 |
カメラ設定(Cinemachine)
| 項目名 | 説明 |
|---|---|
| CinemachineCameraTarget | CinemachineVirtualCameraに設定したカメラが追従するターゲット |
| TopClamp | 何度までカメラを上に向けられるか |
| BottomClamp | 何度までカメラを下に向けられるか |
設定例
例えばシーン再生中に JumpHeight の数値を上げてみると大ジャンプが行えるようになります。

