Wheel Collider

The Wheel Collider is a special collider for grounded vehicles. It has built-in collision detection, wheel physics, and a slip-based tire friction model. It can be used for objects other than wheels, but it is specifically designed for vehicles with wheels.


The Wheel Collider Component. Car model courtesy of ATI Technologies Inc.

Properties

CenterCenter of the wheel in object local space.
RadiusRadius of the wheel.
Suspension DistanceMaximum extension distance of wheel suspension, measured in local space. Suspension always extends downwards through the local Y-axis.
Suspension SpringThe suspension attempts to reach a Target Position by adding spring and damping forces.
SpringSpring force attempts to reach the Target Position. A larger value makes the suspension reach the Target Position faster.
DamperDampens the suspension velocity. A larger value makes the Suspension Spring move slower.
Target PositionThe suspension's rest distance along Suspension Distance. 0 maps to fully extended suspension, and 1 maps to fully compressed suspension. Default value is zero, which matches the behavior of a regular car's suspension.
MassThe Mass of the wheel.
Forward/Sideways FrictionProperties of tire friction when the wheel is rolling forward and sideways. See Wheel Friction Curves section below.

Details

The wheel's collision detection is performed by casting a ray from Center downwards through the local Y-axis. The wheel has a Radius and can extend downwards according to the Suspension Distance. The vehicle is controlled from scripting using different properties: motorTorque, brakeTorque and steerAngle. See the Wheel Collider scripting reference for more information.

The Wheel Collider computes friction separately from the rest of physics engine, using a slip-based friction model. This allows for more realistic behaviour but also causes Wheel Colliders to ignore standard Physic Material settings.

Wheel collider setup

You do not turn or roll WheelCollider objects to control the car - the objects that have the WheelCollider attached should always be fixed relative to the car itself. However, you might want to turn and roll the graphical wheel representations. The best way to do this is to setup separate objects for Wheel Colliders and visible wheels:


Wheel Colliders are separate from visible Wheel Models

If you want to update the position of the graphical wheel representations according to the suspension position you can use the example for WheelCollider.GetGroundHit in the Scripting Reference. Note that the gizmo graphic for the WheelCollider's position is not updated in playmode:


Position of WheelCollider Gizmo in runtime using a suspension distance of 0.15

Collision geometry

Because cars can achieve large velocities, getting race track collision geometry right is very important. Specifically, the collision mesh should not have small bumps or dents that make up the visible models (e.g. fence poles). Usually a collision mesh for the race track is made separately from the visible mesh, making the collision mesh as smooth as possible. It also should not have thin objects - if you have a thin track border, make it wider in a collision mesh (or completely remove the other side if the car can never go there).


Visible geometry (left) is much more complex than collision geometry (right)

Wheel Friction Curves

Wheel Friction Curves

Tire friction can be described by the Wheel Friction Curve shown below. There are separate curves for the wheel's forward (rolling) direction and sideways direction. In both directions it is first determined how much the tire is slipping (based on the speed difference between the tire's rubber and the road). Then this slip value is used to find out tire force exerted on the contact point.

The curve takes a measure of tire slip as an input and gives a force as output. The curve is approximated by a two-piece spline. The first section goes from (0 , 0) to (ExtremumSlip , ExtremumValue), at which point the curve's tangent is zero. The second section goes from (ExtremumSlip , ExtremumValue) to (AsymptoteSlip , AsymptoteValue), where curve's tangent is again zero:


Typical shape of a wheel friction curve

The property of real tires is that for low slip they can exert high forces, since the rubber compensates for the slip by stretching. Later when the slip gets really high, the forces are reduced as the tire starts to slide or spin. Thus, tire friction curves have a shape like in the image above.

Extremum Slip/ValueCurve's extremum point.
Asymptote Slip/ValueCurve's asymptote point.
StiffnessMultiplier for the Extremum Value and Asymptote Value (default is 1). Changes the stiffness of the friction. Setting this to zero will completely disable all friction from the wheel. Usually you modify stiffness at runtime to simulate various ground materials from scripting.

Hints

Page last updated: 2013-07-12