Follow Me

Dropbox. ?Spread the word.  The first 2GB is free!

Journal Index
« SIGGRAPH 2011 | Main | Search Engine Queries Summary »

Stretchy Bones

Someone asked me the other day how to make a stretchy bone in 3dsmax.  I tried to explain it quickly and I made it overly confusing.  I then stopped and made a simple scene to explain the concept so i thought I'd share that with all of you.

Starting with a fresh scene, make a bone and finish it with an end bone. The End Bone: The end bone confuses some people.  I was told by the Autodesk engineering team that to have a bone, you need a start AND and end.  Otherwise, you don't know where that bone ends.  Even Maya's joints work the same way.  Each bone is made up of two joints.  This works great for making a bone stretchy since the distance between the 2 joints will be used to make a bone stretch and squash.

Add 2 point helpers. Using your Align tool, align one to each of the bones. One will simply act as a root for the whole system, the other the animated position for the stretching.  It's good practice to make a root bone for everything you do.  Link the first bone to this point helper.  It's always good to do this otherwise your system is a parent of the world, which cannot be moved.  Turn on auto key and animate the other helper so that we can test our stretchy bone as we go.

Now, Position Constrain the end bone to the moving helper. At this point the end bone should be following the point helper.  The root bone is not doing anything though.  To fix this, add a Look at Constraint to the root bone, and have it look at the moving point helper. This gives it an up axis that you can control, also making it like a simple IK system.

Finally, open up the BoneTools dialog and scroll all the way down to the Object Properties rollout and un-check Freeze-Length. If you want, you can set the squash option so the bone apears to deform with the stretch.  Squashy bones will work in conjunction with the Skin modifier and will help simulate effects like flexing muscles.


PrintView Printer Friendly Version

EmailEmail Article to Friend