WheelCollider
は Unity で車両シミュレーションに使用されるコンポーネントで、物理的なホイールの挙動をシミュレートします。WheelCollider
には多くのプロパティがあり、各種挙動(加速、ブレーキ、ステアリングなど)を細かく制御できます。
以下、主なプロパティについて。
1. Mass (質量)
- 説明: ホイールの質量を設定します。通常は車全体の挙動に影響しないよう、非常に小さい値に設定されます。
- 用途: 車両の重さとホイールの挙動のバランスを調整します。
2. Radius (半径)
- 説明: ホイールの半径を設定します。この値が大きくなると車両がより高く持ち上がり、速度やトルクにも影響を与えます。
- 用途: 物理的に正しい車のタイヤサイズを設定するために使います。
3. Suspension Distance (サスペンション距離)
- 説明: ホイールが上下に動ける最大距離(サスペンションのストローク)を設定します。この距離は、地面の凸凹に対する車両の追従性に影響します。
- 用途: 車両の走行安定性や、オフロード車のようなサスペンションの動きを調整します。
4. Force App Point Distance (力の作用点距離)
- 説明: サスペンションの力が適用されるポイントのオフセットを設定します。通常、ホイールの中心に設定しますが、これを変更することで力の作用点をずらすことができます。
- 用途: 車両の重心やサスペンション挙動に影響を与えます。
5. Wheel Damping Rate (ホイール減衰率)
- 説明: ホイールの回転に対する抵抗を設定します。値が大きいほど、ホイールの回転がすぐに止まります。
- 用途: 車のホイールが停止するまでの時間を調整します。通常は、小さい値に設定します。
6. Suspension Spring (サスペンションスプリング)
- 説明:
SuspensionSpring
は spring
と damper
という2つのプロパティを持つ構造体で、車両のサスペンションをシミュレートします。
Spring (スプリング力)
: サスペンションの硬さ(復元力)を設定します。高い値に設定するとサスペンションが硬くなり、低い値にすると柔らかくなります。
Damper (ダンパー力)
: サスペンションの動きの減衰力を設定します。高い値にするとサスペンションの動きが速く減衰され、低い値にするとゆっくりと動きます。
Target Position
: ホイールのサスペンションの自然な位置(0=縮み切った状態、1=伸び切った状態)を設定します。
- 用途: スプリングやダンパーの設定により、車両の乗り心地や挙動を調整できます。
7. Friction (摩擦設定)
Forward Friction (前方向の摩擦)
- 説明: 前進・後退方向の摩擦力を設定します。この摩擦はタイヤのトラクションに影響し、ホイールが滑るのを防ぎます。
- プロパティ:
Extremum Slip
: 最大限の摩擦が発生するホイールの滑り量を設定します。
Extremum Value
: 最大摩擦力を設定します。
Asymptote Slip
: 最大摩擦が減少し始めるホイールの滑り量を設定します。
Asymptote Value
: 低減された摩擦力を設定します。
Stiffness
: 摩擦力の全体的なスケーリングを制御します(タイヤの硬さ)。
Sideways Friction (横方向の摩擦)
- 説明: 左右方向の摩擦力を設定します。この摩擦はカーブ時のタイヤのグリップ力に影響します。
- プロパティ:
Extremum Slip
: 最大摩擦が発生するホイールの横滑り量を設定します。
Extremum Value
: 最大摩擦力を設定します。
Asymptote Slip
: 摩擦力が低下し始めるホイールの横滑り量を設定します。
Asymptote Value
: 低減された摩擦力を設定します。
Stiffness
: 横方向の摩擦力を全体的に調整します。
8. Motor Torque (駆動トルク)
- 説明: ホイールに加えられる駆動力を設定します。この値が大きいほど車両は加速します。
- 用途: エンジンの出力に相当し、アクセル入力に応じてこの値を動的に変えることで車両を動かします。
9. Steer Angle (ステア角度)
- 説明: ホイールの回転角度(ステアリング角)を設定します。通常はフロントホイールに適用し、車両の旋回を制御します。
- 用途: ハンドル操作に応じて車両の進行方向を決めるために使用します。
10. Brake Torque (ブレーキトルク)
- 説明: ホイールに加えるブレーキ力を設定します。値が大きいほど、ブレーキが強くかかり、ホイールの回転が早く止まります。
- 用途: スペースキーなどの入力時にブレーキを適用する場合などに使用します。
11. RPM (回転速度)
- 説明: ホイールの現在の回転速度(毎分回転数)を取得します。読み取り専用プロパティです。
- 用途: ホイールの現在の状態や速度をモニタリングするために使用します。
12. Is Grounded (地面に接触しているか)
- 説明: ホイールが地面に接触しているかどうかを示す読み取り専用のプロパティです。
- 用途: ジャンプ中など、ホイールが地面から離れている場合にチェックするために使用します。
曲がる時の挙動が不自然な場合に考えられること
- 横方向摩擦の設定が不適切:
Sideways Friction
の Extremum Slip
や Stiffness
の値が不適切だと、カーブ時にタイヤがスリップしすぎたり、逆にグリップしすぎて曲がりにくくなります。適切な値に調整してみてください。
- サスペンションが硬すぎる or 柔らかすぎる:
- サスペンションが硬すぎると、タイヤが路面に十分に追従できず、カーブ時に跳ねるような挙動になります。逆に柔らかすぎると車両が不安定になります。
Suspension Spring
の spring
と damper
を適切に設定することで、改善できます。
- ステアリング角度が大きすぎる:
- ステアリング角度が大きすぎると、急に曲がりすぎてタイヤがスリップする可能性があります。
maxSteeringAngle
を適切な範囲に調整することが重要です。
- スピードに対して曲がりすぎている:
- 高速時に急に曲がろうとするとタイヤが滑って不自然な挙動になることがあります。この場合、速度に応じてステアリング角度を制限するようなコードを追加すると自然な挙動になります。