GroundDetection
is one of the most important aspects of NWH Vehicle Physics. It determines which WheelFrictionPreset
will be used for calculating friction, which effects will be active, and which sounds will play. In short, it determines which wheel is on which surface.Terrain
texture indices and object tags so it is very important how many textures there are assigned to the Terrain
and in which order.
To prevent having to change the settings across all the vehicles GroundDetectionPreset
ScriptableObject
was introduced in NWH Vehicle Physics 2.
Terrain
s in one scene.GroundDetection
runs checks for a maximum of one wheel at a time. This is to improve on performance but it can introduce a small delay from the time the surface has been changed to the time GroundDetection
registers it.SurfaceMap
tells GroundDetection
which SurfacePreset
to use for which terrain texture and/or object tag.GroundDetection
runs a check for each WheelComponent
to determine which surface that WheelComponent
is on. This is done by checking all the assigned SurfaceMap
s in order and if any SurfaceMap
has a matching terrain texture index in Terrain Texture Indices
list, or the object the wheel is on has the tag from Tags
list, Surface Preset
will be assigned to that WheelComponent
.
Adding a gravel SurfaceMap
will be used as an example.
SurfaceMap
by clicking on +
button on the bottom of the list.Terrain Texture Indices
list.GravelRoad
) to those objects and add it to Tags
list.
SurfacePreset
tells the VehicleController
which settings to use for which surface.
This determines tire friction, the look of effects such as skidmarks and particle effects. It also changes sounds to match the surface.
Once set up, SurfacePreset
can be used for different terrains, scenes or even across games since SurfacePresets
do not carry any scene-specific fields.
Create ⇒ NWH Vehicle Physics ⇒ Surface Preset
. This will create a new SurfacePreset
ScriptableObject
in the current directory.Friction Preset
. This is a ScriptableObject
with settings for tire friction so that WheelController
can adjust its behavior according to the surface type. With asset come multiple Friction Preset
s so just pick one of those for now.Skidmark Material
will be used on generated skidmarks while the wheel is on this surface type.Slip Factor
determines if the skidmarks are slip dependent. On soft surfaces such as sand this value should be 0 as the skidmarks/thread-marks should always be visible, no matter the slip. On hard surfaces such as asphalt skidmarks are only visible when there is wheel slip.ParticleType
- Smoke
should be used for hard surfaces (asphalt, concrete), Dust
for dusty surfaces (gravel, sand). The difference between the two is in the way the emission rates are calculated. If Smoke
is selected this will be related to the wheel slip while it will depend on vehicle speed for Dust
.Particle Life Distance
is used to calculate ParticleSystem
's Start Lifetime
. The faster the vehicle is going the shorter the lifetime of the particles will be.Max Particle Emission Rate Over Distance
determines amount of particles emitted over distance of one meter.Max Particle Lifetime
determines the absolute maximum time a particle can be alive. When still this value determines how long the particle lives. When moving Particle Life Distance
is used instead.
Chunk particles represent pieces of dirt, debris, sand or pebbles thrown behind the tire when there is wheel spin.
Depending on speed the lifetime of a a particle is calculated from Max Chunk Lifetime
(when near still) or Chunk Life Distance
(when moving).
SkidSound
and SurfaceSound
settings are used to set WheelSkidComponent
and WheelTireNoiseComponent
SoundComponents values for current surface.