Search public documentation:


Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 Home > Physics > Physical Material

Physical Material


Physics materials are fairly easy to use. Creating one will give you a set of default values, identical to the default physical material that is applied to all physics objects. Physical materials are used to define the response of a physical object when interacting dynamically with the world. Examples of this would be a character's dead body (ragdoll), a movable crate, etc. Physical material masks provide the ability to use two physical materials on different parts of a graphical material.


  • AngularDamping - The amount of resistance an object will have to rotating. Usually used in a range of 0-5.
  • bForceConeFriction - This is a feature that causes the physics engine to use a better (and slightly slower) friction model for surfaces. Use this when you are sliding one object across another, and it does not slide in a straight line.
  • Density - The mass of an object is calculated by taking the volume of the collision geometry and multiplying it by this property. So making an object bigger or increasing its Density will make it heavier.
  • Friction - How much resistance to movement the object will have when touching or sliding along another surface. A value of 0 is a frictionless surface, a value of 1 is similar to sliding on a rough surface.
  • LinearDamping - The amount of resistance an object will have to moving in the world. Not the same as friction, this acts more like drag.
  • MagneticResponse - Not currently implemented.
  • Parent - If a value(such as impact effect) is not set on this PhysicalMaterial, then the code will look at this Parent PhysicsMaterial, and so on up a hierarchy.
  • PhysicalMaterialProperty - This allows you to make 'chains' of physical materials that inherit properties from their parent. There is more information on the PhysicalMaterialProperty page.
  • Restitution - The amount of 'bounce' an object will have. This value represents the amount of force that will be returned to an object on collision. 0 means that the object will not gain any force, therefore will not bounce at all, and a value of 1 means that the object will receive all of its energy back and bounce to the same height that it was dropped from.
  • WindResponse - No longer used.
  • bEnableAnisotropicFriction - Allows a surface to have different friction in different directions along the surface.
  • FrictionV - Friction to be applied in AnisoFrictionDir - the 'Friction' setting will be used for the other direction.
  • AnisoFrictionDir - Direction (in physics object local space) for FrictionV to be applied.

You can find more information on friction and damping on the PhysicsDampingAndFriction page.

Impact And Slide Effects

The following properties allow you to attach sounds and effects to physical collisions. These only work on classes which support them, which at the moment is only KActor. By looking at the implementation in KActor though, you can add this functionality to other classes (or you can subclass KActor). Also, because doing extra processing on all rigid body collisions would be expensive for every physics object in the level, it is disabled by default. To enable the rigid body collision events that are used by these properties, open up the properties of the component and make sure the bNotifyRigidBodyCollision flag is set to true.

  • ImpactThreshold - Velocity at which objects must collide (projected along contact normal) for sound or effect to be triggered.
  • ImpactReFireDelay - Time between firings of the impact effect/sound.
  • ImpactEffect - Particle system to spawn at the point of impact.
  • ImpactSound - Sound to play when an impact occurs.
  • SlideThreshold - Sliding speed at which effect is started. This is relative velocity in the plane of the contact normal. When sliding velocity drops below this threshold, effects are stopped.
  • SlideRefireDelay - Stops 'slide' effects being played too closely together.
  • SlideEffect - Particle system to enable at point of contact when sliding. Should be a looping particle effect.
  • SlideSound - Sound to play when an objects sliding velocity exceeds SlideThreshold. Should be a looping sound.

As well as simply triggering effects, the KActor implementation also drives named float parameters on the particle and audio components. For impacts this parameter is called ImpactVel. For sliding, it is called SlideVel. You can use this parameter to modify the pitch or volume of a sound, of the spawn rate or color of a particle system for example. There is more information on named parameters on the Distributions page.