|
|||||
|
|
#1 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
Hi all, my name is Tim. I have been using 3dsmax 5.0 now for many years and until recently did not know anything about the process of rigging an advanced character.
I chose to try and follow the professional tutorial that comes with this version of Max, and it is quite good, but I've also added some changes to it too. First of all, I am not into modeling monsters or aliens. I am only interested in the rigging of human figures. I began starting a new tutorial of my own with the max 5.0 tutorial as its base. I have then found other tutorials on the internet and added to it. Firstly, I don't like a four finger'd character, I prefer the normal five. I've gone over the rigging of these fingers in my tutorial many, many time and it seems to work pretty well. I am still working out some bugs here and there. So, I am coming on to this forum in hopes that I can help someone out...and with hopes that somecan help me out in figuring out more advanced ways of doing things better. I will start off from the beginning of my tutorial with the legs. Please email me (or post here) if you have any comments or questions. I will do the best I can to answer any and all. machnng4tym46@earthlink.net In order to view the attached png file, you need to click on the 'full version' link above. Thanks for listening. Tim Last edited by tymmyt48; 27-01-2007 at 09:25 PM.. |
|
|
|
|
|
#2 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
As requested in the tutorial, we need to name these leg bones. I will do so according to my personal tutorial. This tutorial is going to be quite lengthy.
You will notice in my picts that I do not have a character at this time to insert the bones into. Right now, I am trying to help out with the bone rigging, you can build these bones into your own character if you like. As I mentioned above, if you feel I've made a mistake, or you know of a better way, PLEASE let me know. That's what I want...I want to improve this as much as I can...I also want to help others out there if I can. Left leg: 'Bone_L_Leg_Upper' 'Bone_L_Leg_Lower' 'Bone_L_Foot' 'Bone_L_Toe' 'Bone_L_Toe_Tip' Right Leg: 'Bone_R_Leg_Upper' 'Bone_R_Leg_Lower' 'Bone_R_Foot' 'Bone_R_Toe' 'Bone_R_Toe_Tip' As you notice in the last pict, I've already added the fins to the right and left foot (side and front settings) at 7.0 each. I've also added the fins to the right and left Bone Toes (side, front, and back settings) at 7.0, 3.0, and 3.0 each. That was easy for the feet. We will rig them later, but first...let's build the spine. Tim |
|
|
|
|
|
#3 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
Building the Spine...
In the original tutorial, you are to make a series of bones in the 'left' viewport that follows the curving of the back. The monster they use has a very curvy back. I did this only to find out that my back bone (series of bones) were not facing in the right direction. I had found someplace that the 'Front' fins are to be in the front. That makes perfect sense. But when I did this the first time, the front fins did NOT face the front.
So, I click on 'Bones', in the 'System' menu on the right of the screen. Under the 'IK Chain Assignment' menu, I choose, 'SplineIKSolver'. I also turn on 'Assign to children'. In the 'Bone Parameters' rollout, I change the 'Height' and 'Width' to '5.0'. we want to make these bones a little thinner than usual so they won't be so big and thick. Instead of curving my spine (bones) I am going to place them straight up. We can edit them a little later if we so desire. I created six bones starting at the hip area...and then right-click twice to exit the mode. The 'SplineIK' dialog appears. Change the name to 'IK_Spline_Goal'. Make sure you spell 'Spline...' with an 'l'. I made a mistake once and spelled it as 'Spine'. Set the number of 'Spline Knots' to '5'. Set it to the 'Besier' option. Make sure the 'Helper' option is checked. When you are ready, click on 'OK'. Will continue |
|
|
|
|
|
#4 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
Renaming the spine bones:
Bone01...'Bone_Spine_01' Bone02...'Bone_Spine_02' Bone03...'Bone_Spine_03' Bone04...'Bone_Spine_04' Bone05...'Bone_Spine_05' Bone06...'Bone_Spine_06' Bone07...'Bone_Spine_07' Now, the spine helper objects: Point01...'Helper_Spine_01' Point02...'Helper_Spine_02' Point03...'Helper_Spine_03' Point04...'Helper_Spine_04' Point05...'Helper_Spine_05' As I did with the two legs, I changed the color of the spine bones. I used a blue gradient on the left leg, green on the right leg, and I decided on orange for the spine. In the 'Fin Adjustment Tools' rollout, turn on 'Side', 'Front', and 'Back', and set their Size values to '7.0', '3.0', and '7.0', respectively. The 'front' fin should by all means be facing the front. On 'bone07', the very last (top) bone, deselect the fins. I would like to add some curve to this spine, but I cannot seem to do it through, 'Bone Edit Mode'. Maybe I should have edited them before adding the fins...anybody's guess. 'IK_Spline_Goal'... 'SplineIKNode01'... 'Point01...05' Now, we will continue with the building of the arms. Tim |
|
|
|
|
|
#5 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
The Arm Assembly...
Creating the left arm Bones:
I recommend you to hide all other bones before you start this so that nothing will connect when you don't want it to connect. Working in the top viewport, in the Create panel > Systems object type, click Bones to enter creation mode. In the 'Bone Object group', set Width and Height to 5.0. Turn off the Assign To Children check box. Create three bones; clicking first at the center of the shoulder blades, second at the left shoulder, third at the left elbow, and fourth at the left wrist, right-clicking twice to cancel out of bone creation mode and create a bone tip. Now, these arm bones may have been created in a different part of the screen. As mine were, I had to move them up into their correct position. You may have to do the same. 1.Use the 'Bone Edit Mode' to fit these individual bones into their proper places amongst the mesh object. Rename these bones starting at the root bone: 'Bone_L_Arm_Clavicle'... 'Bone_L_Arm_Upper'... 'Bone_L_Arm_Lower'... 'Bone_L_Arm_Wrist'... Before we continue, we need to position the last arm bone 'Bone_L_Arm_Lower' so that it is pretty straight on the 'x' axis from one end to the other. You can always move it later to correctly fit the mesh model. But for this next exercise, we need it straight. Creating the Twist Wrist bones for realistic twisting of the palm bone...soon to come. This can be a little tricky if you have never done it before. I have tried this many times throughout my research and have come up with a little better way to keep these three bones aligned during the construction. In other words, instead of copying and moving these individual bones physically, I copy them and move them using the 'x' axis in the 'Select and Move' dialog box...it works so much better for me and it keeps them aligned very well. We are in the top view again. Change the 'Reference Coordiante System' to 'Local'. Creat a single bone with its width and height of 5.0. Creat it directly on top and as close to the center of the 'Bone_L_Arm_Lower'... This new bone should be one-quarter of the size of it. Delete the extra nub since we will not be needing it. Click on the new bone... Use the 'Align' to Position and Orientation XYZ (center)... click on 'Bone_L_Arm_Lower'... and the small bone will be positioned directly in the center of the large bone. Name this new bone, 'Bone_L_Wrist_Twist_01'. Now, instead of copying it and then phisically moving it, we will copy and paste WITHOUT moving it. Name the second new bone, 'Bone_L_Wrist_Twist_02' Right-click on the 'Select and Move' button to bring up the XYZ axis dialog. Since we want to move it to the right on the 'x' axis, will use the spinner and move it that way, therefor this new bone will always be aligned properly. Copy and paste once again. This new bone should already be labeled 'Bone_L_Wrist_Twist_03'. Click 'ok'. And once again, move it the same way you did in the previous step. As far as I can tell, it is ok to have the third bone overlapping the long bone by a small amount. This next step, I believe I have been doing it incorrectly. I went back to the 3dmax tutorials and read it again and again. I originally thought that I was to link the third bone, 'Bone_L_Twist_Wrist_03' to the second bone 'Bone_L_Twist_Wrsit_02' and then the second bone to the first bone. And then link the first bone 'Bone_L_Wrist_Twist_01' to the arm bone 'Bone_L_Arm_Lower' to complete the linkage. Well, the tutorial says it this way...”Now, use Select And Link with each newly created bone to the lower arm bone (BONE_L_Arm_Lower).” I now feel that each wrist twist bone is to be individually linked to the arm bone by itself. So we will do it that way and how how it comes out. If someone out there knows for sure...please let me know. 'Bone_L_Wrist_Twist_03'...link to...'Bone_L_Arm_Lower' 'Bone_L_Wrist_Twist_02'...link to...'Bone_L_Arm_Lower' 'Bone_L_Wrist_Twist_01'...link to...'Bone_L_Arm_Lower' We will continue with a four finger'd hand... Tim |
|
|
|
|
|
#6 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
Creating the Four Finger'd Hand Bones...
Creating a Hand:
For this character rig, the hand bones will not be connected hierarchically to the arm bones. The reasoning for this is explained later. Now, if you put your hand in front of you, you wil notice that the palm is about the same size in proportion as your fingers. So... Make sure you are in the 'Local' mode in the 'Reference Coordinate System'. We are also working in the top viewport while creating these hand bones. Bring up the 'Bones Tools' dialogue box. Start with the bone for the palm of the hand... You can delete the nub bone that Max automatically creates after you right-click to stop making new bones. Since the hand doesn't use IK then you don't need that extra bone. Now using the same procedure as you did for the arm twist bones, make a copy of this bone and move it once again using it's 'x' axis. Move it to the end of the first bone you just created. This new bone will be the beginning's of a set of the three-bone'd fingers. Now refine that bone into three segments using the 'Refine' button in the 'Bone Tools window'. Make the first click in the middle of the finger bone to create the first segment, and the next click about two-thirds of the way to the tip to create the last two segments. If the bones are too thick for your liking, then adjust them smaller. If so, then change the sizes in the 'Modify' panel, in the 'Bone Parameters', I chose to change to '2.5' in the width and height spinners. That made my bones easier to see and work with. I did not change anything on the palm bone. Now, click on the hand bone (the first bone you made) and rename it, 'Bone_Palm_L'. In the 'Bone Tools' dialog, go into the 'Fin Adjustment Tools' menu and activate the 'Front' and 'side' fins. Now, with these fins activated, and still in the 'top' viewport, you should see whether the 'front' fins are upwards towards you (the user)...and the side fins are actually aiming out to the side. As in my case, the 'front' fins were aiming to the side. So I had to bring up the 'Rotate Transform Type-In' dialog and used the 'y' axis...90 degrees. This should have rotated the 'Bone_Palm_L' 90 degrees so that the 'front' fin is point directly toward you (the user) and the 'side' fins are now aiming to the sides. If you have it correctly, turn off the 'Front' fin. Adjust the 'side' fins to fit your character's hand accordingly. I used the size of '10.0'. Select all the segments of the finger bones and make one copy of them. Physically move them to make another set of fingers along the 'Bone_Palm_L' bone. Naturally you will need to copy and paste three more sets and arrange them to make your full set of four fingers and thumb. Now, since your new 'Thumb' bones are still straight like the rest, you need to click on the first root bone of the thumb. Click on 'Select and Rotate' to rotate it to a better angle. I chose about 25 degrees on my 'z' axis. The nest step we need to do is to adjust each finger to the proper length according to our own physical hand. To do this, we need to go the the 'Bone Tools' menu, and click on the 'Bone Edit Mode' in oder to accomplish this task. Since the middle fingers are the longest, we will use them to adjust the other fingers accordingly. In my middle finger bones...I adjust the length slightly... In my index finger bones...I kept it the same... In my ring fingers bones...I adjust the length slightly shorter then the index fingers... In my pinky finger bones...I adjusted them the shortest... In my thumb bones...I adjusted them very short...a little shorter than the pinky bones... Once I was happy with the length of each and every finger/thumb, make sure they are touching the palm bone. Ok, we now need to rename the bones: We have already named the first bone 'Bone_Palm_L' The Index finger Bones: The first bone closest to the palm...'Bone_Index_L_01', 'Bone_Index_L_02', and 'Bone_Index_L_03' The Middle finger bones: The first bone closest to the palm...'Bone_Middle_L_01', 'Bone_Middle_L_02', and 'Bone_Middle_L_03' The Ring finger bones: The first bone closest to the palm...'Bone_Ring_L_01', 'Bone_Ring_L_02', and 'Bone_Ring_L_03' The Pinky finger bones: The first bone closest to the palm...'Bone_Pinky_L_01', 'Bone_Pinky_L_02', and 'Bone_Pinky_L_03' And. The Thumb bones: The first bone closest to the palm...'Bone_Thumb_L_01', 'Bone_Thumb_L_02', and 'Bone_Thumb_L_03' Ok, now we need to add the linkage to the necessary bones before we do anything else. 'Bone_Thumb_L_01'...link to ...'Bone_Palm_L' 'Bone_Index_L_01'...link to ...” 'Bone_Middle_L_01'...link to ...” 'Bone_Ring_L_01'...link to ...” 'Bone_Pinky_L_01'...link to ...” Every bone in the hand should now be labeled. Activate the whole hand assembly and move it into your character's mesh and adjust anything that is necessary. When you are finished, make sure that the 'Bone Edit Mode' is off. If everything is connect right, you should be able to move the palm bone and all fingers will follow. This is a simple, effective, and easy hand to work with. If you want to control each and every finger through a spinner, as making a fist, spreading fingers, thumbs up, peace sign, etc...then we can rig it with wires and custom attributes, and expressions, and such when it comes time to rig everything. Tim |
|
|
|
|
|
#7 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
Rigging the Feet and Legs...
Copying the left arm assembly to the right side:
I already did this, though I have not rigged anything as of yet. I just wanted a more complete skeleton before I started the actual rigging. It is important that you take the time to rename the right hand bones. It is simple to do, everything is exactly the same except that the 'L' now turns to a 'R', and you will need to re-number some. Now, as I had mentioned at the very beginning, I am interested only in rigging a human-like character. I have no interest in rigging an alien, monster, or four legged creature at this time. The 3dsmax 5.0 tutorials works through this monster. I have not yet figured out the rigging process for a human character. Hopefully someone out there can give me some advice, or lead me to a link. But, in this tutorial, I will continue with the leg rigging as well as the spine, arms, and hands...as I promised. Let's begin here first with the two legs. Ready? We will be creating a professional rig for the skeletal structure...minus the head. I really wish I had the head included in this tutorial. But I do not as of yet. Another word of advice to those who are interested in rigging their character through these instructions and illustrations. I have been accumulating many tutorials from the Internet which I've incorporated into this. I started putting my original tutorial together about a year or so ago because I wanted to learn how to rig a character. But, I didn't want to rig a simple character, I wanted to do an advanced rig...even though I've never done it before. I began this monotonous training for myself to learn from these tutorials. I would begin, and if something did not make sense, I would research it until I got it right. Most of my attempts ended in failures because either I did something incorrectly, misread something...or, I was simply able to get around the rough spots by changing something to my liking that seemed to work better. How am I so confident that this tutorial will work for you? Well, I can't be. I am confident that it will work for me...which it did, but there may be minute changes and differences when you do it on your computer. So, I cannot guarantee it will work for you. All I am saying is that this tutorial was put together for me...and that I was able to construct a fully rigged character by it. Although I do not conclude that there are no typographical errors in here, I've made the tutorial as simple and clear as I could for others to read. So, I remind you...I have been through this tutorial many times and have reworked them over and over again until I was able to finally establish a rig that satisfied me. You need to read closely, and if something does not work correctly...back up a little and try again. Good luck to you all, I hope you like my tutorial. If there is anyone out there that knows of a better way of doing something of what I've incorporated into these instructions, please feel free to email me at machnng4tym46@earthlink.net Rigging the Legs and Feet: For the legs and feet you’ll create a control curve to adjust each foot, with an Inverse Kinematics (IK) chain on them. This will allow you to simply move the foot instead of having to manually pose each leg bone. You’ll also add a custom control called a Custom Attribute onto the foot control that will allow you to do a basic foot roll and toe roll. You’ll start by creating the IK chains. Create the IK chains: In the Front viewport, make sure we have only the leg bones showing. All other bones and stuff should be hidden. We are going to start by adding solvers to bones. Select the 'Bone_L_Leg_Upper' only. Choose Animation menu > IK Solvers > HI Solver. You should now see a 'rubber-band' type effect... Select 'Bone_L_Foot', just below the ankle. You have made your first IK Chain. Name this IK Chain01, 'Ankle_L_IK_Goal' (Do the exact same for the right leg: Rename the IK Chain to 'Ankle_R_IK_Goal'.) If you want to quickly see how the IK works, select 'Ankle_L_IK_Goal' and move it around. The leg and foot will move. Do the same for the other foot just to make sure they are working correctly. Make sure you undo any moves you make. Now, for the second IK Chain we will make: Back in the 'front' viewport: Select 'Bone_L_Foot'. Choose Animation menu > IK Solvers > HI Solver... Select 'Bone_L_Toe' to complete another IK Goal... Rename to 'Ball_L_IK_Goal ' (Do the exact same for the right leg: Rename the IK Chain to 'Ball_R_IK_Goal'.) Move to the 'side' viewport: Select 'Ankle_L_IK_Goal' and move it around. The foot moves but not the leg. Creating a third IK Chain...select the Front viewport. Select... 'Bone_L_Toe '. Choose Animation menu > IK Solvers > HI Solver... Select 'Bone_L_Toe_Tip '... Name this 'IK Chain' ...'Toe_L_IK_Goal'. (Do the exact same for the right leg: Rename the IK Chain to 'Toe_R_IK_Goal'.) Select 'Toe_L_IK_Goal' and move it around. The Toe and Toe_tip move only. These extra one–bone-length IK chains let you keep the feet planted solidly, but also let you produce other types of motion, such as heel lift and toe rotation. Creating your Foot Controls on both feet: In the 'top' view, create the foot control shape: On the Create Panel, turn on Shapes as the object type, then click 'Rectangle'. Drag to create an Rectangle (size of 90.L x 40.w) with a corner radius of 4.0 units. Align the Rectangle to the left foot: With the 'Rectangle' selected... go to the 'Hierarchy' menu, click on 'Pivot' and then click onto 'Effect Pivot Only'. You will notice that the pivot point for the rectangle is directly in the center. In order for us to have the foot assembly somewhat centered into the rectangle is to change the pivot point of the rectangle. We need to move this pivot point by clicking on the 'Select and Move' and then right-click on it. This brings up another dialog, the 'Move Transform Type-In' We need to move the pivot point by changing to '25' in the 'y' axis. Close dialog and de-activate the 'Effect Pivot Only'. Click on the rectangle and then Click 'Align' in the XYZ position and orientation of the IK goal 'Ball_L_IK_Goal' at the ball of the foot. It is simply aligned...it is not attached to anything yet. Now, copy and paste a second copy of this Rectangle to the right foot. The pivot point in this new rectangle should be exactly the same since it was a copy, so we don't have to change it again. Just simply align the rectangle in the right foot. In the Left viewport: If the two Rectangles are not touching the bottom of both feet, have them both selected, click on the 'Select and Move'...Then right-click and in the dialog, adjust the 'Y' axis. Now rename the shapes to 'Foot_L_Control', and 'Foot_R_Control' and give them 'white' wireframe color. The results: You can use this goal 'Ankle_L_IK_Goal' to make the heel go up, while the ball and toe stay planted on the floor. If you move the second IK goal, 'Ball_L_IK_Goal', you see that the rest of the foot tries to stay planted. Now, if you only select the third IK goal, 'Toe_L_IK_Goal', you’ll see that the toe will move up and down. If it is to rotate the last toe bone, I have not yet figured that out. However, if you select the 'Ball_L_IK_Goal' and the third IK goal together, you see that the heel of the foot stays planted but the main foot can move or rotate. For the goals to give the control you want, the real motion that needs to occur is that the goals need to move in an arc. You’ll get this effect by creating some helper objects. By parenting the IK goals to the helpers, you can simply rotate the helpers to make the foot move. Then you’ll also parent the helpers together in such a way that you get all the moves and control you want. You’ll link all the helpers to the spline control you made so you can move the entire foot at once. (Note that if you move all three IK goals, the entire foot moves). The way to think about this is to think about where you want the foot to rotate. You’ll need a helper at the heel so the foot can roll back on the heel. You’ll need something at the ball so the heel can lift up and rotate around while keeping the ball planted. You’ll also need a second pivot at the ball so that you can rotate the toe at the toe start there. And you’ll also want a pivot at the toe tip so that the foot can lift off while the toe still sticks to the ground. Creating The Helpers: In the 'top' viewport. On the 'Create panel', turn on 'Helpers'. Click on 'Point' then on the Parameters rollout turn on 'Box' and turn off 'Cross'. This helps you distinguish the helpers from the IK goals, which already look like crosses. Coordinate system is in 'View' It is important to use the 'top' or 'User' viewports for this excerise. Create the three point helper boxes along the left foot. The first point helper is to be near the 'Ankle_L_IK_Goal', another near the 'Ball_L_IK_Goal'. The third near the 'Toe_L_IK_Goal' Now create three more for the right leg. Do it in the same order as in the previous step. You should have six helper boxes altogether around the legs...ready for the next posting...to be continued. Tim Last edited by tymmyt48; 27-01-2007 at 09:44 PM.. |
|
|
|
|
|
#8 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
With the helpers that we made in the previous lesson, Align each helper to the XYZ position of its particular IK goal.
The first 'Point01' Helper should align to the 'Ankle_L_IK_Goal'... 'Point02' helper... to the 'Ball_L_IK_GoaL'... 'Point03' helper... to the 'Toe_L_IK_GoaL'... Now, for the right foot: 'Point04' to the 'Ankle_R_IK_Goal',... 'Point05' to the...'Ball_R_IK_GoaL'... and...'Point06' to the...'Toe_R_IK_Goal '... in this order. Create another (a fourth) helper on each foot by selecting the middle helpers 'Point02', and 'Point05' (not at the same time), at the ball, and SHIFT-scaling it up a bit to create a copy. Do this step as indicated here: I find it a lot easier to use the 'Scale Transform Type_In' diolog. I can put in the actual value for both right and left feet. Make a copy without scaling it. Label the left foot copy, 'Point07' and the right leg, 'Point08'. IMPORTANT: Make sure you use Uniform scale and not a Non-uniform scale. Select 'Point07' and right-click on the 'Select and Uniform Scale' button. Up comes the 'Scale Transform Type_in' dialog. In the 'Offset World' spinner, I use the value of 150. and hit Enter. You will notice now that 'Point07' is larger than 'Point02'. Repeat this exact step for 'Point08' in the right leg. Select the two helpers at the left and right ankles, 'Point01', and 'Point04' and move them down to the level of the other helpers. You will be able to see it better in the side view. Again, I used the 'Move Transform Type_in' dialog and put the value of [B]-15[/b]. in the 'y' spinner in the 'Offset Screen' group'. Depending on how you've set things up on your computer, you may be required to use a different axis. You will notice that both point helpers move down to the level of the other foot helpers. According to my instructions, that is what we want to do. Now you should rename all these helpers: Helper 'Point01' (Left-Leg)... to 'Heel_Rotate_L_Help'... 'Point02'... 'Heel_Lift_L_Help'... 'Point03'...'Toe_Lift_L_Help'... 'Point04' (right-Leg)...'Heel_Rotate_R_Help'... 'Point05'...'Heel_Lift_R_Help'... 'Point06'...'Toe_Lift_R_Help'... Name the two larger helpers 'Point07'... 'Toe_Rotate_L_Help'... and, 'Point08'...'Toe_Rotate_R_Help'... Since it is going to start getting complicated, I will begin another posting soon... Tim |
|
|
|
|
|
#9 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
Rigging the feet...
For this particular section, I had to decide on some factors.
You see, I have some ideas and updates for the helpers and wiring of the feet and legs, but I am not quite ready to reveal them...still trying to get the bugs out. So instead, I will explain a simpler way at this time. Then I can go back later in this tutorial and make some changes that will give better control of the legs and feet. Linking the IK goals to the helpers: Tip: In these steps, it is probably easiest to use the 'Select by Name' dialog to individually choose your objects and helpers. It is rather difficult to move your curser over particular objects on the screen and choose without accidently activating something else. If you don't take slow care in these instructions, this may not work properly. I had to do it about half a dozen times, and if I am not careful...I still get it wrong! Select the last IK chain, 'Toe_L_IK_Goal' at the tip... link it to the larger ball helper, 'Toe_Rotate_L_Help'. You are setting this up to make the toe rotate by rotating 'Toe_Rotate_L_Help'. Note: This rotates the front leg assembly. (Do the same step for the right foot ![]() I got both working...shall we will continue? Last edited by tymmyt48; 29-01-2007 at 02:13 AM.. |
|
|
|
|
|
#10 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
Linkage continued...
Select the first IK chain 'Ankle_L_IK_Goal' and...
link it to the smaller ball helper 'Heel_Lift_L_Help'. Now you can make the heel roll by rotating 'Heel_Lift_L_Help'. Actually, when you rotate the helper, the leg moves and the 'Bone_L_Foot' moves. But, the 'Bone_L_Toe' stays put. (Do the same step for the right leg ![]() I got both feet working...shall we will continue? |
|
|
|
|
|
#11 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
Linkage continued...
Link 'Ball_L_IK_Goal' to...
'Heel_Lift_L_Help'. This will help keep the foot bone stable when the heel lifts up. (Do the same step for the right foot ![]() I got both working... Select 'Toe_Rotate_L_Help' and 'Heel_Lift_L_Help' and... link them both to 'Toe_Lift_L_Help'. If you move this helper upwards, it will make the whole foot move up. If you rotate the helper...then the feet and leg moves upwards like they are supposed too. (Do the same step for the right foot ![]() I got both feet working...Shall we continue? Tim Last edited by tymmyt48; 29-01-2007 at 02:41 AM.. |
|
|
|
|
|
#12 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
Creating the 1st Custome Attribute...
Just a note of concern: I tested this on my own computer yesterday, and everything seemed to work correctly. but by any chance that I've made an error some place, PLEASE let me know so I can correct it. the last thing I want to do is to give false information to people I'm trying to help. thank you.
Creating custom Attributes: Wire attributes to helper rotation: You'll start by creating the attributes. Then you’ll use parameter wiring with some simple MAXScript expressions to drive the rotation of the helpers from the control attributes. Add custom attributes: Select 'Foot_L_Control'. If you have installed the Attribute Holder modifier, add it to the 'Foot_L_Control'. Note: This modifier is a simple scripted plug-in modifier that ships with the program, and is in the scripts directory. It makes an empty placeholder modifier on the stack where you can add attribute controls. To install the modifer, simply copy Modifier-Attribute Holder.ms from the Scripts\PluginScripts directory to StdPlugs\Stdscripts. Restart the program. Locating the modifier in 3dsmax when your back to working in it. Click on 'Foot_L_Control'. You notice the name is located at the top right corner area of the panel? Directly below is the 'Modifier List' with a small arrow at the right-hand side. Click on the arrow which will open up a long listing of available modifiers that are currently in Max. The modifier, 'Attribute Holder' is located two listings directly below 'Object-Space Modifier'... Click onto it to activate it into the 'Foot_L_Control's' modifier's listings. Now, from the Animation menu, choose 'Add Custom Attribute'. The Add Parameter dialog is displayed. In the Add Parameter dialog > Attribute Style rollout > UI Type group, change Name to 'Roll' (without the quotes). In the Float UI Options rollout > Range group, set From to '–100.0 ' and to '100.0 '. You’ll use the negative side to make the foot rotate back on the heel, and the positive side to make it rotate forward ball to toe. In the 'Finish' rollout, choose 'Object’s Current Modifier' from the drop-down list... ...and click 'Add'. The 'Roll' modifier should now be seen in the modify panal on the righ-hand side of the screen. this is where you will be able to control certain aspects of the foot by inserting values, instead of having to maunually move differents parts of the foot itself. This is much easier to control. Currently, changing the attributes values won’t do anything, since you haven’t connected, or “wired” the spinner to anything yet. The next steps now will connect these attributes to the helpers' rotations. Certain controllers, such as Wire Controllers, Expressions and others, will operate only over the time range you specify. While you can go into Track View to adjust this after the fact, it is much easier to simply create the controller with a large enough time span to cover any animation you might do. The default time span for the controller is the current time range. By setting the time range to a really large range, say [B]–1000 [/b] to 10,000, you’ll be sure not to have any problems later. Make sure that 'Foot_L_Control' is still active. If not, select it... Click on Animation > Wire Parameters > Wire Parameters... On the pop-up menu, choose Modified Object > Attribute Holder > Custom_Attributes > 'Roll ' (without the quotes). A rubber band stretches from the target object. Click 'Heel_Rotate_L_Help'. On the new pop-up,and choose Transform > Rotation > 'X Rotation'. The Parameter Wiring Dialog appears. You need only a one-way connection... click the right-arrow and click 'Connect'. This sets the control direction from the Roll attribute to the foot's X rotation. It should say 'Roll' in the right-hand box. Leave the Parameter Wiring dialog open, but move it aside so you can try out the new control. Use an expression to better control the rotation: Try changing the Roll value. The foot spins wildly. Reset the Roll attribute to 0.0. What is actually happening is not random, but rather an issue with how 3ds max internally handles rotations. Most people are used to degrees for rotation. Ninety degrees is a quarter turn or rotation, 180 is half and 360 is a full turn. However, many 3D applications use radians. Radians are another way to numerically describe a rotation, except they are based on the value of pi (3.14159...). With Radians, 2 times pi is a full 360–degree spin. That is, 6.28 Radians equals 360 degrees. Pi itself would be a 180–degree or half turn. One-half of pi would be 90 degrees. Fortunately, 3ds max includes a couple of built-in functions that can convert from radians to degrees and back. Currently, 3ds max wants radians, which means that if you change Roll from 0 to 3.14, you’ll get a 180 or half spin. It’s easier if you work in degrees. Next, you’ll use a function called degToRad to convert Roll into radians. 1.In the Parameter Wiring dialog, change the wiring expression to: degToRad(Roll) . Click 'Update'. Now try spinning the Roll attribute. It is much more controlled. In the Parameter Wiring dialog, change the wiring expression to: degToRad(0.6*Roll), and click 'Update'. Here, you have told the script to multiply Roll by 0.6, which limits the rotation to the 60 to –60 degree range. (Do the same for the right-foot) Now, this expression works for my feet..shall we continue..? |
|
|
|
|
|
#13 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
More Custom Attributes fo the feet...
We are going to add another custom attribute to the foot. This time, we want to make the toe rotate when the heel moves upward as if beginning a step forward.
Since we already have the 'Attribute Holder Modifer' installed and into the 'Foot_L_Control's' modifier stack, we don't need re-insert it ifwe are going to use it again. Click onto 'Foot_L_Control' In Animation > Custom Attribute...make another attribute. Type in the name as 'ToeRotate' . Type in '-100' to '100'. Select 'Object Current Modifier'...and click 'Add'. Now you can see in the modifier panel that it appears directly underneath the 'Roll' spinner. If you do not have this, you may need to go back and try again. Wire an attribute to spin the toe helper: Select 'Foot_L_Control'. Wire the 'ToeRotate' attribute to 'Toe_Rotate_L_Help's X rotation. Animation > Wire Parameters > Wire Parameter... Modified Object > Attribute Holder > Custom Attributes > ToeRotate... Click on 'Toe_Lift_L_Help' Transform > Rotation > X Rotation... The Parameter Wiring dialog box appears. The 'ToeRotate' should appear in the lower right hand box. Click on the right arrow because you are choosing a 'one-way' wiring...and click 'Connect'. Now, change the values in the 'ToeRotate' spinner in the modifier panel. The foot spin wildly. Reset the value back to '0.0'. Change the expression to: degToRad(ToeRotate) and click 'Connect'. Now, you may notice that when you change the values again, the foot moves at a more controlled rate. Looks better! Note:Now, I am still working on a separate tutorial that will supply expressions in order to provide rotation to the foot bone as well. I am still getting the bugs out. (Do these steps for the right foot) With the 'Foot_L_Control' active, we want to create another custom attribute called 'FootPan'. We are setting this up so that we can make the character move its foot from side to side on the 'y' axis...just like you and I can. Click on 'custom Attributes' to bring up the dialog. Name: 'FootPan'... select '-100' to '100' (I have discovered that this number represents how many degrees you can access in the actuall value). I am only using these values because it is what the instruction say to do. 'Objects Current Modifier' and click 'Add'. Now, the 'FootPan' spinner is in the modifier's panel directly beneath 'ToeRotate'. Animation > Wire Parameters > Wire Parameters... Modify Object > Attribute Holder > custom Attributes > FootPan... Select 'Heel_Rotate_L_Help', since this is the helper we want to move. Transform > Rotation > Z Rotation... The 'Wire Parameters' dialog...Click the right-arrow...click on 'Connect'. If you move the value in the spinner, the foot's movement will be too sensitive. Change the expression to 'degToRad(FootPan)'. Now the 'FootPan' should move side to side much smoother. (Do this same for the right foot) Creating the last and final custom Attribute for both these feet. Select the 'Foot_L_Control'. Add a custom attribute... In the dialog, Name: 'AnkleTwist'...since we are going to create the movement to twist your ankle just like kids do when they stand on their ankles. The value range, '0.0' to '100'...since it is impossible to move out ankle the other way. 'Object Current Modifier' ...click on 'Add'. The final spinner appears at the right hand panel. I go to the screen and activate 'Heel_Rotate_L_Help' since this is the helper we want to twist. I check on the axis and it appears to be, 'y'. Animation > Wire Parameters > Wire Parameters... Modified Object >Attribute Holder > Custom Attibutes > AnkleTwist... Select 'Heel_Rotate_L_Help'... Transform > Rotation > Y Rotation... In the Wiring Parameters Diolog, click the right arrow and 'Connect'. 'AnkleTwist' should be in the right hand box. Changing the values in the spinner twists the ankle in the direction we want, but it moves too quickly. Change the expression to 'degToRad(AnkleTwist)'. Now the 'AnkleTwist' should move to only one side much smoother. (Once again...and finally, lets do the same steps for the right foot.) Change the expression to 'degToRad(AnkleTwist)'. Now the 'AnkleTwist' should move to only one side much smoother. But you will notice that it moves to the wrong side... In the expression box, simply add a '-' to the beginning of the expression...and click 'Update'. Ok, now all of my attributes...'Roll', 'ToeRotate'” (except for the rotation of the toe itself), 'FootPan', and finally 'AnkleTwist' work just fine for me on both feet. You also notice that you can still move each foot by activating their helpers, 'Foot_L(R)_Control'. So far, so good! If you have the same situation, then shall we continue? Tim |
|
|
|
|
|
#14 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
Adding a Swivel Target to the knees...
Add a swivel target to control the knee:
In the Top viewport... In the Create Menu...'Shapes' click on 'Rectangle'. Create one with Length and Width both equal to '10.0'. I personally like to add a corner radius to '2.5'. Copy and Paste to make another helper for the right leg. I am going to leave it the color of white for better visibility. Move 'Rectangle01' in front of the left leg and the 'Rectangle02' in front of the right. These helpers should be placed at knee height and in front of the toe bone. Check the picture below if you not sure. Rename the left to 'Knee_L_Control ', and the right to 'Knee_R_Control'. In the perspective viewport... Select 'Ankle_L_IK_Goal '. In the Motion Panel > IK Solver Properties rollout > IK Solver Plane group, click the Pick 'Target button' currently labeled 'None'. Link 'knee_L_Control' to ... 'Foot_L_Control'. For the right foot... Link 'knee_R_Control' to ...'Foot_R_Control'. Now try moving 'Knee_L_Control' and, 'Knee _R_Control' around. As you do so, the knees tries to aim towards the control, even though the feet are nicely locked down. The effect is more noticeable when the leg is bent. Now, fix the pivot point for 'Foot_L_Control'. In the left view port... Select 'Foot_L_Control'. In the Hierarchy Panel > Adjust Pivot rollout, click 'Affect Pivot Only'. This allows you to move the pivot point of the object, without affecting the children or object itself. In a side view, move the pivot to where the ankle is. This is better illustrated in the picture below. Make sure to de-active the 'Affect Pivot Only' button. This gives you a more natural animation control. With the Swivel Target parented to the foot, you can adjust the knee as needed using the 'Knee_L_Control' . You can also animate and move the foot, and use the attributes on it to do basic foot roll and toe rotation. Now, go back and do the same steps for the right foot... Now, that you have completed the two legs, we may now continue onto the next step... Last edited by tymmyt48; 01-02-2007 at 12:17 AM.. |
|
|
|
|
|
#15 |
|
Registered User
Join Date: Jan 2007
Posts: 177
Thanks: 0
Thanked 0 Times in 0 Posts
|
Controlling the Knee better...
Add a helper for the leg as a whole:
Now you’ll add a point helper to the top of the entire leg bone structure. This gives you a nice layer of abstraction should you decide to do anything odd with the leg, and is a nice way to keep things clean. Create a point helper in the Top viewport for the left leg. Create > Helpers > Point...make sure 'Cross' is checked. Copy and Paste to make another one for the right leg as well. Rename (left leg) 'Leg_Start_L_Help '. Rename (right leg) 'Leg_Start_R_Help' . Align 'Leg_Start_L_Help' to the XYZ position and orientation of the 'Bone_L_Leg_Upper'. Link 'Bone_L_Leg_Upper' ...to the helper, 'Leg_Start_L_Help'. (Do the same for the right foot) Later on you’ll make this helper a child of the hips and spine so the body works together. Now that you have the basic working of both legs complete, you’ll finish the legs off with two more controls. One is the 'Ground_Control' that will be used to adjust both feet at the same time. The other is a 'Placement_Control' that eventually will control the entire character. Add character placement controls: In the Top view, create an Ngon. Create > Shapes > Ngon... This will be created 'world' aligned, at a height of 0.0. A value of about 65.0 works well. You can also adjust it to have a larger number of Sides, such as 10, for more detail and points on the control. I also added a corner radius of 10...I think it looks better...just my own personal preference. In the transform type-in fields at the bottom of the screen, enter 0.0 for the 'X' position. Then move its Y position so it is centered between the feet. Rename the shape 'Ground_Control'. In the 'Front' viewport, bring the 'Ground_Control' down to the ground, bottom of feet. I had to use the 'Z' axis. Create another NGon shape. Increase the radius to enclose the character. A value of 90.0 works well. Again, with the corner radius of 10. Enter an exact position of 0, 0, 0 in the transform type in fields, to move it to the world origin. Name this second shape 'Placement_Control '. Again, we need to bring this shape down to the foot level just like the previous shape. I used the 'Z' axis. Now you'll parent our controls together: Link both 'Foot_L_Control' and 'Foot_R_Control' ...to the new, smaller 'Ground_Control' shape. Link 'Ground_Control' ...to 'Placement_Control'. Normally you'd also link the top leg start helpers to the placement …but you'll be linking those to the spine later on. For now, the feet and knee controls work the legs. You can also control both legs together by moving the 'Ground Control'. Later on, the placement control will cause not only the feet, but the entire character to move, which is useful for getting the entire character to some position and rotation in a scene before you start animating it. Now let's look at something important. Right now, the controls are where we want them. What if later on, after animating the character in various ways, we want to go back to this position and these settings? There is a new feature in 3ds max 5 called Skin Pose, which lets you store and later retrieve the position, rotation and scale of the selected objects. You'll set a skin pose for this character right now. Set the skin pose: Select all of your created shape control objects: the feet, knee, ground and placement controls. The names of these all end in “CTRL”: 'Foot_L_Control '... 'Foot_R_Control '... 'Knee_L_Control '... 'Knee_R_Control '... 'Ground_Control '... 'Placement_Control '... Hold down the ALT key and right-click to view the animation quad menu. On the Pose (lower-left) quadrant choose Set As Skin Pose. Answer 'Yes' to the verification dialog. The skin pose is now set. At this point you can now move the controls however you want. Rather than having to undo any moves and rotations, you can select the control object, ALT+right-click and then choose Assume Skin Pose. Try it out. Select any control and move it around, leaving it in a new position and rotation. ALT+right-click and choose Assume Skin Pose. Result: the control moves back to where you had rigged it. Important: Custom Attributes, however, are not stored. This means that if you adjust the Roll or toeRotate settings, you will have to manually set those attributes back to zero to restore the skin pose. Everything worked for me. Shall we continue? |
|
|
|
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
| Thread Tools | |
| Display Modes | |
|
|