MultiJoints - Forces

With rigid and soft bodies, forces are the key to everything. They cause accelerations, deformations and changes of direction. MultiJoints are the same – forces are used to influence the links between interacting objects. These forces also affect the way a body behaves and moves, so they have an immediate impact on dynamic simulations. Joints can be seen as an invisible rubber band between bodies. Forces are used to determine the bands’ rigidity. This is something that is also displayed in the viewport during simulation. Under certain conditions, connected objects start separating from each other, and you can see the changing joints as lines made up of dashes with variable length. Higher forces give you more rigidity and the bodies can even glue together completely.

 

 

Force max mode

This parameter determines the appropriate mode for how forces should act on joints. There are three options available. With “Unlimited”, forces are treated is infinite. This behaviour leads to a situation where touching objects cannot become separated, no matter what happens. Connected nodes behave like a single object. The question is surely why it is necessary to glue objects together, instead of using a single body? The basic idea is simply to connect things you do not want to become separated, like the already-mentioned wheel, or soft feathers attached to the rigid part of an arrow. The great advantage with “Force max mode” is that you are not restricted to a certain mode, once it is been established. It is possible to switch over to other modes, using certain force limits, at any time. If you want to control the forces acting between connected nodes, choose “Constant limit”. It also unlocks two settings: “@ Max force” and “@ Max force random”.

Distances and forces play an important role for simulations with MultiJoints; therefore it is important to use the appropriate method. With “Depending on distance” you can unlock a series of parameters for ruling a distance-based force distribution. The decisive parameter is the current space between two points linked by an individual Joint, which is tested with each simulation cycle. The force that is needed to separate two points linked by a Joint depends on this particular distance. 

@ Max force

As already mentioned in the introduction to this chapter, joints can be compared to rubber bands between bodies. “@ Max force” controls this connection. “@ Max Force” tells RealFlow which force is needed to separate the objects and they are pulled back from the moment they come to rest when the external force is smaller than “@ Max Force”.

With higher settings you can increase the joint’s tendency to contract, so the objects are pulled back faster. Small values make them behave like a worn out rubber band; in these cases the objects cannot be pulled back, because the body’s weight force exceeds “@ Max force”. Estimating “@ Max force” is not always easy, because it does not just depend on gravity and mass, but also on the size of the contact areas between linked objects.

As a rule of thumb, one could say: “If the contact area between “Objects A” and “Objects B” becomes larger, higher forces are needed to separate them.” To get a feeling for forces, the best idea is to play with this value and check the occurring forces under "Statistics".

@ Distance step (D)

This parameter is only available with "Force max mode" set to "Depending on distance". When forces are not strong enough to keep the linked points together, they start separating. The distance between them is measured with each simulation cycle, because it is variable. With “Depending on distance” selected, the maximum force that can be exerted by a joint to keep together the two points it links will depend on the distance between them at each moment. The function, describing the force limit, is defined as a piecewise linear function, based on 6 separate sections with a length given under “@ Distance step (D)”. The force limits are determined using the appropriate entries from “@ Max force at 0D - 5D”. Please have a look at the image below. If the distance between two points exceeds 5D, the force limit will maintain the related “@ Max force at 5D” value.

 

 

You can also create an interesting effect: if you do not want to have any forces at all until a certain distance “d” is reached – just try this setup

  • @ Distance step (D) = d (the target distance)
  • @ Max force at 0D = 0 and
  • @ Max force at 1D = 0
  • @ Max force at 0D – 5D

These parameters are only available with "Force max mode" set to "Depending on distance". As already stated, force limits can be described as a piecewise linear function, so it is possible, for example, to define a decreasing range of forces with growing distance.

@ Max force random

To give a simulation a more realistic appearance, it is often a good idea to randomize things a little. “@ Max force random” was introduced for exactly this purpose. The added variation ranges between 0 and the entered value. So, if this parameter is different from 0, you have to take it into consideration while adjusting “@ Max force”.

Apply force factor texture

When you press this button, you will see a node browser where you can choose an object. If the object has a greyscale texture applied, it can be used in combination with the currently selected MultiJoints as follows:

The "Max force" values of the individual joints are multiplied with the corresponding greyscale value of the texture. The factors range between 0 (black) and 1 (white). This way it is possible to control the joints' forces individually and you can create weaker connections based on the reference map. Please bear in mind that the UV coordinates of the chosen object are used to read out the texture and apply the factors. The object with the texture does not necessarily have to be part of the MultiJoint's "Objects A" or "Objects B" parameters - it can be any polygon node in your scene.