On this page
Building Vehicles

Ground Physics

How RCC changes grip, wheel sounds, particles, skidmarks and tire deflation per surface, and how to set up your own surfaces on meshes and Unity Terrain.

Quick Start

Add an ice surface:

  1. In the Project window, create a new physic material asset and name it Ice.
  2. Select your ice collider(s) and drag Ice into each collider's material slot.
  3. Open Tools → BoneCracker Games → Realistic Car Controller → Configure → Configure Ground Materials and click Create New Ground Material.
  4. In the new box at the bottom of the list, set Physic Material = Ice, Forward Stiffness = 0.3, Sideways Stiffness = 0.3, Wheel Particles = Prefabs/Particles/RCC_WheelSlipAsphalt, Wheel Sound = Sounds/Wheel/AsphaltSkid, Wheel Skidmarks = Prefabs/RCC_Skidmarks_Asphalt.
  5. Enter Play mode and drive onto the ice.

How a Surface Is Chosen

All surfaces live in one asset: Resources/RCC Assets/RCC_GroundMaterials.asset. Every physics step, each wheel picks one Ground Materials entry:

  1. Wheel in the air → entry 0.
  2. Collider's physic material matches an entry's Physic Material → that entry (first match wins, compared by asset reference, not name).
  3. Collider's physic material matches a Terrain Physic Material entry → RCC finds the strongest terrain layer under the wheel and uses the Ground Materials entry that layer maps to (see Unity Terrain).
  4. Anything else → entry 0.
The checks each wheel runs every physics step to find its surface. Terrains go through the painted-layer lookup on the right.

Entry 0 is the default surface. The inspector marks it (Default); in the shipped asset it is Asphalt.

Opening the Editor

  • Tools → BoneCracker Games → Realistic Car Controller → Configure → Configure Ground Materials
  • Tools → BoneCracker Games → Realistic Car Controller → Edit RCC Settings, then Wheel Physics Settings → Configure Ground Physic Materials (or SFX Settings → Configure Wheel Slip Sounds)
  • Select Resources/RCC Assets/RCC_GroundMaterials.asset in the Project window.
The Ground Materials editor. Each box is one entry; entry 0 is marked (Default).

Do not move the Resources/RCC Assets folder. Create New Ground Material adds an entry at the end of the list; the red X on an entry removes it.

Ground Material Fields

Inspector label What it does New entry default
Physic Material The physic material this entry matches. Always assign one. empty
Forward Stiffness Multiplies the wheel's forward (accelerate / brake) grip. Higher = more grip. 1
Sideways Stiffness Multiplies the wheel's sideways (cornering) grip. 1
Slip Slip threshold. Above it, particles, skid sound and skidmarks start, and TCS starts cutting torque. Does not change grip. 0.25
Damp Wheel damping rate (rolling resistance), applied fully with no throttle and fading out at full throttle. Higher = the car slows down faster when coasting. 1
Volume Skid sound volume at full slip (0–1). 1
Wheel Sound Skid sound. Plays only while the wheel slips above Slip; pitch rises with slip. empty
Deflate Touching this surface flattens the tire immediately. off
Wheel Particles Particle prefab (Particle System on its root). Emission turns on above Slip and off below it. Required — an empty slot throws an error on every wheel when a vehicle spawns. empty
Wheel Skidmarks RCC_Skidmarks prefab drawn on this surface. Empty = no skidmarks on this surface. empty

Only Volume has a range (0–1). The other numeric fields accept any value ≥ 0.

Global switches in RCC Settings → Optimization: Do Not Use Any Particle Effects (no wheel particles are created, so an empty Wheel Particles slot no longer errors) and Do Not Use Skidmarks.

Shipped Surfaces

Physic materials are in Physics Materials/, particles in Prefabs/Particles/, sounds in Sounds/Wheel/, skidmarks in Prefabs/.

# Physic Material Fwd / Side Stiffness Slip Damp Volume Wheel Particles Wheel Sound Wheel Skidmarks Deflate
0 RCC_AsphaltPhysics (Default) 1.2 / 1.2 0.2 1 1 RCC_WheelSlipAsphalt AsphaltSkid RCC_Skidmarks_Asphalt off
1 RCC_GrassPhysics 1 / 1 0.1 3 1 RCC_WheelSlipGrass GrassSkid RCC_Skidmarks_Grass off
2 RCC_SandPhysics 0.8 / 0.8 0.05 10 1 RCC_WheelSlipSand SandSkid RCC_Skidmarks_Sand off
3 RCC_PlatformPhysics 1.2 / 1.2 0.2 0.75 1 RCC_WheelSlipAsphalt AsphaltSkid RCC_Skidmarks_Asphalt off
4 RCC_WheelSpike 1 / 1 0.25 10 0 RCC_WheelSparkles — RCC_Skidmarks_Asphalt on
Shipped surface values side by side: grip multipliers, the slip threshold where effects start, and coasting resistance.

RCC_WheelSpike is used by Prefabs/SpikeStrip.prefab.

Unity Terrain

A terrain uses one physic material on its Terrain Collider. RCC reads the terrain's painted layers and converts the strongest layer under the wheel into a Ground Materials entry.

The RCC_Multiple_Terrain demo scene: several terrains with painted layers. Each layer drives like the Ground Materials entry it maps to.

Setup

  1. Create a physic material for the terrain (e.g. MyTerrainPhysics). Do not add it to the Ground Materials list — Ground Materials entries are checked first, so the terrain would behave as that one entry everywhere.
  2. Assign it to the terrain's Terrain Collider material slot.
  3. In Configure Ground Materials, expand Terrain Physic Material, add an element and set its Ground Material to MyTerrainPhysics.
  4. Under Splatmap Indexes, add one element per terrain layer, in the same order as the terrain's layer list (element 0 = first layer). Set each element's Index to the Ground Materials entry number that layer should use (0 Asphalt, 1 Grass, 2 Sand, …).
  5. Enter Play mode.
A Terrain Physic Material element in Configure Ground Materials. Splatmap Indexes list one Index per terrain layer, in layer order.

Example: a terrain with layers Road, Grass, Dirt → Splatmap Indexes 0, 1, 2 gives Road = Asphalt, Grass = Grass, Dirt = Sand.

The example above as a picture: the terrain's collider material selects the element, and each painted layer maps to a Ground Materials entry.

Rules

  • Terrain layers without a Splatmap Indexes element, and Index values that don't exist in Ground Materials, use entry 0.
  • Several terrains can share one terrain physic material; RCC uses the terrain the wheel is actually on.
  • The RCC Scene Manager reads all active terrains' painted data once, shortly after the scene starts. Terrains loaded or repainted later are not picked up.
  • If any active terrain is missing its Terrain Data, terrain lookup is skipped for all terrains (Console error in the Editor).

Shipped terrain entries

Terrain physic material Used in Layer 0 → Layer 1 → Layer 2 →
RCC_TerrainPhysics1 RCC_Multiple_Terrain Asphalt Grass Sand
RCC_TerrainPhysics2 RCC_Multiple_Terrain Grass Asphalt Sand
RCC_TerrainPhysics3 RCC_Multiple_Terrain Sand Asphalt Grass
RCC_TerrainPhysics4 RCC_Multiple_Terrain Sand Asphalt (fallback) Asphalt (fallback)
RCC_TerrainPhysics RCC_City scenes Sand Grass Grass

Tire Deflation

On a surface with Deflate on, the tire flattens as soon as the wheel touches it: wheel radius × Deflate Radius Multiplier and grip × Deflated Stiffness Multiplier (per wheel on RCC_WheelCollider; shipped vehicles use 0.8 and 0.5). The deflate sound, flat-tire sound and deflate particles come from RCC Settings (Wheel Deflate Sound, Wheel Flat Sound, Wheel Deflate Particles).

A front tire flattened by the SpikeStrip in the RCC_Damage demo scene: smaller radius and less grip until it is inflated again.

To restore a tire from code, call Inflate() on its RCC_WheelCollider. A tire still touching a Deflate surface flattens again.

Common Problems

Symptom Fix
Surface behaves like asphalt The collider has no physic material, or a different one than the entry (duplicate assets with the same name count as different).
Whole terrain behaves like one surface The terrain's physic material is also in the Ground Materials list. Remove it from there.
Wrong surface on a terrain layer Splatmap Indexes order doesn't match the terrain's layer order.
Errors on every wheel when a vehicle spawns An entry has an empty Wheel Particles slot, or the prefab has no Particle System on its root.
No skidmarks on one surface That entry's Wheel Skidmarks is empty, its Slip is too high, or Do Not Use Skidmarks is on.

See Also

BoneCracker Games · Realistic Car ControllerBack to top ↑
Document details

Generated from: 11_GroundPhysics.md
Date: 2026-09-24 01:26
© 2014 - 2026 BoneCracker Games — Realistic Car Controller V6.0.0