bokeron fx - studios || Carlos Reding ..:: On-Line Portfolio ::..


Main    Gallery    In progress    Animation    Projects    Tutorials    Links    About                                                 


Carlos Reding | On-line Portfolio

Tutorial: Bone setup in LightWave

By Carlos Reding

Back

    In this tutorial, we're going to learn how to create a bone system for our character with some basics controllers. This is not an absolute way, each animator has his/her own way to do this. So, let's start!

    You must know that create a bone setup is not hard, some boring and heavy sometimes, but it's easy. If you know how to build a simple Ik chain, you know how to make a bone setup for a character: lot of simple Ik chains together and synchronized. Before you do anything, just load several minutes or hours of your favourite music. This will help to make this more fun! You must have some coke and voodoo character too.

 

Building the skeleton structure

    Have you loaded it yet? Ok, so put your headphones on and start Layout. As you can see, I have customized the interface. You can do (must do) this to improve your work speed and workflow, and feel better when you work with the software. But don't worry! no 3rd-party plugins were added but messiah in the interface. Once we have loaded layout up, we have to add a null object:

    This "Main_character_ctrl" object will be the main controller of the hierarchy of the character: geometry, Ik goals, clothes..., everything our character needs. I like to customize the shape, colors and some comment about it (shot). Everything about our character must be parented to this null, so when we need to move the character from here to there in the scene, we'll do it using this null, because we will move all nulls for Ik, clothes and all that too. Understood? Very well. Next step, we have to add a null that will work, in this tutorial, as the main geometry (you can add the geometry instead of this null and apply the next steps). Let's name this null and move it to the pivot position of our imaginary character, then we can customize the shape (shot), and remember: you have to parent this to "Main_character_ctrl" null we've added. After this, we have our "character" ready to add bones. We're going to do this process in layout to make a review, in other tutorial, between Lw and Messiah bone setup and workflow. If you prefer you can add skelegons in modeler and convert them into bones in layout.

    At this point, if we going to add bones in layout, we must customize the views to make easier this task (shot). Once again, I have used the one I like to work, but you must use the viewports configuration that make you feel better with the software. Ok, now we're going to add the root bone, from here all spine and hip bones will be added. So, there we go, select the pivot null (or geometry) and click on "add bone" (note: you can use the draw bones tool, but you cannot draw them fine and aligned as using add bones tool in Lw), name it with a root-like name like "root bone". Here you can rotate heading 180 degrees or leave it as default. Now resize the bone to 0m, you will not see the bone here. Doing this you have the skeleton chain control and will not affect to the rotations of the rest bones (shot). We're going to start the spine chain, so add a bone from root and resize it to 0m too, because its rotation coordinates will be wrong and we can animate that bone for error, this bone will be locked later. Once we have done this, can add all spine bones as our character needs (including neck bone). You could have something like this. You can see that all rotation channels are aligned, something very important when you're animating because all bones will move very natural. If your rotation channels are not aligned, when you are animating the bones another one will do something wrong for this. Good, now, from neck_bone, we're going to add another one. This new bone will be the head root bone, so have to align it as root bone. Doing this we are reseting the coordinates system for the head, making us easier to animate. When you do this and align the head root bone, resize it to 0m. You will see that coordinates are not correct!... at this point, you could have some coke, open your winamp and load more music up. This is the surprise, add a new bone from the head root, this is the head bone and have a really nice coordinate system, you will can animate the head very well (shot).

    Now we have to add shoulders, if you are using geometry add these bones where you're character has the shoulders. If you are using the null, let's add it one or two bones before neck one. Then, align it as root (and head root) bone, here you can resize it to 0m or leave it very small (shot). Add another bone from shoulder root, this is the shoulder bone, rotate and size it to adjust it with the shoulder geometry. From this shouder bone we have to add another one (arm root), and align it like root bone, size it keeping in mind where starts the arm. All these three bones must look like a "U" (shot). From this arm root bone we're going to build the arm in a really simple process: add two bones, one for upper arm and, from this, other for lower arm. Finally add from lower arm bone the goal bone, then resize to 0m (shot). Finally, using mirror item tool and clone hierarchy tool you can mirror the shoulder/arm bones, you should have something like this. See how, one more time, all rotation channels are aligned.    Now we have to add shoulders, if you are using geometry add these bones where you're character has the shoulders. If you are using the null, let's add it one or two bones before neck one. Then, align it as root (and head root) bone, here you can resize it to 0m or leave it very small (shot). Add another bone from shoulder root, this is the shoulder bone, rotate and size it to adjust it with the shoulder geometry. From this shouder bone we have to add another one (arm root), and align it like root bone, size it keeping in mind where starts the arm. All these three bones must look like a "U" (shot). From this arm root bone we're going to build the arm in a really simple process: add two bones, one for upper arm and, from this, other for lower arm. Finally add from lower arm bone the goal bone, then resize to 0m (shot). Finally, using mirror item tool and clone hierarchy tool you can mirror the shoulder/arm bones, you should have something like this. See how, one more time, all rotation channels are aligned.

    Following these basic steps you can add the hips, hands, legs and foot bones. Construct middle hip looking like a "U", such shoulder bone (imagine that root bone is shoulder root bone), add the leg root bone and add the upper and lower leg bones. One diference here, the goal bone must be aligned like root bone to reset the foot coordinates, the same we've done with head. Take your time to do the skeleton structure, if you go fast the first time can make a wrong structore and will have to restart. When we finish this task, we'll have the basic skeleton structure complete, once again with the rotation channels aligned (shot). You'll see that heading and bank are not aligned in legs, but pitch yes, must be like that because leg movement is based on pitch channel. We have already finished the hard work, making a skeleton structure good for the animatiion process. Wow man, are still you alive and voodoo character unused? Nice! you are a clever guy/babe. If you were working this part on your character model, Bone X-Ray tool can help you to work with bones.

Tips: You could had bones in all legs/arms/shoulders joints to control the derformation. This give a lot of control but have to animate it by hand(shot).

Setting up the inverse kinematics

    This process is easier (or not) than last work. We're going to configure the bones and add some basic controllers to make our character moves. Here we go... oh! don't forget load more music up and replace your coke, save the scene now might be useful too:

    What about if we start for the easiest part? I knew it. Let's add a null, and parent it to "Main_character_ctrl" (*very* important, just remember), and rename as "head control" or something. It's going to be the controller for our character's head, then move it to the front of head bone. Select this head bone and go to motion panel, in "Target" option we'll select the "head control" null (shot). Test that works properly moving around the head null. Using this way you have got to animate the bank channel by hand, but if you want, can animate the head by hand 100% moving the head bone. The set up of arms and legs are very similar (what the hell... it's the same!), and we'll see why we cannot use the Lw's simple constraint, so let's start by leg (repeat the same process for the another leg):

    Add a null object, name it and parent to main character control object. This null will be the main leg control, so every null of leg configuration have to be parented to this one or to a children of this leg control null. Move it to the leg goal bone position. Let's do the same process for the toe: add null, parent it to leg control null (not to main character control null) and move to foot goal bone. You should have something like this. Now, select each leg goal bone (not toe) and go to motion panel: activate the unafected Ik by option. Then, select the leg control null as goal and give it a streght of 100.0. Repeat for toe control. Next step, go to each hip bone and activate the unafected by Ik option. Finally, go to "controllers and limits" tab in motion panel, and avtivate the inverse kinematics in those channels where bone will rotate: pitch for upper/lower leg bone and last foot bone, bank for leg root bone and pitch&heading for foot first bone (shot). Now we're going to add the knee control, and here we'll see why the simple constraints are bad. Let's set up constraints first: add a null object and parent it to "toe control" null or "leg control" object, then move in front of joint of upper leg bone with lower leg bone, so the knee (shot). Then go to each leg root bone, and open motion panel: add the "SimpleOrientConstraint" modifier. This constraint works as messiah knee constraint or maya/xsi up-vector , or should work. Double-click to open, and click on "Add".

    Here is the configuration you should do with constraints: select the rotation channel do you want to control, the object which will control the channel and the influence. In this case for knee, we can select the heading channel of the leg root bone or upper leg bone, both have heading channel totally horizontal. Click on Ok to close the constraint interface and rotate heading of the control leg object, you'll see the awesome movement of the knee when rotating. Why this guy says that they are bad? Ok, save the scene. Make a little animation with that leg configuration, you'll see that when move the slider, the leg looks wrong, lose the position and, at least crash your animation. This could be fixed with an "After Ik" option, such "follower". So, go to motion panel and delete the constraint from modifier list. Select the knee control object and add the follower in motion panel. Open it up, and set it up to follow the heading of leg/toe control object. Be sure that "After Ik" option is deactivated. Repeat this process for upper leg bone (knee bone), add follower to follow the heading channel of knee control object. Be sure that "After Ik" option is deactivated, again. Now repeat the animation... yeah! yeehaa! the knee movement rocks! and the most important, works as we want! Now, drink some coke. Let's add a hip control. Add a null object, rename and parent to main character control object. Move it to the hip position (for this imaginary character I moved it to pivot position). Now add "Follower" to both hip bones, and put this configuration:

For left hip bone

For right hip bone

    Test that hip control works fine and the movement is good (shot). For the spine, just add a null and move it to shoulders pivot, align it with the spine chain. Select the bone upside the spine control and configure the goal: use the spine control object as Ik goal for the spine. Then, add Follower and configure it to follow Bank channel of spine control (be sure to deactivate "After Ik"). Copy and paste this follower modifier into all spine bones but neck. Test spine control (shot). Ok, we are finishing this, don't give up!    Test that hip control works fine and the movement is good (shot). For the spine, just add a null and move it to shoulders pivot, align it with the spine chain. Select the bone upside the spine control and configure the goal: use the spine control object as Ik goal for the spine. Then, add Follower and configure it to follow Bank channel of spine control (be sure to deactivate "After Ik"). Copy and paste this follower modifier into all spine bones but neck. Test spine control (shot). Ok, we are finishing this, don't give up!

    We are begining the end of the setup. Let's go with the arms setup! Add a null, name it and parent to main character control object. This will be the arm control. Move it to arm goal bone. Now open motion options and, with arm goal bone selected, select arm control object as Ik goal. Put 100.0 as strenght. Then select arm root bone and activate "Unaffected by Ik". Now, go to "Controllers and limits" tab, and configure roation channel like leg, keeping in mind the kind of rotation: heading for lower arm bone and heading&pitch for upper arm bone must be controlled by Inverse kinematics. Test the controller (shot). As you can see, you cannot control the elbow orientation. That's going to be the last action. Here, we neither can use the orient constraint so will have to use the "Follower" modifier. Add a null and name it as elbow control, move it to the arm root bone position and move it back using Z channel. You should have something like this. Select the upper arm bone, and add the follower. Open the interface up and make the bank channel of upper arm follow the heading channel of the elbow control object (make sure that After Ik option is deactivated). Now if you rotate heading channel of your elbow controller, you'll see how rotate. See this example.Have it? YEAH MAN!! WE HAVE DONE A COMPLETE CHARACTER SETUP! YEEEHAA! (we are jumping in the room, making a lot of noise with the "yeehaa's", kiss the girlfriend, the boyfriend, the dog, the coke bottle, cops...) You can download the scene here.

    Some last concepts: if you want to control a hand using Ik, have to build five simple Ik chains. That's very easy. Take your time to do this tutorial, not for make it faster you are better. So take it easy, lot of music, lof of coke and be patient.

Back


All artwork on this site is © copyright 2001-2005 Carlos Reding unless otherwise stated