Reference Cinema 4D Advanced Features Dynamics Spring
Function available in CINEMA 4D Studio

Basic Coord. Object Display

Object Properties

Type

Linear

This Spring type will create a linear, straight spiral-shaped spring between Object A and Object B. The location of the Spring is irrelevant in this case (unless one of the objects was not defined).

Angle Spring

This Spring type will create an angular spring - a spring that generates torque (its origin lies at the object’s center of mass). In the past, this type of spring was used in the manufacture of watch movements. This Spring should be located at the common center of rotation of both objects.

Linear + Angle Spring

Both of the Spring types mentioned above will have an effect.

Object A
Object B

Object fields A and B can be found in the following Dynamics objects:

• Connector
• Motor
• Spring

These 3 objects each connect 2 objects using different methods.

Both objects can be dragged into the Object A and Object B fields, respectively. If one of the Object fields is left empty, the following will result:

• Connectors: Position and rotation of the Connectors are fixed (otherwise the Connector would move/rotate with the objects).
• Motors: The basic principle "action = reaction" no longer applies. Force and torque are generated autonomously (see below).
• Springs: One of the springs will lie in the world coordinate system’s origin.

Except when using the Ragdoll and Wheel Suspension modes, it does not play a role in which order the objects to be connected are dragged into the Object A and Object B.

If an Object field is left empty when using Motor Dynamics: According to the laws of physics (actio=reaction), when one body exerts force on another, the second body exerts a collinear force on the first equal in magnitude but oppositely directed. This condition is met when each field contains an object. A good example is that of a helicopter: The rotor blades are driven by a motor and rotate accordingly. Simultaneously a colinear force is exerted on the helicopter’s fuselage. The tail rotor compensates for this - otherwise the fuselage would rotate around its vertical axis.

Reference Axis A
Reference Axis B

Reference axes are needed wherever a rotation needs to be measured, as is the case with a Connector with a rotational movement and a rotational spring. In both cases, the rotational movement can be restricted to a specific range. Both the Connector and the rotational spring must lie on the same rotational plane.

Connectors

Take a good look at the image above. The rotational angle of both Connectors is restricted and have a limit stop and a limit stop display. Note how the limit stop display (belongs to Object B) aligns itself exactly parallel to the axis of Object B. The same is true for the limit stop.

You also see that selecting the Y of Object option would not make sense here because neither limit stop nor limit stop display could align themselves accordingly.

Let’s say the Connector lies exactly on the object axis of Object A. If Reference Axis A were set to Direction to Object the Connector would be very confused because the Connector and the object would be exactly the same. One of the object axes would have to be defined.

Torsion Springs

A torsion spring behaves similarly. Note how each blue spring "end" aligns itself to the defined axis, respectively. Selecting the X to Object option would not make sense in this case.

Many times you will not have to manually adjust the reference axes at all. This is necessary in such cases as described above in order to avoid Gimbal Lock. Imagine the Connector or spring are angled forward 90° in reference to the image above. This is where Gimbal Lock would occur. You can avoid this if you - as we suggested - align Connectors and torsion springs correctly in the Viewport (i.e. acording to their direction of rotation).

This might sound a little complicated but you can get a better grip on this by simply experimenting with the parameters. Just make sure you keep an eye on the limit stop and limit stop display when modifying parameter values:

Limit stop and limit stop display for various Connectors.

Attachment A
Attachment B

An ascending Zeppelin is being held in place using a Connector with various restraining lines.

Wherever forces guide an object, the point on the object at which this occurs is important. For example, if a motor that pushes a Hard Body object along is located at that object’s center of mass, the object will be moved in a straight line (in the absence of any other forces). If the force affects the object outside of its center of mass, torque will automatically be generated and the object will rotate.

Soft Body objects, however, behave differently. Each object point is connected via springs to other points. If a force affects only a single point an unwanted result can be produced. However, the effect can be spread to larger regions:

The Attachment A and Attachment B parameters are available for the following Dynamics objects:

• Connectors
• Motors
• Springs

Center of Mass

This option contains no additional settings. The force is generated at the center of the given object’s mass. No deformations will occur on Soft Body objects.

Polygon Point

This option lets you select a specific object point at which the force will have its origin. The Region of Influence value lets you increase (or decrease) the region around this point within which the force will affect the object. This is only relevant for Soft Body objects and has no effect when applied to Rigid Body in conjunction with Connectors.

Point Selection

Force can also be applied via Maps (Point Selections tag oder Vertex-Maps). Additional parameters will be made available with which you can, for example, adjust the degree to which the selected (or weighted) points can be affected.

Index [-2147483648..2147483647]
Index [-2147483648..2147483647]

This is the object’s index number. Internally, all of a polygonal object’s points (including generated points) are numbered. This is displayed interactively in the Viewport when you browse the values.

All object points (however, only for polygonal objects) are listed in the Structure Manager.

Map
Map

You can drag a Point Selection tag or a Vertex Map into this field.

Region Of Influence [1..1000%]
Region Of Influence [1..1000%]

Since it is not that easy for Soft Bodies to process the effect of a force on a single object point (this often looks unrealistic), the Region of Influence parameter can be used to define a region around a point within which the effect of a force can be introduced. A value of 100% will include the entire mesh. In doing so, the polygon point (or polygon selection) itself will be weighted with 100% and the point most distant from it with 0%. When lesser values are used correspondingly fewer points will be affected by the force. A value of around 1% will only affect the selected point or selection (however, internally larger values will in fact be in effect as a result of a built-in protective mechanism).

A lesser value can be useful if you want to couple larger regions defined via point selection to Dynamics Connectors, Springs or Motors (e.g., a tubular Soft Body that is connected via a Connector to a circle).

Shape Conservation [0..+∞]
Shape Conservation [0..+∞]

Highlighted point selection on a Soft Body is pulled by a spring whilst a sphere simultaneously falls onto it. Top right: low Shape Conservation value; bottom right: higher Shape Conservation value.

This value defines the degree to which the selection or point geometry affected by a vertex map can be deformed by a force. Lesser values result in greater deformations; increasing values result in correspondingly lesser deformations.

Damping [0..+∞%]
Damping [0..+∞%]

Returning an object to its original shape is done using springs, whose damping is adjusted using this value. Lower values increase the stiffness of the effect.

Apply

As mentioned in the description of Object A, "action = Reaction" applies for both objects. Use this setting if you want force or torque to affect one of the objects in a non-realistic manner.

Rest Length [0..+∞m]
Rest Angle [-∞..+∞°]
Set Rest Length
Set Rest Angle

A spring’s actual length is its length at its state of rest, when it exerts no force. Use the Set Rest Angle button to define the Spring’s current length as its length.

Stiffness [0..+∞]
Stiffness [0..+∞]

A spring’s stiffness (known in physics as "spring constant") defines the degree of force required to expand or compress the spring. The more stiff a spring is, the more difficult it will be to expand or compress it (and the faster it will oscillate).

Damping [0..+∞%]
Damping [0..+∞%]

All springs eventually stop oscillating. The speed with which a spring comes to rest depends on the friction of the material from which it is made. This effect is simulated in Dynamics using the Damping value. If set to 0 the Spring will oscillate indefinitely (unless a linked object has its own Damping value defined). The higher the Damping value, the faster a Spring will stop oscillating.

Modified and broken springs

These values affect the modification of the spring’s Rest Length. By the same token, the Angle spring values only affect the angular movement.

Elastic Stretch Limit
Value [0..+∞m]

Elastic Compression Limit
Value [0..+∞m]

Elastic Stretch Limit
Value [0..+∞°]

Elastic Compression Limit
Value [0..+∞°]

As long as a Spring is stretched within the defined limits (starting from the Rest Length or Rest Angle value) its behavior will be elastic and will return to its rest length or rest angle when the force exerted on it have subsided. If these values are exceeded, the Spring will deform plastically, i.e., it will not return to its rest length or angle and will remain deformed. A simple example: You have a Spring with a Rest Length of 100% and an Elastic Stretch Limit of 20 cm. If the Spring is pulled to a length of 150 cm its new Rest Length will be 130 cm (150 - 20 = 130).

Breaking Stretch
Value [0..+∞m]

Breaking Compression
Value [0..+∞m]

Breaking Stretch
Value [0..+∞°]

Breaking Compression
Value [0..+∞°]

If a Spring is stretched or compressed beyond the limits defined here (starting from the Rest Length or Rest Angle value) it will break, i.e., it will no longer behave as a spring – it will be disabled.