Setting up nested Custom Parameters to create Hand pose sliders.
By Adam Sale
Level: Intermediate to Advanced
To begin:
down load the sample scene, drag and drop this link through netview or have your own hand skeleton ready. We're going to focus on creating an ergonomic interface for the hands. Simply going in and posing the hand using FK can get a bit tedious. In this tutorial, we'll use linking and custom parameters to create all the poses we'll need for our hand. A supplementary article on custom parameters for hands can be found at www.softimage.com in the self paced learning section.



All the sliders that you create in the first part of this tutorial will share the same values. The only difference is that each slider will have a unique name.
Create 10 more sliders underneath the R_FINGERS custom parameter set. Make sure that you have the wrists root selected when you click on create>parameter>new custom parameter. In an explorer, set your scope to 'All + Animatable Parameters'. Open up the wrist node, and call up the custom parameter page you just created by clicking on the orange 'C' icon that should be named R_FINGERS.


1- R_INDEX
2-R_INDEX_SPREAD
3- R_MIDDLE
4- R_MIDDLE SPREAD
5- R_RING
6- R_RING_SPREAD
7- R_PINKY
8- R_PINKY_SPREAD
9- R_THUMB_BASE_Z
10- R_THUMB_BASE_Y
11- R_THUMB_BEND
You've created the custom sliders for the set, yet you haven't told the sliders what to control yet. Rather than animate the hand by directly manipulating the bones in the fingers, we'll use the 'link with' function to have a slider control a combination of bones. Since our first slider is called R_INDEX, select the first bone in the right index finger. Open up the bones kinematics property page by using the ctrl+K shortcut on your keyboard. The top left of the property page will display the name of the object you currently have selected.
Set the scope of this property page to recycle similar by clicking on the recycle icon in the upper right hand side of your property editor. Since We'll be linking up the rotations of many bones, recycling a similar property page will constantly keep our PPG set to display the kinematics of the currently selected bone.

In our case, we want to set up a relationship so that when the slider value is at 0, then the first bone in the index finger is straight. When the slider has a value of 10, then we'll want the bone to rotate 75 degrees into a bent position.
To start off, make sure your slider is at 0, and that your finger bone is straight out ahead, then right click on the local rotationz chip that is linked, and select Set Relative values.
Drag the R_INDEX slider to its maximum value of 10, and then bend the first finger bone 75 degrees down in the local z axis until the bone is bent towards the palm, like you would do if you were going to make a fist. When you've made your final adjustments, set another relative value on the local rotationz of the index bone.
If you drag the R_INDEX slider back and forth from 0 to 10, you'll see the index finger of the skeleton bending.
Set the R_INDEX slider back to 0.



Select the second bone in the index finger, and in the recyclable kinematics page that refreshes, link its local rotationz to the same R_INDEX slider. Make sure that the second bone is straight, and set a relative value on the second bones local rotationz.
Drag the R_INDEX slider to its maximum value of 10, notice the first bone in the index finger updating accordingly. With the second bone still selected, bend it in the z axis, so it appears that the character is starting to scrunch up his finger or coil the finger s into a fist. When you're happy with the pose set another relative value
Drag the R_INDEX slider back to a value of 0. Notice how the two bones now work off of the slider.
Roll your mouse over the image on the right to see how the slider should work
Repeat the above processes for the last bone in the index finger, Create two extreme poses for the bone. When you're done you should be able to drag the R_INDEX slider and see the entire index finger bending and straightening.
Use these steps to create the sliders for the bending of the other four fingers. Remember to hook up the bones to the appropriately named slider that should control them.
When setting the relative values for the 'SPREAD' custom parameters, create a link between the slider and the local rotationY on the first bone of each digit. This will allow the fingers to spread out, and allow us more variety in our gestures. An example of a hand pose that would use the spread slider would be the spock hand symbol that the vulcans display so much on Star Trek.


With all of your sliders now hooked up take a moment to play around with the sliders values. See how quickly you can create interesting dynamic poses, using combinations of the sliders
Using the Custom sliders to store action poses of the hand.
At this point you can close down the bones kinematics page you've been linking them from. It has served its purpose. Keep the R_FINGERS custom parameter set open.
Select your wrist root, the root that contains the set and open it in the marked parameters pop up at the bottom right of your interface. Open the custom parameter node, and ctrl click on each of the 11 parameters you set earlier. Once you've selected all of the parameters for marking close down the pop up.
When dealing with a massive hierarchy of objects, an animator will want to mark the necessary parameters in order to store an action. In the case of a human character, suppose the animator wanted to save an action for some facial expressions. At the same time, the animator doesn't want the action to take into account the movements of the arms, legs or torso that are also a part of the hierarchy. Marking parameters allows you to isolate only those assets that you need namely the facial structure. In our example the root of the hand has many parameters we could have marked, such as the rotations of each individual bone, or the length of each bone, however, since sliders control all aspects of the fingers, we can isolate these custom parameters as marked parameters.
In the next section, you'll add in a layer of complexity to the hand setup

Actions and marking
Softimage is all about mixing. You can mix almost everything in this package. Actions are a way of easing the mixing process in Softimage. Anything you animate can become an action. You could create a walk cycle of a character and save an action for the cycle. Alternatively you could create a simple pose and store the pose as an action. Actions therefore, can be a single frame, or a sequence of frames. The softimage reference manuals have a full explanation on actions that I encourage you to check out.
When you create an action it gets stored in a mixer folder, underneath the model node of the respective hierarchy. If your object is not a child of a model node, then the action gets stored in a mixer folder that is found underneath the scene root. (The scene root you'll notice, is a model node itself).

Actions are divided into 2 categories.
-Action source
-Action clip
When you first create an action, a folder is added underneath the mixer node. It is a source folder, and it stores the master copy of the action you create. When you first lay an action onto a track in the animation mixer, XSI will create a copy of the master, and store the copy in a folder called 'tracks'. The copies are known as clips, and can be altered without changing the masters' original animation.

Creating an action.
Your sliders should still be visible at this point since you locked the PPG (property editor) a few steps back. Drag the sliders around and start to create some poses you'll use for your animation.
When you've created a pose, store the action by selecting the root and clicking on actions>store>marked parameters current. In the pop up window give your action a name that corresponds to the pose you've created. I also like to set the 'default in' and default out' values at this stage. I'll be storing a static pose as an action, and I want to hold the pose for the duration of my scene. Essentially you'll be mixing the animation from one pose to another using weighting values, much the same way you would set up a slider system for facial animation interaction. For now you can set your in and out points at 1 and 100. Click OK when you're done.
I've created the various poses on the right for the purposes of this exercise:
1- Neutral
2- Closed Hand
3- Pointing
4- Peace Man
5- Vulcan pose
6- Hang Ten
7- Relaxed Hand
8- Finger Gun
9- Holding a cigarette
10- The Bird

Turn viewport B into an Animation Mixer so it extends horizontally across your screen. Click on Update. You'll see two green animation tracks in your viewport. The tracks are both empty. The Animation mixer utilizes three types of tracks. Animation, Shape and Audio tracks. In our example we'll be using Animation tracks since our actions are made up of sliders controlling bone data.
Create 8 additional Animation tracks for a total of 10 tracks. You do this in the animation mixer by clicking Track>Add Animation Track. The shortcut is Shift+A.

From the mixer-source folder of your explorer drag the first action (Relaxed) onto the first animation track. Drag the second action from the explorer onto the second animation track.
Repeat until you've added all the actions to their own animation track.
In the mixer toolbar, click on mix-animation mixer properties. Uncheck the 'Normalize' option. When the mixer is set at normalized, it creates an average of two mixed objects values. With the option turned off, two objects values will add to each other to create new animation.
I generally always use the additive method.

Line up each track to start at frame 1 in your mixer. Set the clip properties of each action clip to last the duration of the scene.
Alternatively, you can ctrl + left mouse button in the dark green section of each clip to select them all one by one, and then left click and drag the middle end of a track extend the duration of all the clips at once.



Create a custom parameter for each hand pose action you stored earlier. You can use the same names as your action to make your life easier. You'll wind up with 10 custom parameters in the new set.
Make sure the value type is left at Floating point. Leave the default value at 0, and set the min and max values to 0 and 10, the same settings we used in the earlier custom Pset.
In an explorer open up the R_HAND_POSE property editor by clicking on the C icon to the left of the sets name. Lock the PPG when it pops up on your screen.

Hooking action clips to custom parameters
The Animation mixer should still be open at the bottom of your screen. In this last stage, we'll hook up each hand pose track to the R_HAND_POSE sets slider of the same name. We'll use the link with function once again.
Start with the Relaxed action. Right click on the green chip at the right end of the track and choose 'link with' in the mini explorer that pops up navigate to the wrist root, open its R_HAND_POSE set and left click on the Relaxed parameter you created.

The green chip at the left of the track will display the 'L' link symbol. Drag the slider on the 'Relaxed' animation track to a value of 0, and then right click on the 'L' link icon and choose 'Set Relative Values'.
Drag the slider on the 'Relaxed' custom parameter to a value of 10 and then drag the slider of the 'Relaxed' animation track to a value of 1. Right click on the 'L' link icon and choose 'Set Relative Values'

Repeat this process until you've hooked each animation tracks hand pose to its relevant slider. When you're done try dragging the R_HAND_POSE sets sliders around to view your handiwork.
Animating the hands is a cinch, now that you control the posing through a simple to use slider interface. Keying the poses is as simple as left clicking on one of the green animation chips to the left of each slider, dragging your timeslider, setting a new pose and then clicking the chip again. Of course this only handles the keyposing stage. There is still a world of editing that needs to be done before the results are acceptable, but the ability to create an instant pose, allows for more editing time, and a more creative animation overall.
Usually in animation you'll come across poses you hadn't anticipated due to scene revisions, or new shot insertions, but this setup will allow you to add those in later if needed. All you need to do is repose the sliders from the original R_FINGERS set and then create a new action based on the marked parameters. Make sure and add a new animation track in your mixer for every action clip you want to add in. You'll also need to add a new custom parameter to the set you're working with.
