The Simulation System
General
With the introduction of a new simulation technology, Maxon lays the foundation for a new dynamics system in Cinema 4D. This system can calculate any type of physical behavior, including cloth and spline simulations (rope).
Currently, all tags that can be found in the tag menu Simulation Tags work with the new simulation system:
-
Cloth: Can be assigned to polygonal objects and polygon-generating Generators.
-
Rope (the previous Spline Dynamics tag): Can be assigned to splines.
-
Connector: Is assigned to objects to which the Rope or Cloth tag is assigned and connects these objects to one another.
-
Cloth Belt (the previous Belt tag): Is assigned to objects to which the Cloth tag is assigned and connects these objects to other polygonal, non-simulated objects.
-
Rope Belt (the previous Hair Constraint tag): Is assigned to objects to which the Rope tag is assigned and connects these objects with other polygonal, non-simulated objects.
-
Collision: is assigned to non-simulated polygonal objects and polygon-generating Generators that serve as obstacles for the simulation system, i.e., objects can collide with them and do not penetrate them.
The new Cloth/Spline simulation system works different than the old system internally. It differs as follows:
-
Old system: The old system is based on impulses and forces that resulted in increases in acceleration and velocity. Masses and springs played large roles.
-
New simulation system: Object points are seen as particles connected by - depending on the application area - specific rules (called constraints). For clothing, for example, there are 2 main types of constraints: Distance restrictions for particles that are connected by mesh edges and bend restrictions for mesh polygons that lie next to one another. The former attempt to maintain a constant particle distance, the latter attempt to maintain the angle between the polygons. Then there are also contact constraints, for example, that gently move particles (e.g., edges, triangles) apart that come too close to one another in order to avoid penetration. For each frame of animation, a Solver has to be used to keep everything together and position the particles accordingly.
This all sounds complicated but in the end it boils down to the following advantages: The new simulation system is faster (can also be calculated on the GPU, for example), more precise, more realistic, more stable and easier to use. Furthermore, the following can be done using the new system:
-
Most Simulation Force objects work.
-
The Tearing function does not require a Cloth Surface object.
-
The object to which the Cloth tag is assigned no longer has to be polygonal and can even be a Generator.
-
In hierarchies, if the topmost object is given a clothing tag, subordinate objects behave as if they each had their own, so they are calculated independently of each other.
The new Simulation System also has - as generally known from simulation systems - basic Solver settings, which you can find under "Project Settings/Simulation". Since these presets naturally have an effect on the simulation's behavior, you can apply different presets to different simulations by using multiple Simulation Scene objects that have the same parameters as the simulation project settings. The Simulation Scene objects can then be assigned different tags, forces, cloth belts or collision objects. The tags assigned to a Simulation Scene object interact with one another but not with those of another Simulation Scene object.
Tips and tricks
-
At the beginning of a simulation, there should be no contacts, taking into account the Thickness setting. Otherwise, at the start of the simulation and within a single animation frame, everything that can lead to wrinkling or trembling will be moved out of the contact zone.
-
If movement or deformation changes are too rapid or abrupt, penetrations may occur during collision. Generally speaking, it helps to increase the Substeps setting.
-
With simulation elements that are far away from the world origin, mathematical rounding errors can occur (GPUs calculate with 32 bits - instead of 64 bits with the CPU), which can manifest itself in strange simulation behavior (e.g., different clothing behavior with the same settings, e.g., 2 flags that are far away from each other flutter totally differently). Here it can help if the objects to be simulated are moved closer to the world origin or to vary the Scene Scale.
-
For example, it is not easy to control physical textile behavior. Textiles are mainly characterized by their stiffness - or lack thereof. Even though the new Simulation System has a Bendiness setting, it is dependent on a series of factors that affect the stiffness. These are e.g. Substeps, iterations (both simulation project settings), pliability, stretchability (garment or rope tag) and also the mesh density. This is why settings such as "Bendiness =1 to make an object behave like leather" are not possible.
-
The mesh density and distribution just mentioned also has a major influence on the behavior of a simulation.
You can see in this image 5 spheres with the same diameter, exactly the same Cloth tag settings, but different meshes. When falling and colliding with the layer, these objects will behave completely differently. The second to last sphere with the dense mesh will deform much more than the others; the sphere on the right side has a much higher mesh density, which causes the mass to be concentrated there. This will make it rotate downwardly and to the right when it hits the floor.
Limitations
-
The advantage in speed for the calculation for the graphics card (GPU) is only noticeable if the simulation is complex enough. For smaller scenes in which only a few hundred polygons are used, the CPU can be faster
-
When calculating using the GPU, the start of the simulation may be delayed slightly. This delay is due to the data being compiled. This only happens the first time it's started.
-
Simulations will produce different results on different computers. You will also get different results if you calculate the simulation on the CPU or GPU (selected here:Device). Therefore you should always bake/cache the simulations if you require identical results (e.g., when using a render farm). This can be done for the Cloth tag, for example, in the Cache tab.
.