Free Stretchy Bones Creator


This update is focused on organization within StretchyBonesCreator. Here’s a few new features:

[li]SBC now handles layers more efficiently, only displaying what you need to skin and animate with. The rest of the rig is placed into a ‘hidden’ layer on the layer manager.[/li][li]SBC can now place new bones into new layers. Simply type in the new layer name you want to work on and SBC places the new bones in that layer.[/li][li]Spheres and Point Helpers now have size controls.[/li][li]SBC now has better naming conventions for the created bones and controls.[/li][/ul]

     Here's a capture of the Layer Manager with SBC organizing it.


Hey Garrick,

The new features are neat, I especially like the sticky feature!

You should check out structs in MAXscript. You got lot of unnecessary global variables being declared at the moment (usually bad practice to make a tool’s common variables global). They’re a great way to organize your code and keeping them in a local scope.


You should check out structs in MAXscript. You got lot of unnecessary global variables being declared at the moment (usually bad practice to make a tool’s common variables global). They’re a great way to organize your code and keeping them in a local scope.

Thanks for the guidance! :slight_smile:
I’m going to attempt a re-write of the script and I will use structs in the new version. Also, I really like your stretchy bones script. I was wondering if I could use similar functionality in StretchyBones Creator, as it would speed up bone creation quite a bit. If you don’t mind, I’d like to add it in as a button, but only with your blessing! :slight_smile:


Feel free to use it!


I’ve been hard at work learning structs and really studying maxscript.
Here’s a preview of the tool UI:

I’ve got some ridiculously awesome stuff planned for version 1.0, which I hope to release very soon:
You can see above that theres a new tool, theSpliner. This tool creates a spline through 2 or more objects (max of 10), then links the objects to the spline. There are also controls for quickly setting the layer for the spline, the spline color, and xray mode.
Why does theSpliner exist? - So you can create splines to control ctrls, vastly simplifying the animation rig, while still allowing total control for the animator. This way the animator can do a first pass using the spline controls, get the shot approved/to their liking (timing and general movement), then move into animating the bone ctrls (there may be hundreds of ctrls). This workflow and tool matches the blocking/refining process I’ve used and heard alot about from animators.
I’m doing this because it’s faster for an animator to start working with a simple rig, instead of looking at 300+ controls and wondering where to start.

I’ve got a few more functions and buttons to add, then I will release version 1.0 and field test the crap out of it. If you want a pre-release of the script, just pm me and I will send you a super secret link. :slight_smile:


I’m happy to release Stretchy Bones Creator version 1.0. Here are some screen caps of the new features.

First up: the brand new ‘Click to Create’ button. Making stretchy bone chains is now even easier.

And here is a screencap of theSpliner in action:

And here is a cap of the UI, summary of the new features, and a short explanation of some of the buttons:

I’m sure there will be bugs/errors, so email me, pm me, or post to this thread and I will try to fix them. I’m going to start really field testing the tool now. Results coming soon! :slight_smile:
(Version 1.0 can be downloaded from the first post in this thread.)

09/27/10 - Version 1.1 released. Fixes bugs with the UNDO button, ClickToCreate button, and DeleteSelected button. Also fixes for the SBC bone checker function.


I’m happy to release version 1.3 of Stretchy Bones Creator. You can download the latest version from post #1 of this thread.

Here’s what’s new:
“Click to Create Bones” now has the ability to mirror bone chains on any axis as you create them. This roughly cuts the time to layout the bone chains in half. Here is an example .gif showing how this functionality is implemented (remember, this is all organized into the layer manager too):

Choose an axis to mirror on, then click to begin dropping point helpers. Right-click to build the chain, ESC to cancel creating both chains. These bone chains are built from the pHelpers.pos, so no flipped matrices on the bones either. Easy, like it should be. :slight_smile:

 Another new feature is QuickSkin:
 QuickSkin allows you to quickly toggle common rigging options back and forth with a single click of a button.  No longer do you have to unfreeze the mesh, then turn off the turbosmooth, then click the skin modifier, etc...  Just select the mesh you're developing the bone chains on, then click QuickSkin it.  This creates a box equal to the objects boundingBox, then skins the mesh to the box at 100% weight.  This gives you a good starting point for adding in bones individually.  Click 'Open Skin' to pop open the skin mod with the weights dialogue opened up.  Click 'Close Skin' to close the skin mod, close the weight dialogue and freeze the mesh.  I've also added in toggles for Xray mode, Turbosmooth, and Freeze, so you can jump between different setups extremely fast.  You can also do operations out of order, like freeze the mesh, then turn on turbosmooth and xray (without ever unfreezing the mesh).  I made this because I found myself constantly going back and forth between animating controls and weighting verts, and each task required the mesh to have different properties.  So instead of 5 clicks, it's just 1 click.  Over the span of hours, this saves you thousands of clicks.
 Finally, here is the model shown above with some basic rigging done to the eyes and mouth:
The above setup breaks down as: 20 minutes laying out bone chains, 2 hours skinning.  Most of the work is focused on the vert weighting and building poses to test the weighting against.  I personally believe that no algorithm will ever match a human's ability to weight verts, so I'm not even going to think about an 'automated solution' when it comes to skinning.  In the end, a human hand has to fix it.  This script can work on any mesh, and it's up to you how the bones are arranged.

Bug fixes:
SBC actually recognizes pre-existing bone chains now, single digit and 2 digit numbers supported.
Try Catch() statements now control error prone buttons so the script breaks less.

More updates to the script will happen as I discover new ways to rig quickly and efficiently.
As always - any bugs, thoughts, ideas, hatemail: garrick at garrickcampsey dot com.


Dude this has become an Amazing tool!!

thnx for all your efforts. This makes my life alot easier :smiley:


Here is the latest field test for Stretchy Bones Creator (video):


The creature was modeled and textured by Ben Allen. The rigging, animation, lighting, rendering, compositing, and sound were done by me. All footage was shot on a Canon 7d with a 50mm f1.8 lens at 23.976 fps with 50th/sec shutter speed at ISO 100. From start to finish, this project took about 12 hours for all aspects of production, rigging and animation broke down to about 4.5 of those 12 hours.

@ DEmolitioNC4 - Thanks man! I’m happy folks are using the tool. Let me know if you run into any bugs, or have any suggestions on how to make it better. :slight_smile:


Awesome! I need to rig a monster face and this seems to be exactly the tool I was looking for.
Many thanks for your contribution.


@ Gagui: ¡Estoy contento que pude contribuir! :slight_smile:
I’m hoping to release a new version of this tool on Monday that fixes some annoying problems.
Stay tuned!


I think it could be even better if you set up de upnode control of each bone to be the root helper instead of the world if that makes sense.

What do you think?


That is a good idea! I will try doing that.

As for upnodes, I’ve been working on coding an alternate type of bone that doesn’t have a traditional upnode using this technique by Felix Joleanes. This technique may also change how the bone’s keyframes are interpreted, so I’m not really sure of all the repercussions of using these types of bones. I’m going to keep the option for regular stretchy bones available in the script as well, along with two more ideas I call ‘auto-project’ and ‘auto-skin’, which places bones on the mesh and into the skin modifier as a user clicks. It’s an incredibly fast way to rig.


Ok, that sounds good!

Another interesting idea for the creation of the SBs could be drawing a spline and generating the controllers on each vertex, this way you could use snap over the mesh wich is very useful.

By other side, mirroring of existing chains it’s a must be, I think.


I am very happy to release Stretchy Bones Creator version 2.0.
With this tool, you can can quickly and easily create chains of stretchy bones, automatically project them onto an arbitrary mesh, and automatically add the bones into the mesh’s skin modifier.
This allows a user to get right into weighting the verts/envelopes.

  Here is a screencap illustrating this functionality:
  Here is an overview of the tool, describing each section and it's contents:
  Here is a video that shows the tool in use:
  youTube: [](
  vimeo: [](
  [b]You can download the free, unencrypted script from the 1st post of this thread.

[/b][The script has been re-written from the ground up again, this time in a better architecture, and with better code (efficient, commented, and formatted). There are many more features coming, most of them are documented in the ‘ToDo’ section of the script.]


Nice tool! I like the Click&Create method. But you need to define upnodes for your bones to avoid axis flipping when moving the ctrls. This is a general rule. Always use upnodes with LookAt constraints. At the same time, I would give the ctrls an initial orientation, so moving them locally makes sense.


This is a truly amazing script. The combination of Stretchy Bones and Projection is really useful. It saves days for rigging muscle deformation!

However I don’t know which version of 3dsmax will suit this script well. I am using max9sp2 and the projection won’t work at all, even I messed around the projection axis.
I can see the projection cage wrapped my model well though. So the “mirror bones upon creation” function works wonderfully well. This is just awesome! :slight_smile:

If the projection problem is fixed and having a mirror function for existing chains, this will certainly become a must-have when come to rigging!


Based on user feedback, here’s Stretchy Bones Creator 2.1

This update focuses on upNode controls. Now you can set the upNodes for the next chain(s) created.

Here’s whats planned next:

  • Local orientation for ctrls
  • Mirror existing chain
  • Joleanes bone type

@Gagui: I’ve implemented the idea of making each bones upNode the previous bone created (the parent), but it doesn’t work as expected. I’m going to try setting it to a ctrl and see if that makes a difference.

@Gräck: Thanks for the feedback/ideas! I’ve added in world axis upnode control. Still working on the local axis for the ctrls. :slight_smile:

@Outcast0822: Thanks for the kind words, I hope you find the script useful. I’ve been looking into the problem you were having with the projection, and I’ve done a rewrite of the ‘projectSelected’ function. Hopefully, this version will project for you. Let me know if you run into problems. :slight_smile:


Awesome work Grak. I was just going through the same phase (maybe I should just write a script for this) and I find this on maxunderground. Plugged on my blog. Will also mention on a tutorial I’m doing, although I have already done the part explaining the whole process (always good to know what’s actually going on though). Will test tonight.

I guess the next step is wiring to a control rig on the side made out of shapes…for all those people who don’t want to manip a face directly…



PS: and since this is a new account and my signature isn’t available yet here is a link:


Hi amazing script, Im doing a circular chain but I need the bones not to be stretchy, can you add an option so when a move one of the controllers , there is a limited position for the bones. I select the bones and in the bone tools I checked freeze stretch and checked none but the bones are shorter now and when I move the controller , the other side of the bone doesnt stick to the other controll anymore, it move randomly. So can you add an option to make the bones not stretchy ? I know the script name is "stretchy bones but it would be good to add this option. congrats again for such wonderful script.
best regards,