|Name of gadget||Ball Joint|
|Number of Tweak pages||1 (of 3 rotational connector types)|
|Last updated||07 August 2019 [EA v1.07]|
The Ball Joint connector is used to connect two elements together about a fixed pivot point but with a high degree of freedom of movement. In its basic form, the child object is able to rotate about the pivot in all three rotational axes. However there is no freedom to move closer or further away – this is purely a rotational connection.
You might use it to add shoulder or hip joints, for example, and it’s possible to tweak the joint to limit rotation so as to avoid your creatures making creepy over-rotational movement, like legs bending backwards (unless that’s what you want, of course)!
As with other connectors, you use it by first connecting it to the parent object, then to the child. A third gizmo, the “pivot gizmo” will appear between the two and can then be dragged into position – all rotation will be centred at the pivot. The image here shows the gizmos from top to bottom – parent, pivot and child. There is also a highlighted volume here, extending from pivot to child gizmo, which shows that the ball joint has been tweaked to limit its range of movement – the highlighted volume indicates the movement limits.
A great tip, if you do want to limit the range of rotation of this joint, is to line up the parent and child at the mid-point of their movement before adding the ball joint. For example if connecting an elbow joint, put the forearm at almost right angles to the upper arm before adding the connector. This will make it easier to stop the arm from bending backward.
Example Tutorial (adapted from Media Molecule)
- Let’s make a simple joystick – a squarish base with a stick from the top that can be controlled.
- Start with sculpt mode and make a joystick base. Just stamp a cube or make any shape you like.
- Start new sculpture and stamp a cylinder for the stick. Feel free to make it long and skinny, shape it as you like.
- Exit back to assembly mode and (if necessary) align the stick to the base in a centred position until you’re happy with your joystick model.
- From the gadgets menu, select the ball joint connector.
- Connect the parent gizmo to the joystick base.
- Connect the child gizmo to the joystick stick.
- Drag the pivot gizmo to the point where the stick meets the base.
- Check that you can now use the imp to pivot the stick.
- Tweak the ball joint to lock rotation and use limits.
- Now for some logic: stamp down a microchip and open its canvas.
- Add a controller sensor to the chip.
- Add a splitter gadget to the chip.
- Add an advanced mover to the chip.
- Tweak the controller sensor to make it remote controllable.
- Connect the Left Stick Local output of the controller sensor to the splitter’s input. This will separate the up/down from left/right signals from the left stick.
- Connect the left/right output of the splitter (X) to the X Speed input of the advanced mover.
- Connect the up/down output of the splitter (Y) to the Z Speed input of the advanced mover.
- Set the Y Speed of the advanced mover to zero.
- Change Movement Strength of the advanced mover to 100%.
- Close the chip’s canvas.
- Snap the microchip on to the side of the stick part of the joystick.
- Go into play mode from the options menu and try it out.
- You might want to return to edit mode and experiment with the tightness and springiness to get the joystick moving as you like.
- Connector Type
Here you can change the type of rotational connector without having to create a new one; the same connection points between parent and child will be maintained.
This setting determines the ease with which the joint can be moved by external forces (as opposed to, for example, animation keyframes). At 0%, it can be rotated freely; at 100% it will be difficult to budge.
This setting determines the strength with which the joint attempts to return to its original position. At 0% it has no effect, at 100% it will hold the child element in place. Springiness gives the joint a natural bounce.
- Collide with Connected
Toggle this to permit or prevent collisions between the child and parent objects when they come together. When this is switched off, the child and parent will pass through each other regardless of their respective collision settings. When switched on, the objects will behave as normal – colliding if they are configured to do so.
- Lock Rotation
By default, the connector can move on all three rotational axes, but you can activate this toggle to prevent any twisting movements, effectively reducing motion to two axes.
- Use Limits
When this toggle is activated, you can limit the range of movement of the joint between 0º and 180º (see next tweak) – a visual indicator appears when the connector is selected (or its tweak menu is open) to show the maximum range of movement.
- Angle Limits Range
Only available if Use Limits is activated, this tweak allows you to select the maximum range of movement of the ball joint about its pivot.
- Connector Completion
This outputs a value from 0 to 1 as the ball joint twists (torsional rotation) through 180º and then back down to 0 as it completes a rotation. The actual value can be affected by rotation in the other two axes, which can make it an unpredictable source of information.
The power input for the ball joint retains the connection but disables the outputs. It also reduces the tightness and springiness to 0% as well as turning off any rotation lock or angle limits.
Connectors – common properties (click arrow to reveal)
All connectors are completely invisible in play mode. Even the appearance of the connector in edit mode will depend on the current “Show/Hide” settings (there is a specific option for connectors) or whether you’re working on it now. Similarly the “connector” itself has no physicality. So if you want a connection to appear in your scene, or for objects to bounce off it (for example) you will have to create a separate decorative element in addition to the gadget itself.
As with most connectors it is important to connect the two sculptures in the right order – connect the (larger yellow) gizmo to the parent first, then (the smaller blue gizmo) to the child. If you ever need a quick way to switch the parent and child relationship, select the connector and click on the “Flip Selected Connectors” icon in the context menu.
When you complete the connection you’ll find that, even in edit mode, the imp can no longer move the child in an unconstrained way – it is limited by the connection. Instead you have to move the parent itself and the child will follow.
If you want to move the child independently, hover the imp tip over the child object and press the triangle button (“Reposition connectors”) on your controller. In this mode the ends of the connector will start glowing and you’ll be able to reposition the child object freely. Press circle to exit this mode.
Never connect two sculptures with multiple connectors. Similarly, never make connections in a loop. Such connections are considered invalid in Dreams and will behave unpredictably, if at all (and may even affect your Scene’s performance). When invalid connections are made, the whole connector will turn blue to highlight it (see in the red ovals added to the image here):
Connectors only work with sculptures. To connect paintings you have to cheat a little and include an invisible sculpture in a group with the painting. Then the connector can be attached to the group.