PhysX Vehicle tracked vehicles
Tracked mode shares the chassis solver but replaces car tires with anisotropic track friction (easy to roll longitudinally, strong lateral grip). Road wheels are generated from PhysX Vehicle Track geometry—they are not authored as ordinary car wheels.
Assemble a tank
- Dynamic rigid body + collider; mass ≈ 35000 kg for the medium-tank preset.
- PhysX Vehicle Chassis → Template Tank → Apply Template (
Vehicle Kind = Tracked, empty wheel list). - Add PhysX Vehicle Track → Apply Tank Track Preset (6 road wheels per side, track half-width 1.4 m, max track speed 12 m/s, …).
- Optionally add PhysX Vehicle Drive (same W/A/S/D mapping; steer becomes differential left / right track speed).
Tank (Entity)
├── PhysX Rigid Body + Collider
├── PhysX Vehicle Chassis (Tracked)
├── PhysX Vehicle Track
├── PhysX Vehicle Drive (optional)
└── Track / road-wheel visuals (optional)
On activate, the Track component pushes its configuration into the chassis and enables tracked solving. Without Track (or with the wrong vehicle kind), the vehicle will not behave as a tank.
Differential steering
| Input | Effect |
|---|---|
| Equal left / right track speed | Straight |
| Speed difference | Turn toward the slower track |
Opposite directions (drive ≈ 0, steer ≠ 0) | Pivot / neutral turn |
With PhysX Vehicle Drive, throttle sets overall track demand and steer biases left vs right. For direct differential control from script / AI:
PhysXVehicle::VehicleControlRequestBus::Event(
chassisEntityId, &PhysXVehicle::VehicleControlRequests::SetTrackThrottle,
leftThrottle, rightThrottle); // typically [-1, 1], scaled to max track speed
Read telemetry from VehicleStateRequestBus:
| API | Use |
|---|---|
GetTrackSurfaceSpeedLeft / Right | Commanded surface speed (m/s) |
GetTrackTravelDistanceLeft / Right | Accumulated travel (m) for UV scroll |
Left and right travel advance independently when turning—drive material UV offsets from these values.
Track geometry fields
| Field | Role |
|---|---|
| Road wheels per side | Contact count per track (default 6) |
| Track half-width | Lateral distance from center line to each track (m) |
| First wheel offset Y | Longitudinal position of the front-most road wheel (m) |
| Wheel spacing | Gap between consecutive road wheels (m) |
| Suspension top Z | Anchor height in chassis local up (m) |
| Wheel radius | Road-wheel radius (m) |
| Suspension (shared) | Rest length, travel, stiffness / auto-stiffness, damping |
Road wheels are built in chassis local space from forward / right axes derived from Forward axis on the chassis.
Anisotropic friction
| Field | Role |
|---|---|
| Long friction / long gain | Longitudinal traction along the track |
| Lat friction / lat gain | Side-slip resistance (usually much higher) |
| Max track speed | Surface-speed clamp (m/s) |
Tuning:
| Symptom | Try |
|---|---|
| Pivot turn jitter | Lower long / lat gains; keep physics fixed step stable |
| Climbing slips | Raise long friction or add road wheels |
| Hull slides sideways | Raise lat gain / lat friction |
| Too slow top speed | Raise max track speed and/or drive peak torque on the chassis drive config |
Visuals
- Track / sprocket / road-wheel meshes are authored like any other renderables.
- Use
GetTrackTravelDistance*for belt UV scrolling; the Gem does not auto-scroll materials. - Ordinary Wheel Entity Id pose sync applies to generated road-wheel configs if you assign entities after generation—most tank visuals instead key off travel distance.
Next steps
- Components — Track and chassis field tables.
- Scripting and control —
SetTrackThrottleand state queries. - Debugging — contact and force visualization.