This is a tutorial for
an IK hand. The basics of the tutorial were originally from Michael B. Comet’s
tutorial on the IK design of a leg and foot. A lot of the process was derived
from and is given complete credit to Michael B. Comet. I would like to thank
him for the basis of the insights that led me to this model.
I will assume that you
have a basic knowledge of 3ds Max (pretty much where everything is located) and that you know how to read.
The first thing that
we need to do is create a basic hand. You can use anything but for the first
time you should use boxes. I like to create one box, get the pivot set (more
later) and then array it. If you count the bones in your fingers you will find
that you have 14 bone that define the joints and spaces between. But, back to
the pivot. One thing that Mr. Comet neglects to mention and is one of the most
crucial parts in order to set up the IK correctly is positioning of your pivots!!! Here we go.
Create a box that is
more squareish and a little thin. This is going to act as the palm. Now, you notice how the pivots are in the center of the hand? Well
that means that is where the bone will be formed. It would be more like a tettertotter
than a palm. So go to the hierarchy panel and go to pivot tab, select pivot only
and move the pivot to the top center of the box.
Now make a clone of that
box and resize it to something that is smaller and more rectangular. Array that
by 14 copies and arrange the boxes so that they resemble a hand. After that you
should create two more boxes that will become the wrist bones. By now you should
have a series of boxes that look like this. I know that this is a bit primitive
but you can modify the boxes however you want later. Now would be a good time
to line up all of the finger boxes respectively with each finger so as not to get funky bone structure. Also make sure that you adjust the pivots for the wrist bones just like the others.
Now we need a clean slate
where every thing is set the same. So highlight everything and go to the utilities
tab. Select resetxform then hit reset selected.
Now we need them mesh objects for exporting and such. You could also incorporate
a drape with sim cloth but that will be for another tut. Go to the modifier tab,
select edit mesh then select collapse stack. By now my tut is looking a lot like
Michael Comet’s. That is because the major changes come after the IK bones
are set up. But to do that, we need dummies!!!!
You will need to create
six dummies for this hand. MAKE SURE TO CREATE THEM IN THE TOP PERSPECTIVE. Everything that is done with the IK system is done in relation to the top view coordinates!!! Name your dummies thumb, fore, middle, ring, and pinky for the fingers and one slightly
larger dummy for the palm. The palm dummy comes last but it is what makes the
hand very easily animate-able (I love making up new words!!). Your hand should
now look similar to this.
Notice that the palm
dummy is just out of the way right now. That is the last dummy to be connected. Now we need to do some serious linking! I
like to start at the pinky dummy and work in. The general set up is to link all
the fingers to the palm first, then the palm to the wrist. I have shown the progression
with numbers and arrows but I think it will be obvious what is going on. Start
with the dummies and make your way do the palm: dummy-first bone-second bone-third
bone-palm. DO NOT LINK THE SMALL WRIST BONE TO THE LARGER WRIST BONE YET!!! We will link that later as a rotational and positional controller for the whole hand.
Now is when the magic
happens. Now we let 3ds max create the bones for our hand. Make sure that you are on the create panel and click the tab for systems.
Choose bones and then click on pick root. We will be making the small
bone of the wrist our root for the bone tree. Your hand should now have some
really pretty bones in them. Awww, look at the pretty colors:) You must link bone 1 to the small wrist bone in order for you to manipulate the bones together. Now you can grab the small wrist bone to see how things move and you will see that it doesn’t move
like a hand at all...that all comes in the constraining of the movement of the bones.
Make sure to undo any movements that you do.
The first thing that
we want to do is get our hand controller linked. So link the small wrist bone to the large wrist bone. Next we
want to UNlink the finger dummies from the fingers. To do that just click on
the dummies one at a time and hit the unlink button. This will ensure that we
can use them to create our end effectors which is the true power of IK.
Again, lets start with
the pinky, because once you do one finger it is just repetition until the thumb and wrist.
—- A word about
the constraints. Max uses global axis to determine the relative movement of the
constraints. So if you decided to create the boxes on the positive side of the
axis then these number will work for you. If you decided to create the boxes
on the negative side of the axis then you will have to put a negative sign in front of them.
Max gives you a little semi-circle to show you movement of the constraints so if they end up funny looking then use
the opposite numbers.
But first thing is first. Highlight the bone that is going through the last box of the pinky and is connected
to the dummy. It should be bone 6 if you linked everything starting from the
pinky dummy. Under the motion panel in
the parameters section go to IK controller parameters. In the thresholds section
change the position and rotation thresholds to 0. This makes for no variation
in those constraints. Under the solutions section change iterations to a high
number, couple hundred will work, and change the end time to somewhere in the thousands.
The last is to make sure you have room to play. If your computer boggs
down too much when you are animating the hand then change the iterations to a lower number.
You can always raise it for a final production.
Under the initial state
section choose lock initial state. Under the end effectors section click create
under the position option. Then click on link and choose the pinky dummy. Now choose the last bones on the other four fingers and do the exact same thing. What we just did was basically chose the dummies to control the whole finger that
it is linked to. Once we limit the rotation of the bones themselves, then we
will have a very workable hand.
Speaking of which, let’s
start our limiting. Select the last pinky bone (6) again and open the hierarchy/IK
panels. Ignore everything else for right now except at the end under rotational
joints. For right now let us only worry about the opening and closing of a fist. So turn off the y and z axis and limit the x axis from 3 to 170. Also set the spring back to 5 and the spring tension to 0.3, this keeps the finger joints from locking
up. Now Highlight all of the finger bones separately EXCEPT FOR THE THUMB and
limit them all the same. You will see some strange rotations going on right now
and that is ok. These will work themselves out later.
Now if you grab the wrist
to move it you will see that it works more like a hand. If you wand to more detailed
modeling then you can select the long bones running through the palm and give them a small z limiter along with the same x
axis limiter that you gave the rest of the bones in the fingers. I have chosen
not to for this tutorial but the principal is the same. However you must select
the long bones going through the palm, bone 3, bone 18, bone 14 and bone 10 and limit the x axis to the same constraints as
the rest of the fingers. Now the only things that are moving funky are the thumb
and the wrist. First the wrist. Limit
the x axis of the small bone going from the base of the palm to the small box of the wrist, bone 2. It can bend back further than a finger but it can not bend forward as far as a finger in total. So use a from of -90 and a to of 90. This limits the wrist
movement of straight up and straight down relative to the rest of the arm. Grab
the wrist and see how this works. Just make sure to undo all movements you do
before constraining the thumb.
Aaahhh yes, I spent for
ever trying to get the thumb to constrain correctly. What makes it so difficult
is that it is sooo versatile. The first two bones are the easy ones because the
tip of the bone only moves in the x axis. It is the long bone that connects the
palm to thumb that is the difficult one to get to move correctly. First pick
the first bone in the thumb and turn off the y and z axis. Limit the x axis from
–75 to 90. Do this for the first two bones, bone 9, bone 8. Now select bone 7, the long bone through the palm that connects the thumb.
Turn off the y axis but not the z axis. Limit the x axis from 3 to 120
and limit the z axis from 0 to 90. Now you will notice that the thumb has a kind
of permanent crick in the joint. Go back to bone 8 and limit the y axis from
–45 to 90. Go back quickly through all the bones and make sure that the
spring back and spring tension is all set the same, 5 and 0.3 respectively.
Congradulations, you
are almost done and my rear hurts from sitting in this uncomfortable chair for so long.
Anyway, the last thing that you need to do to make animating this hand a cinch is to link the finger dummies to the
palm dummy (ha, bet that you had forgotten it even existed through all this). DON'T
LINK THE THUMB DUMMY TO THE PALM DUMMY, it doesn't like to work with the dummy. Just animate the thumb seperately, which
means there are only two dummys and the wrist to move for basic hand movements. Make sure that you position the
palm dummy on the inside of the hand, which was determined by which way you set the constraints. Don’t set it too far or too close to the hand because you can get some pretty funky results if you
do. After that you are done. Happy
Animating.
Special thanks to Michael
B. Comet. Even though you have no idea who I am, you finally helped me figure
out the mystery of IK. Please don’t stop helping out the little man.
Thanks,
Adrian Hoffman
Contact information:
bulsatar@yahoo.com