Stretchy Bones
a tutorial by Calvin

Introduction
Have you played around with Sketchy's Ludwig? Or Calvin's mouth rig? Ever wonder how the effect was achieved?
In the following tutorial I will try to outline how to create a stretchy chain of bones.


The New Feature
In Blender 2.40 a new feature was introduced, the ability to set a bones stretch limit. From 0.00 to 1.00. Even though it doesn't matter what number you enter to stretch the bones, since they will stretch endlessly. The number matters when you want certian bones to be stretch more then others in a chain of bones.

Note: This input field pops up only if the bone is part of an IK chain.


SideNote: Learn about other Features introduced

Here is a chain of bones.


Just incase you want to follow along: 01.blend

When the IK bone is moved around the other bones follow.
But when the IK bone is pulled too far, the bones point toward the direction but don't do much.


Now lets set the stretch input to 0.3 for bone A.

Since A was the only bone given a stretch property it will be the only bone that stretches.
At this point we want all the bones to stretch the same so give ABC all a 0.3 stretch input.
(But you can go ahead and play around, giving them different numbers.)



Create simple cylinder with 3 sections (since we have 3 bones)


Create 3 Vertex Groups...(A, B and C) and assign corresponding Vertices.


- Select the Mesh, followed by selecting the armature and click Ctrl+P (shortcut for parenting).
- Select "Armature"
- "Don't name Groups" (we already made the groups)

- Click on the armature.
- Disable the "Envelopes" button in the armature menu.

Now try moving the IK bone around.

The Blend File: 02.blend

There is a PROBLEM!!
The bones not only stretch the mesh but also scale it. The more the bones stretch the "fatter" the mesh becomes.

This is a problem... but there is a trick around it.
- Click on the armature, and go into edit mode.
- Select bones A, B and C and duplicate them.
IMPORTANT Hold down ctrl when moving the duplicates, So we can later snap them "ontop" of the original bones.



- Click on each duplicate bone (B.001 and C.001) and remove it's parent.


Go into Pose mode, Click on Bone A.001 and add the following Constraints to it.


Explaination

This is a bone.


When we added the "Copy Location" Constraint, that made the Ends of Bone A, and A.001 match up.
When we added the "Stretch to" Constraint that made the tip of A.001 stretch to the End of B.
We also added a "Copy Rotation" Constraint, which will later copy the rotations of the A Bone.



Now click on B.001, have it copy the location and rotation of B, and stretch to C.
- Click on C.001, have it copy the location and rotation of C, and stretch to the IK Bone.


- Click on the Armature, and go into edit mode.
- Select the duplicate bones and snap (hold Ctrl) over the original bones.


Now we want the mesh to use the duplicate bones, so change the names of the vertex groups (A to A.001, B to B.001 and C to C.001)



Now Judge the results!


The Blend File: 03.blend

Note
- You can go ahead and hide (or if using 2.42 place in a different layer) the original bones.


Extra
Back in the day when I was breaking ludwig apart for learning, I attempted to recreate the spine. Which "you" should now be able to do with the knowledge you gained reading the tutorial above. Anyways, Enjoy!



The Blend File: LudSpine.blend