Asset Creation Manual
Mass & Density Setup for assets used as Entities

Mass & Density Setup for assets used as Entities

Below is the technical instruction from Anton: 


Physical properties

Mass, Density 

It is possible to specify either density or mass. If you specify one, set the other to a negative value (-1, or -0.01). Mass and density affect the way objects interact with other objects and float in the water (they sink if their density is more than that of the water). A zero-mass rigid body (with both mass and density 0) is a special case which means an "animated" rigid body (moved from outside the physics system). The difference from a static entity is that the physics will be aware that this object is actually dynamic, although it cannot simulate it directly. Note that both values describe the same physical property. When you specify mass, density will be computed automatically and vice versa. The relationship mass = density x volume is used. These computations imply that the object is solid; if you use a box to model an empty crate, you should assume that its density is a weighted average between wood density and inside air density. Here are some reference density values (in kg/m3): 




max_time_step (0.005..0.1) Sets the maximum time step the entity is allowed to make (defaults to 0.01). Smaller time steps increase stability (can be required for long and thin objects, for instance), but are more expensive. Each time the physical world is requested to make a step, the objects that have their maxsteps smaller than the requested one slice the big step into smaller chunks and perform several substeps. If several objects are in contact, the smallest max_time_step is used; 

damping (0..3) Sets the strength of the damping on an object’s movement. Most objects can work with 0 damping; if an object has trouble coming to rest, try values like 0.2-0.3. Values of 0.5 and higher appear visually as overdamping. Note that when several objects are in contact, the highest damping is used for the entire group. 

FixedDamping (true/false) When true, this object will force its damping to the entire colliding group (use it when you don’t want a particular object being slowed by a highly damped entity, like a dead body). 

sleep_speed (0.01..0.3) If the object’s kinetic energy falls below some limit over several frames, the object is considered sleeping. This limit is proportional to the square of the sleep speed value. A sleep speed of 0.01 loosely corresponds to the object’s center moving at a velocity of the order of 1 cm/s. 

water_resistance (0..2000) Water resistance coefficient. If non-0, precise water resistance is calculated. Otherwise only water_damping (proportional to the submerged volume) is used to uniformely damp the movement. The former is somewhat slower, but not prohibitively, so it is advised to always set the water resistance. Although water resistance is not too visible on a general object, setting it to a suitable value will prevent very light objects from jumping in the water, and water flow will affect things more realistically. Note that water damping is used regardless of whether water resistance is 0, so it is better to set damping to 0 when resistance is turned on. 

water_density (100..1000) This parameter could be used to specify that the object’s physical geometry can leak. For instance, ground vehicles usually have quite large geometry volumes, but they are not waterproof, thus Archimedean force acting on them will be less than submerged_volume*1000 (with 1000 being the actual water density). Decreasing per-object effective water density will allow such objects to sink (as they would in reality) while still having large-volume physical geometry. Important note: if you are changing the default value (1000), it’s highly recommended that you also change water_resistance in the same way (a rule of thumb might be to always keep them equal). 

Some state-specific properties: 

RigidBody (true/false) False means a static entity, true - a simulated rigid body. Note that a rigid body can still behave like a static entity if it has mass 0 (set either explicitly or by unchecking *RigidBodyActive*). The main difference between these rigid bodies and pure statics is that the physics system knows that they can be moved by some other means (such as the trackview) and expects them to do so. This means that objects that are supposed to be externally animated should be mass-0 rigid bodies in order to interact properly with pure physicalized entities. 

Resting (true/false) The rigid body's initial state is sleeping. It'll need to be awoken by an external stimulus (bullet hit, explosion, collision, player interaction, etc) in order to start being simulated. BasicEntities have this flag on unconditionally. 

CanBreakOthers (true/false) True if the entity can break jointed objects by colliding with them (provided they overcome the strength limit). BasicEntities have this flag off unconditionally. 

Note that some of these properties can are only exposed in the RigidBodyEx entity. 

Some properties, specific to the AnimObject entity: 

Articulated (true/false) Physicalizes the character as an articulated physical entity (i.e., with bendable joints). 

ActivatePhysicsThreshold (0..) Greater than 0 values are used for objects with pre-backed physical animations (requires Articulated to be on). Specifies the amount of force (in fractions of gravity) that needs to be exerted on a part for it to become detached and fully controlled by the physics. 

ActivatePhysicsDist (0..) Used for objects with pre-baked physical animations (requires Articulated to be on and ActivatePhysicsThreshold to be greater than 0). Specifies the distance from the pivot after which parts automatically detach themselves from the animation and become fully physicalized. 0 disables distance-based detachment. 

Addition: Dry static friction reference table 


Material pair 
Copyright © 2008 Crytek GmbH. All rights reserved.