How bones work

(by Lesk and Mark Decker)

Tutorial by Lesk:

Looking the front view You should have a similar shape:

                ||||||  top  section
                ||||||  mid  section
                ||||||  base section

Note that when we refer to a section that means the points above and below are selected. For example, the top section is:


The last row of points is used twice, once for top section and once for mid one.

If you think about this for a minute it will all make sense especially concerning how this thing is going to bend.

Now comes the tricky part the order here is very important and You may have to try this a few times until it works just right.

Use the find requester and choose the axis in the base section, doing it this way should make the order correct.

What You have done here is simply grouped your axis. You now want to make certain that these axis are in the proper order so that when You bend say Your finger, they move just like Your finger would top to bottom. If they are out of order it will still work but it would look like some double jointed contortionist...

Go back to group mode and check this out, and make very certain that the order is right. Click on the tip axis and it should be the only one blue. Deselect it and click on the axis in the mid section, both it and tip axis should be highlighted. Deselect them and click on the axis in base1 and all three axis should turn blue. Now the hard part: go back to pick object mode and then click on the object axis, it should be blue with a yellow line connecting it to the base1 axis.

If none of the above is correct all progress is at a halt, go back, remove all the groups and try it again this order is important!

So either clear it all out and start the project over or go back to group mode, select an axis and ungroup, repeating until everthing is ungrouped. Make sure there are no groupings at all! Then go back to object mode pick and sadly start again. You will get this, it just takes a little practice. Also this is not a replacement for the manual read through it so You have the concepts, believe me it will really help.

Now having that done correctly we can move on make sure nothing is selected and go back to pick group mode.

If you think about this it really makes sense what has happened at this point.

I sure hope this works for You and if You find any errors or things that just don't work feel free to let me know.

Tips by Mark Decker:

I learned a few things that might help somebody else along:


Once you are in Pick Objects, pick first the parent axis, then the child axis. In Lesk's tube example, if the axes are numbered from top to bottom, first pick axis number two, then hold down shift and pick axis number one and group. Next pick axis number three, then hold down shift and pick axis number 2, and so on down selecting the object itself followed by the "root" bone and grouping them last. When I first tried this I was using the bounding box to pick both axes at once, and I think it may have been picking them in the wrong order.


It helps immensely to move any axes out of the way (shift M moves the axis of an object but leaves the object in place) so that they do not overlap while grouping. Once the grouping is correct, you can move the axis back into place without affecting the grouping.


Subgroup assignment is probably the trickiest procedure and was at the start the hardest part for me to grasp. It has not been well explained to date, but I'll see if I can help without muddying the waters any further. Each axis gets two subgroups assigned to it, helpfully referred to as "Big" and "Small". To the best of my understanding, the Big subgroup is the set of all faces which will be affected by motion of the axis. If a face is not in the Big subgroup, its never going to change no matter what that particular axis does. The Small subgroup is a subset of the Big subgroup, which means it can only contain faces which are also in the Big subgroup, but usually won't contain all of them. The Small subgroup moves and rotates with the axis, but all of its faces keep their shape and orientation with respect to each other.

So if the faces outside the Big subgroup don't change, and the faces inside the Small subgroup don't change shape, all that's left is the faces which _ARE_ in the Big subgroup, but _ARE NOT_ in the Small subgroup. These faces form the actual joint, and actually stretch and deform to keep the other two sets (the outside and the Small subgroup) smoothly connected.

Maybe an example will help. Think of a robotoid arm with no fingers, no wrist. It has two parts, a forearm and an upper arm, and hence two bones (axes). The parent axis (bone) sits at the center of the shoulder, with its Z axis pointing at the elbow. The child axis sits at the center of the elbow, with its Z axis pointing at what in a more highly evolved robotoid would be the hand.

You need two subgroups for each bone. Lets start with the forearm. The Big subgroup for the forearm will include all of the forearm and just a little of the upper arm above the elbow, enough to allow the joint to stretch to maintain a smooth connection. The Small subgroup will contain most of the forearm, up to just below the elbow. The faces around the elbow which are in the Big subgroup but are not in the Small subgroup will be the ones which stretch and deform to allow the joint to connect smoothly.

On the upper arm, the Big subgroup will contain all of the forearm, all of the upper arm, and a little of the shoulder it is attached to. The Small subgroup contains all of the forearm, and most of the upper arm up to just below the shoulder. Again, it is the faces between these two where all of the deformation takes place.


Once your grouping is all set up, go back to Pick Groups and pick the actual object which is the parent of all these bones. All the axes should be turn blue (in the default color scheme) to indicate that they have been picked as well. Then create your "DEFAULT" state, being sure to select both Shape and Groups. You may need to select properties as well if you want to do brush or texture tacking, but I'm still having problems with this myself, so I'm not sure.


In order to manipulate the bones, you need to be in Pick Groups mode. You have to pick the axis you want to manipulate, rotate (or move) it, and accept the change. To see the result you have to pick the base object again (still in Group mode) and select Update Bones and it will then warp your object to conform to the new bone positions.

This has gotten a lot more long winded than I intended, but I hope it helps clarify a few things for someone.

Last Update: July 13, 1995
Back to Ian's HomePage. -- Up to FAQ #8 Index