I set up this rig in an effort to do away with Up-Vectors. This tutorial was written back in 2002 and may or may not be relevant anymore. I leave it here for the sake of not breaking anything linking to it.
 |
STEP 1: Start up XSI. Pretty easy, eh? If you don't have a character to try this out on, get the Roll Project which also contains the completed leg rig with roll controllers set up. |
 |
STEP 2: Use the simple leg rig in the Roll Project I have created, or load up your own character. |
 |
STEP 3: Get | Primative | Implicit | Disc and size it properly. Call it Leg_Roll_Left since this will be the control object for the roll of the leg. It can be placed anywhere, but for now lets put it behind the left knee. Duplicate the disc and place it behind the right knee. Rename this one as Leg_Roll_Right. |
 |
STEP 4: First we will set up the left leg. Select the first bone in the left leg. Press enter to get to the property page for the bone. Under the Kinematic Joint section, click on the Resolution Plane tab. Make sure the Resolution Plane pull-down is set to Default. Right click on the green keying button next to Roll and select Expression Editor... from the pop-up menu. This will open the Expression Editor. |
 |
STEP 5: Now we will set an expression to link the roll of the leg to the Disc's Z-Axis rotation. Click on the Object button in the top bar of the Expression Editor. This will open up a mini-explorer. Find the Leg_Roll_Left that we created earlier. Keep opening up in the list all the way to Leg_Roll_Left | kine | local | ori | euler | rotz and click on the text rotz (not the green button). Now there is an expression in our Expression Editor! Click Validate and then Apply to set the expression into motion. |
 |
STEP 6: Rotate the Disc now, you can see how the Disc has now replaced the use of an Up-Vector object, with the added benefit that you now only have one curve to clean up (rotz), and you don't have to worry about Up-Vectors flying around and legs flipping around when you don't want them to. The Disc gives you complete control over how your knee is oriented. |
 |
STEP 7: Now do the same thing for the right leg, except this time after you click rotz in the mini-explorer edit the expression to have a negative sign (minus) at the beginning. You will see why in a moment. Validate and Apply the expression. |
 |
STEP 8: Select both Discs and rotate them on the Z-Axis. See how you now have the power to rotate the knees towards and away from each other in one swift click? Pretty nice, eh? To finish things off you will need to put the Discs in your character's heirarchy. The only place you cannot put the discs (that I know of) is as children of the leg roots or anything under them in the heirarchy. Making them children of the COG seems to work the best. The Roll Project contains the finished scene. |
 |
STEP 9: At this point we could call it quits, but read on and I will tell you how you can edit those expressions. Now say you are not happy with the direction the legs rotate when you move the mouse up. You want them to move that way when you move the mouse down! We will edit the expressions to make the legs interact with the mouse the opposite way. Get to the Expression Editor the same way you did in STEP 4. Now the expression we created earlier is already in the box! If there is no minus sign then add one. If there is one then remove it. Repeat for the other leg. Remember to Validate and Apply when you are done editing the text. The interaction will now be the opposite. |
 |
STEP 10: Now lets say you want to rotate the Discs so they are lying flat and not straight up. Because of the way implicit objects work (no center), you will need to set the expressions so they now link to roty instead of rotz. You can go through the Object button again, or you can simply edit the text of the expression so it has a y on the end instead of a z. You many need to zero out the Y-Axis rotation on the Discs so the legs are pointing forewards. |
 |
STEP 11: All you need to do to remove all that stuff you just did is to delete the Discs. That's it. Have fun! |