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
|