MultiServos - Creation (Linear)

This panel contains everything you need for a basic MultiServos setup. Here you can choose the objects that will be used to establish a setup and how they will be linked. The “Create/Recreate” button will finally create the MultiServo. Please keep in mind that only objects with rigid dynamics can be used with RealFlow'sMultiServos. The order in which nodes will be grouped in “Rigids A” or “Rigids B” is important and makes a difference, because the connection between the nodes is based on relative positions and also depends on the dynamics settings (active/passive).

 

 

Rigids A

Here you can specify the first node group. When you click on the parameter's input field, a node browser will be opened so you can select the desired objects. MultiServos support multi-selections, and you can choose any rigid body object. If you work with large amounts of objects, we recommend grouping the different nodes in RealFlow’s "Nodes” window and then using these groups as the values of the “Rigids A”, “Rigids B” and “Rigids C” fields. Only active rigid bodies can be used here.

Rigids B

The mode of operation is exactly the same as with “Rigids A”. “Rigids B” are different from “Rigids A” in that their local coordinate system is used to interpret the “Target” value(s) of the servo. The MultiServo will be created between each “Rigid A” and its closest “Rigid B”. Both active and passive rigid bodies can act as “Rigids A”.

Mode

You can choose between two different creation modes. “Create from nearest” uses the nodes from “Rigids A” and “Rigids B” and creates the MultiServo between “Rigid A” and its nearest node from “Rigids B”. As you can see from this description, it can make a huge difference which nodes are assigned to A and B slots.

The second method is called “Create chain from roots” and it will create a whole chain of linked rigid bodies. This method requires a third object, specified under “Rigids C”. Since a MultiServo chain always consists of at least three different kinds of elements, it is important to know which node acts as the chain's root, connecting link(s) and terminal link: 

  • “Rigids A” = terminal link

  • “Rigids B” = connecting link

  • “Rigids C” = root link

The node from “Rigids A” cannot be linked to more than one node; otherwise they would be connecting links. Another important thing to remember is the order of the nodes under “Rigids A” and “Rigids C”, because it makes a difference which node you want to use as root and end links. The reason is that targets are relative and therefore you have two possibilities. For example, in a chain of five nodes, the options are:

  • 1 => 2 => 3 => 4 => 5

  • 1 <= 2 <= 3 <= 4 <= 5

In the first example above, the root is node 1 (“Rigids A”) and the terminal link is object 5 (“Rigid B”). In the second case it is vice versa. In “Create chain from roots” mode, the nodes under “Rigids B” must be set to “Active rigid body” (or “Passive” must be set “No”) to make the chain work.

Rigids C

This parameter works only with “Create chain from roots” from the “Mode” option. The mode of operation is exactly the same as with “Rigids A” and “Rigids B”. The nodes, entered here, will act as the chain's root link, and they will set the coordinate system for the “Rigid B” connected to it. Both active and passive rigid bodies can act as “Rigids C”. 

Free X | Y | Z

All of these parameters have exactly the same functionality: if set to “Yes”, the node's axis will not be influenced by a MultiServo and can act completely freely. You will also see that the corresponding “Blocked [X|Y|Z]” parameter become inactive and vice versa, because an object's axes cannot be free and blocked at the same time. Another case is when an object's axes are neither free nor blocked. Here, the MultiServo will act, but it will be limited to the adjusted forces and powers.

A rising balloon is a nice example for free objects. In this case you want the balloon to perform a motion along a vertical axis, but the motion in horizontal directions should not be influenced by the MultiServo's forces – only by wind or collisions with other objects. To achieve this behaviour, a “MultiServo Position Linear” node will be used with a target in the vertical axis (Y or Z – this depends on your scene setup). To allow horizontal movement, the appropriate axes (“Free X” and “Free Z”/”Free Y”) must be set to “Yes”.

Blocked  X | Y | Z

These parameters depend directly on “Free [X|Y|Z]” and can influence each other. When “Blocked [X|Y|Z]” is set to “Yes”, the servos will act with infinite force and power on the appropriate axis. With “No”, forces and power will be limited to your settings under the “Forces” panel. When an axis is blocked, it cannot act freely anymore and therefore the corresponding “Free [X|Y|Z]” parameter will be inactive and greyed out.

A blocked axis tells the solver to act in any case, no matter which other influences you have in your scene. Blocking means that you can define in which direction a motion must be performed. Again, a car wheel gives us a perfect example. Let's say we want to mimic the behaviour of a shock absorber. In such a case, a car's wheels should not be displaced horizontally in relation to the car, but we want to allow vertical displacement. This can be done by creating a “MultiServo Position Linear” node between the wheels and the car body, which has the horizontal axes blocked and the vertical axis neither blocked nor free.

With this setup the wheels can move horizontally with car (since the MultiServo will act with unlimited force in the relevant axes) preventing them to be detached from it, but they can also move vertically according to the specified maximum forces and powers of the absorber. Now the wheels will be able to perform an up-and-down movement when the cars (and its components) move over bumpy ground.

Disable collision by pairs

By default (“No”), the solver takes collisions between the connected body pairs into consideration. If you want to disable this feature, please choose “Yes”. 

Create/Recreate(*)

When you press this button, the MultiServos between the nodes under “Rigids A”, “Rigids B” and “Rigids C” will be established or updated. The asterisk (*) can only be seen when it is necessary to recreate the MultiServo.