# How can I rig telescopic parts to move one at a time?

I'm trying to rig a telescopic model. I'd like the segments to deploy "one at a time" (like at 38s here), such the the first segment is almost completely out before the second segment starts moving, and so on.

So far, I've tried assigning a bone per segment, then setting their parent to a big bone which has a "Stretch To" constraint; the constraints target is a a bone that I can use for posing:

With this rig, the segments of the telescope deploy linearly as a group:

Is there and alternate rigging method I could use which gives me control over how the the individual segments relate to each other?

It's actually rather simple to achieve this with Transformation constraints. The key is that your reference of where to get the target transformations from is not a helper bone, but the end bone (the last element) of your telescope. You can check out this blend file here:

Move the bone Segment.1 along the Y axis (I've locked the other axes anyways) to see the effect. It should be exactly what you can see in this little animation here:

Please note that I've made the size of each segment slightly different, so you can see what you're doing when the rig is fully compressed. The transformations I'm referring to however are in this example always constant distances of 0.3. You'll see soon that you're absolutely free as of what distances each segment has though.

Start with creating the armature, and then the segment bones in Edit Mode. Make sure that all segment bones are within the same location, that means you're 'modelling' the compressed state of your rig now. Then parent each segment to a main bone to be able to move the rig around later. Do not create parent/child relationships between the segments themselves.

The rig at this point looks something like this (without constraints yet, we add them in the next step):

Now, select the 'tip' bone (the one which you will transform when animating the rig), in my case that's Segment.1, and then Shift select the first bone that should follow with a delay, that's Segment.2, and press Ctrl + Shift + C to bring up the Constrains menu. Choose Transformation from there. On the child bone, You should see something like this now in the bone constraints tab:

You have a Source section, a Destination section, and a Transform Space section. Transform Space needs to be local in this example, so we want to read and set the bone channels in their own local space. Important are now the Source and Destination fields. On the source and the destination, we tell Blender to check for a Location. Then, we fill in the field for the Y-axis. Min and Max that is. We do the same for the destination. The values in the screenshot now tell Blender the following:

If the user moves the tip bone, and the local Y value of the tip bone is inbetween 0.3 and 1.2, move the destination bone inbetween 0.0 and 0.9.

That means, you need to translate the source bone to local 0.3 in Y first, before the Transformation constraint does anything at all. Then, while inbetween 0.3 and 1.2, it translates the child bone from 0.0 to 0.9. Why these values? Each segment has a length of 0.3. So that's the lower travel boundary for the first bone. The target value for the second segment therefore has to be TranslationMaxOfTip - LengthOfBone. For the next segment, the constraint is the same (we stil reference the tip bone), but we have to move the bone only if the tip is inbetween 0.6 and 1.2, and from 0.0 to 0.6. Do this for all succeeding bones, same constraint, just altering the limits.

Your values will be different, but the concept is the same.

You may try shape keys, there's Relative to there. And use Dope Sheet in the Shape Keys Editor Mode.

• Could you clarify a bit? I suppose there will be one shape key per telescoping segment? Won't that be trick to animate? – ajwood Aug 31 '17 at 22:10
• You suppose right, a key per element. Yes, shape keys, like rigging, are a way to animate. But shape keys, thanks to dope sheet, allow you to start the next thing before the previous one is done. – Lukasz-40sth Aug 31 '17 at 22:59

use a limit distance constrain on the parts (might work even without bones).

create 2

• create 2 cubes or so
• select one cube in object mode
• From the right bottom screen go to wrench icon tab.