Objects - Rigid Body (MultiBody)

MultiBodies support RealFlow's rigid body dynamics and they can interact with other rigid or soft bodies and fluids, but there are a few differences in comparison with standard SD nodes:

  • “Primitive” type is always set to “Mesh” by default and “Collision Side” is “Outside”. Of course, you can change these initial settings according to your needs.

  • MultiBodies do not provide a "@ CG" parameter.

  • Instead of an "@ mass" parameter, there is an "@ density" option.

To enable an object’s rigid body dynamics feature, please go to

Node Params > Node > Dynamics > Active (Passive) rigid body

The panel's parameters are exactly the same for both modes, but the motion-depending settings are not available for passive rigid bodies, because they act like static obstacles.

 

 

Primitive

Each rigid body needs a surrounding geometry for collision detection and that is exactly what “Primitive” does. You can choose from various basic shapes or from exact representations of the active object. The less complex the selected shape, the faster the simulation will be calculated, but with simple approximations, accuracy is often not high enough and you might see interpenetration effects. For large amounts of objects or nodes with many polygons it will take a little time until the desired primitive type is applied. You can choose from 4 different shapes: “Sphere”, “Box”, “Convex Hull” and “Mesh”. The first two options can be used for nodes with an equivalent shape, while “Convex Hull” and “Mesh” are suited for more complex bodies. “Convex Hull” approximates the given shape with a bounding grid; “Mesh” exactly represents the entire object.

Collision side

This entry is only available with “Primitive” set to “Mesh” and offers a very interesting feature. You can choose which side of the node’s polygons should be used for collision and interactions. With “Inside”, for example, you can quickly fill objects with rigid bodies, like filling candy into a jar. The other option is “Outside”.

@ density

Since MultiBodies can consist of a lager number of objects, it would be a major limitation to use the same mass value for all items. With a density-based approach it is possible to overcome this restriction, because now small parts will also have low mass. Density is defined as mass per volume [kg/m3].

@ air Friction

In real life, the movement of an object is always decelerated because of various friction effects – a vehicle on a street, for example, does not roll forever. Even a thin medium like air produces a certain amount of friction. Normally you do not observe this force, but with higher velocity, you will start to experience a growing resistance – air friction. So, if your simulation happens on Earth or a planet with an atmosphere, it is always recommended to add a certain amount of air friction. Very high values can even stop an object completely.

@ Velocity

Sometimes you do not want a simulation to start from zero, but the objects do need an initial velocity. This parameter, measured in metres per second [m/s], assigns such a behaviour by simply entering positive or negative values. Keep in mind that “@ Velocity” directly determines the body’s trajectory and a value of [ 2,0,0 ], for example, creates a linear motion along the positive X axis.

@ Rotation W

This parameter actually works the same way as “@ Velocity”. Instead of an initial velocity, you can add an initial rotation mostly to avoid a uniform look. You also have three values and each one is measured in degrees per second [deg/s]. Negative settings are, of course, accepted.

@ object friction

Object friction occurs when bodies with uneven surfaces interact. Since there are no perfectly even surfaces in the real word, a certain amount of friction is always recommended for believable simulations. “@ object friction” slows down the object and can even stop it completely. Nevertheless it is totally up to you if you want to eliminate friction completely. The maximum value for “@ object” friction should not exceed 1.0. If you have many objects in your scene, it is a good idea to apply different values for more realism. For this purpose, a script is surely the best solution.

@ elasticity

Each object has a certain amount of elasticity, making it bounce. The highest possible value is 1.0, and with this setting the body would bounce forever, because it does not lose energy (“@ air friction” and “@ object friction” must both be 0.0 to achieve this behaviour). This, of course, can only happen inside RealFlow, because in nature there are no perfectly elastic objects.