MultiJoints - Creation

This is the place where you specify the objects to be linked. It provides several ways and methods to establish a joint connection between different nodes, but please make sure that either “Rigid body” or “Soft body” is activated from the "Node" panel's “Dynamics” option.

 

 

Objects A

Here you can specify the first group of objects you want to connect to a second group, found under “Objects B”. Once both groups are defined, RealFlow establishes joints between them, based on the settings of the available parameters. When you click on “Objects A”, a node picker is opened, showing you all suitable objects. Of course, multi-selection is allowed, but you should always keep track of which objects you want to include in “Objects A”, and which in “Objects B”. It is therefore a good idea to apply 2 groups under "Nodes" and split the object pool. The node browsers, available with “Objects A” and “Objects B”, only show nodes with active dynamics settings. So, if your node selection list is empty, please check that “Dynamics” in the "Node" panel is set to either “ Active/Passive rigid body” or “Soft body”

Objects B

This is the second group of objects you have to choose to create the desired links. The method used is exactly the same as with “Objects A”, with one difference: it is possible to leave “Objects B” empty. If you do so, nodes from “Objects A” will be linked with RealFlow’s world space. Another speciality is to attach exactly the same nodes to “Objects A” and “Objects B”. This selection creates connections between all selected items. A good example is a brick wall.

Creation Mode

This is a very important feature, because you can determine whether the creation process of joints is fully automatic, or whether you want to see links at certain positions. You can choose from 5 different modes:

“By contact” is the most convenient method. It is an automatic mode to create joints between the nodes from "Objects A" and "Objects B". The quantity and position of the joints generated depends on four parameters which are only available with "By contact". Your only task is to distribute the objects as you want, and adjust the values – RealFlow will take care of the rest. By changing the nodes' positions and the associated "By contact" values you indirectly specify where the joints will be created.

 


Two bodies, connected with “By contact”

 

“By stem (leaves A, trees B)” is a very interesting mode. The name is pretty self-explanatory and already gives you an idea of what this mode can be used for. With this mode, RealFlow creates trios of points which are randomly orientated, but perpendicular to the leaves' axis. These trios of points are then used to place the joints linking the leaf objects with the tree nodes.

Typical applications for “By stem” are the spines of a hedgehog or porcupine, branches of a tree and, of course, leaves connected to a branch. “Objects A” will contain the leaves, “Objects B” the base objects. The "By stem" mode is not symmetrical and it is important to put the leaves into "Objects A" and the tree nodes into "Objects B". If you do not follow this rule, the joints can appear at unwanted positions and the leaves might end up looking twisted. Another requirement is that the leaves have to be relatively close to the trees.

 

Joints, created with the “By stem (leaves A, trees B)” method. The white triangle indicates the connections.

 

“At locators positions” was introduced to overcome the restriction in “By contact” that you cannot directly determine where the joints will be added. With this option you are now able to create joints at a certain position, given by one or more helper objects. RealFlow uses the pivot points of these helper objects to establish the connections. To label a node as a locator, it is necessary to add it to the “@ Locators” list, which becomes unlocked by activating “At locators positions”. An example is the construction of a door hinge. Any polygonal object can serve as a locator; it is not necessary to activate the object’s dynamics features.

 

Connected bodies with "At locators positions".

 

Another option is called “At locators bbox centers”. This mode uses the geometrical centre of a (virtual) bounding box around the selected locator(s) to create the joints.

The last mode is called “At locators vertices” and works in a similar way to the previous methods, but here RealFlow does not use the pivot point or the centre of the bounding box – everything is based on vertices. This also means that you will get a higher number of joints, depending on the number of vertices. The objects you want to use with this function also have to be added to “@ Locators”. It is unlocked automatically when you activate this option. The construction of a wheel, where the tyre is connected to the mesh of a metal wheel, would be a perfect application.

With “At locators positions”, “At locators bbox centers” and “At locators vertices” every single Joint you create connects the two nearest objects – one from “Objects A” and one from “Objects B”. They will be linked, even if they are far away from the joint. There is no distance limit.

@ Contact distance search

This feature works only with “Creation Mode” set to “By contact”. There is always a certain distance between the nodes from “Objects A” and “Objects B” – even if they are touching. In such a case, distance would be zero. With this parameter you can define the distance at which RealFlow should look for objects to connect. By increasing this value you can look for pairs which are further away. If you want to keep the default value of 0.002 you have to bring the nodes very close together, which would be the perfect occasion for using one of RealFlow’s new snapping tools:

Edit > Snap > Bounding box > Nearest side

This function calculates the closest possible distance between two selected nodes, and in the best case the objects will touch. It also recognizes the order of your node selection: the first item is always the one that is repositioned to be brought into contact with the other body.

@ Contact area min.

You can only change this parameter with "Creation Mode" set to "By contact". To establish joints, the contact area between the faces of two objects must be greater than this value. When object faces are nearly anti-parallel (i.e. parallel and confronted), the concept of contact area is obvious: it is the area of the contact surface you obtain if you put together the two bodies, touching at those anti-parallel faces. If object faces are not anti-parallel, the concept becomes a bit more complicated: it could be seen as the area of the intersecting surface you will get when moving one of the objects towards the other over a certain distance which can be specified with "@ Contact distance search".

@ Contact angle max.

Another parameter that is only available with “By contact”. Joints will only be created when the angles between nodes' faces are smaller than this value. It is possible to enter values close to 0 - in that case, joints are exclusively established between faces which are almost anti-parallel. If you use high values for the angle, you can create joints between surfaces which are confronted, but far from being anti-parallel. When you increase the value of the contact angle, joints can be created between non-anti-parallel surfaces. Anti-parallel polygons are parallel faces with opposite normal directions. Anti-parallel polygons are parallel faces with opposite normal directions.

  

When you increase the value of the contact angle, MultiJoints can be created between non-anti-parallel surfaces.

 

@ Contact number max.

Again, this option is only available with the "By contact" mode. Since "By contact" mode generates the joints automatically, you cannot control how many of them are created. However, with this parameter you can limit the number of connections. RealFlow selects the most significant joints.

@ Locators

Similar to “Objects A” and “Objects B”, this field is a node list which is only available when “Creation Mode” is set to locator mode. You can open a node picker and choose the objects serving as locators. RealFlow uses their pivot points, the centre of their bounding boxes or their vertices to create joints between the different nodes. Objects, used as locators, do not need dynamic features activated (“Dynamics” = “No”).

Limit processed joints

Sometimes a large number of joints is created between two bodies. This situation can occur when you use high-resolution meshes or when one body of the pair is a soft body (links between or with soft bodies always require a large number of joints, because soft bodies can deform). By default, all these connections will be processed during simulation, leading to very long simulation times.

To avoid this problem, you can activate “Limit processed joints”, because this option restricts the number of joints that are actually processed at same time during simulation. This does not mean that RealFlow creates less connections; rather, they will be treated differently during simulation (e.g. if you decide to use “Limit processed joints” and click on “Create/Update”, you will see the same amount of joints as if this parameter was set to “No”). RealFlow can literally choose from the entire set of joints the ones which are best suited for each calculation during a simulation.

@ Max processed joints per pair

The number you enter here is the maximum number of joints the solver will process at the same time. Joints to be actually processed during internal calculations are selected from among all the joints. For this reason, it is easy to achieve results similar to those obtained by processing all the joints at the same time, but with a significant saving in time. It all depends on the value you select for this parameter. An example: Imagine a bone linked to its surrounding flesh. The bone’s vertices are used to create the joints, let’s say 1,000 and “Max processed joints per pair” is set to 50. During calculation all of them will be processed, but only 50 at once.

Disable collisions by pairs

You have two options: “Yes” and “No”, the default selection. When you set “Disable collision by pairs” to “Yes”, the solver stops processing collisions between all body pairs connected by joints.

Disable all collisions A-B

This is another selective mode and is based on the nodes in “Objects A” and “Objects B”. The difference to “Disable by pairs” is that objects from the aforementioned lists do not necessarily have to be joined, e.g. because the distances between them are too big. So, you can disable collisions between pieces when you already know that they will not interact (or do not want them to interact). The result is a significant increase in simulation speed. A good application for this function would be a pre-fractured object where you do not need collision between the individual pieces until it begins to break apart. With this function set to “Yes”, the simulation will be much faster.

Create/Recreate (*)

Whenever you have changed a value from the "Creation" panel, you will need to confirm these settings and feed the joints solver with the new data. RealFlow will then create updated connections, based on your input. For the very first creation process, this button has to be used as well. The asterisk (*) acts like a marker and can only be seen when it is necessary to establish the MultiJoint connection for the first time or recreate it. Alternatively, it is also possible to reset the scene.

The creation of joints far away from objects is an exclusive feature of rigid bodies. The properties of soft bodies do not allow such a creation mode. If the joints, created for the soft body, are too far away from it, you will see the joints, but they will be ignored. In such a case you have to create the joints closer to the soft body.