Using Reactor Controllers and Spinners to control the fingers.
 

Step 1
Whatever you can do to make animating your character easier is worth doing. Using sliders or spinners to control the rotations of some bones is one of the things that makes animating easier. The way this helps when animating fingers is that you don't have to zoom up on the hand and select each individual bone every time you want to pose the hand. All you have to do is click on the control object for the arm, which you would probably have selected anyway if you're in the middle of posing the arm, and move the spinners or sliders that we're going to build into that object.

The end results you'll get from using Reactor Controllers and spinners are almost exactly the same as using Wiring Parameters. In the end you'll be able to use the spinners to control the positions of the fingers. So why use Reactor Controllers instead of Wiring Parameters? First of all, it's easier to set up for bones that move in more than one axis. For example, when you curl your thumb into your palm the root bone doesn't just bend in, it also bends down a little. So it's rotating along more than just one axis. To get this working through Wiring you'd have to wire each axis separately and then play with the numbers of the wiring equation until it looked right. But with a Reactor Controller you can rotate the bone wherever you want, along any axis, the first time you apply it.

Secondly, Reactor Controllers can be easier to use because they offer instant visual feedback when you're setting it up. And while setting up the controller, you work with the bones using the same translation, rotate, and scale tools you're used to working with. There aren't any complex mathematical equations to get your head around.

So we'll start with the simple hand rig from the first tutorial, as well as the Point Helper from the last tutorial. So I won't go over how to add the Custom Attributes to the helper in this lesson.

To start with, we'll rotate the thumb so that it rotates more naturally, like we did in the last lesson.

Step 2
Before actually adding the Reactor Controllers to the bones, you want to animate the values in the spinners of the Custom Attributes that have been added to the Point Helper. This will make it much easier to work with the Reactor Controllers because you won't have to keep going back to select the Point Helper and changing the values of the spinners as you're working with the controllers. You'll see what I mean in a little bit.

Select the Point Helper and make sure that all the values of the spinners are set at 0. Then click on the Auto Key button towards the bottom of the screen. Next, move the Animation Range Slider all way to the end of the animation range. It doesn't really matter how long the animation is, we're going to delete the keys when we're done anyway. Now set the values of the Custom Attribute Spinners to their maximum on all the Curl spinners. We only set the values of the Curl spinners right now because we'll be working on those finger actions first and they're all independent from each other. In other words, the Index Curl value doesn't affect the pinky, but both the Fist value and the Index Curl value affect the same finger. So we want to make sure that the spinner we're working with only affects one finger at a time.

Turn off the Auto Key button and make sure that you slide the Animation Range Slider back to 0 when you're done.

Step 3
We'll start with the root bone of the index finger. Add a Rotation Reaction Controller to it by clicking on the bone, going to the Motion Panel, highlighting the Rotation Controller for the bone, clicking the Assign Controller button, and then selecting Rotation Reactor from the menu.

Step 4
When the Reactor window pops up click on the React To: button. This is where we connect the bone's rotation to the value in the spinner. So with the React To: button activated, click on the helper object and navigate through the submenus to select the Index Curl Custom Attribute.

Once you click on the Index Curl selection in the submenu the first connection is made. So now whenever the Index Curl spinner is at 0, the root bone of the index finger will be at it's default position.

Step 5
Now we'll make the second connection so that when the Index Curl spinner's value is at 10, the root bone of the index finger will be rotated down. This is where animating the spinner values earlier comes in handy. You could manually select the Point Helper, go to the Modifier Panel, and change the Index Curl value to 10, or you can just hit the End key on the keyboard to go to the end of the animation range where the value has already been animated to 10. This way you don't have to do all these extra mouse clicks, because you can just use the Home and End keys on the keyboard to go back and forth between the beginning and end of the animation range.

So make sure you're at the end of the animation range and click on the Create Reaction button.

Step 6
You'll notice that there is now a Reaction02 in the list box on the left. Also, notice at the bottom of the window the Reaction Value: is 10.0. This is the value of the Index Curl spinner at this frame of the animation. This is why we pre-animated the spinners.

Now we'll tell Max how this bone should be rotated at this particular spinner value. Click on the Edit Reaction State button.

Step 7
Using the Rotation Tool, rotate the bone down to where your finger would normally stop when making a fist. You can watch the Current Output: value changing as you rotate the bone. When the bone is where you want it, click on the Edit Reaction State button to turn it off. This is very important. It doesn't turn off automatically when you close the window, so if you don't turn it off before you close the window you'll still be in edit mode and the bone won't work properly.

Close the window and slide the Animation Range Slider back and forth. You should see the bone rotating up and down as you do.

Go back to step 3 and follow the same steps for all the bones of the four fingers and the thumb. Basically, you want the fingers to look like they're in a closed fist position at the end of the animation range when you're all done. Remember to use the Home and End keys on the keyboard to quickly go to the start and end of the animation range. Always go to the start of the range before you add the controller and a new bone, and go to the end of the range before you press the Create Reaction button to make the second connection. If you run into trouble you can usually fix any mistakes by using the other buttons in the window. Delete Reaction is self explanatory, and Set Reaction Value will change the Reaction Value: for the highlighted reaction to whatever the value of the Point Helper's Custom Attribute spinner is at the frame you're on. Or you can just close the window, undo the assigning of the controller and start over again. That's usually easiest.

Step 8
If everything was done right you should see the fingers curl into and out of a fist as you move the Animation Range Slider back and forth. But you might notice the the thumb actually passes through the fingers as it does its curl. What we need is for the thumb to be delayed slightly so that it curls after the fingers are almost into position. This is where the Curve button comes in handy.

Select the root bone of the thumb, right click the Rotation Reaction Controller in the Motion Panel, and select Properties. This is how you get back to the Reactor Parameters window to make changes. With the window open, move the Animation Range Slider to the middle of your range and click on the Create Reaction button. Notice that it adds the reaction to the middle of the list instead of the end. This is because the reactions are listed in the order of their Reaction Value (the value of the Point Helper's Custom Attribute spinner). Now click on the Curve button.

Step 9
This is the Reaction Curve window. The points represent the different reactions. The red line on the top represents the Reaction Value number, and the blue line underneath represents the Current Output number. What we want to do is take the middle point and convert it to a Bezier-Smooth point by right clicking on it and selecting Bezier-Smooth. This will make sure the animation is smooth as the spinner is changed from 0 to 10.

Step 10
Now move the point over to the right. This will take the thumb position at the halfway point of the animation and delay it until later in the animation. This way the thumb won't pass through the fingers as they all curl up. Close both of the windows when you're done.

Step 11
That's it for all the Curl spinner. Now a word about adding other Rotation Reaction controllers so that you can use the other spinners to control the Finger Spread and the Fist values.

Whenever you have multiple spinners controlling one bone, you need a separate Rotation Reaction controller for each spinner. You also need to delete the key at the end of the animation range for each of the spinners you already hooked up, and then animation the new spinner like we did with the Curl spinners.

So for the Finger Spread spinner, select the Point Helper and go to the end of the animation range. Select the key there and delete it. You should see the Curl spinners get set back to 0. Now click on the Auto Key button to turn on animation mode and set the Finger Spread spinner to 10. Click on Auto Key again to turn off animation mode. Go back to the beginning of the animation by dragging the slider or hitting the Home key on the keyboard.

Now select the root bone of the index finger, go into the Motion Panel, click on the Rotation Controller and assign a Rotation List controller.

Step 12
Highlight the Available slot and assign another Rotation Reactor controller. Close the window when it pops up.

Step 13
What we need to do is make the new controller active. Otherwise nothing will happen if we try to add new reactions. So scroll down the panel window if you have to and select the second Rotation Reaction controller in the Rotation List window. Click the Set Active button.

Step 14
Select the new Rotation Reactor controller and right click on it to bring up the Properties window. Now create the reactions for the Finger Spread like we did before. Make the outer fingers spread apart more than the inner fingers.

Step 15
It should look something like this when you're done.

Step 16
Follow the same steps to hook up the Fist spinner. Basically you're just repeating everything you did with the Curl spinners, but making it so that all the fingers will curl with one spinner. It's debatable as to whether this is worth the time to do, because you can always animate the individual finger Curl spinners to close the hand into a fist anyway. It's up to you.

If you want to still have manual control over the finger bones, in addition to the spinner, you can add a Euler XYZ controller into the Available slot of the Rotation Controller for each of the finger joints. Once you add the Euler XYZ controller you need to set it as active, otherwise nothing will happen when you try to rotate the bone manually.

Reactor controllers are very powerful and easy to use, once you get the hang of them. You can add more spinners if you like for common hand poses like pointing, thumbs up, peace sign, or whatever. Experiment and have fun.

Click here to go back to the "Hand" page...