10
$\begingroup$

I'm trying to figure out the best way to rig this setup. I have several pipes arranged vertically, right next to each other. I want a rig where I can use a single controller to have them spread out at the base, similar to opening an umbrella.

Here's an example object showing how it should look when opened:

enter image description here

I want the rig to work by scaling a controller at the base of the pipes (like the circle in the image.) I also want to be able to translate the controller, and have the individual pipes stay locked to it, but not have their lengths change.

I know I can do the rotation by putting a bone down every pipe, then using constraints to have them rotate on their local axis based on the scale of the controller. But this doesn't handle the translation. I could also do it by IKing each one to a point on the circle, but then it starts getting very complicated and can have Roll problems.

The actual object I'm trying to rig will have a lot more pieces than this example, so I'm trying to find a way to NOT need to make and position a ton of bones or constraints.

Is there any simpler way to solve this problem?

$\endgroup$

3 Answers 3

11
$\begingroup$

Not sure if this helps or not but here is what I could come up with using only constraints to simulate an umbrella like opening mechanism.

If you actually need an armature (for exporting purposes, linking, or otherwise) you could probably construct a similar setup with bone constraints on an armature object.

enter image description here

Make a three rod system with a $Post$ (blue), the $Arm$ (white) and the "muscle" or $Piston$ (red) object.

enter image description here

After that add two empties, one at the base will be the $Master$ controlling object, and should lie somewhere along the blue post, the other $Pivot$ will act as a hinge point and should lie somewhere along the arm length.

enter image description here

Then it is all based on a system of parents and constraints. The red piston should be parented to the $Master$ controller empty, and constrained with a Track To to the Pivot empty along the $Arm$.

enter image description here

The white $Arm$ should have a Track To constraint to the $Pivot$ empty;

enter image description here

And lastly the $Pivot$ empty should have a Limit Distance constraint set to the $Master$.

enter image description here

The distance value should exactly match the total length of the "Piston" object (red). You can optionally constrain angles and movements of different parts, like say, constrain the master to move only in $Z$ axis no more than the height of the blue $Post$ rod.

enter image description here

Lastly duplicate the whole system around, making sure you leave the $Post$ and $Master$ out of selection so they remain as single objects

enter image description here

You can then probably use drivers to link the positioning of the $Master$ control object to the scale of any other object, thus achieving what you need.

$\endgroup$
1
  • 1
    $\begingroup$ Duarte, you have no idea how much time I spent creating similar umbrella rig some time ago. If I only knew your answer then... Very smart solution! +1 from me. $\endgroup$
    – Paul Gonet
    Aug 20, 2017 at 18:29
5
$\begingroup$

This is an alternative, if you're looking for a fixed hinge on the umbrella spokes, using drivers.

Working Y up, X across.

enter image description here

  • 4 Empties. A circular handle at the bottom, 'A' the slider, 'B' the hinge, 'C' the stop.
  • ABC must be isosceles: B's Y must be halfway between A's and C's
  • By Pythagoras, B's X must be the square root of (CB squared - (AC / 2 ) squared). CB is fixed. AC varies with the position of the slider.
  • Stop, Hinge, and Slider Empties are all parented to the handle

The hinge at B is driven by A and C as follows:

X location (all driving and driven coordinates in the handle's space):

enter image description here

Y location:

enter image description here

The AB spar is parented to the slider at A. The spoke which extends CB is parented to the stop at C. Both have Damped Track constraints, so they are aimed at B.

Once the rig has been set like this in 2D, The hinge at B, the spoke, spar and handle can be duplicated round, using, for 8 spokes, ShiftDRY45, leaving a single copy of the slider and the stop.

The duplicate handles can be parented to a single root for moving the whole rig: the larger cube Empty at the base, below.

enter image description here

$\endgroup$
2
  • $\begingroup$ Very nice. Could the distance type driver var be used here? $\endgroup$
    – batFINGER
    Mar 21, 2020 at 2:37
  • $\begingroup$ @batFINGER I was wondering about that, myself, I don't know whether it would constrain radial direction. I guess you could just use IK, anyway? $\endgroup$
    – Robin Betts
    Mar 21, 2020 at 2:39
4
$\begingroup$

Since someone has resurrected this thread, I thought I would just add a little more here. Here is an example I was tasked with a couple of years ago, bones only, copy rotation constraint for the 'R(number)' bones, A driver for the 'R(number - letter)' bones that just copy rotation in reverse and doubles it. Everything copies 'R0' bones local 'Z' rotation. This pic shows everything needed to reproduce this, bones axis is displayed, Outliner shows parenting. Umbrella-Standard Here is a compact folding version, this one was a bit of a challenge Compact-Folding Umbrella Lastly, A more technically correct one that acts more like the real ones where the stretchers actually flex, uses a spline IK. Umbrella 2 If anyone is interested in the blend files, contact me or PM me(ajcdfin) here. Thanxs

$\endgroup$
1

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .