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 Messiah

By Carlos Reding


    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.

    Have you loaded it yet? Ok, so put your headphones on and start messiah. Don't scare! messiah interface is really intuitive and you'll see during this tutorial. As you can see I have customized the views configuration to work better, you must do the same, use your own configuration to feel good with the software, be comfortable. We're going to work in Setup tab during bone setup process: Setup tab is a special tab where we can do bones setup, morph setup, everything we need to set our character up: bone deformers, morph blender, motion blender... but expressions (In command tab). Information for those users who never used messiah: do not try to animate in setup tab because you're setup will go trash, setup tab for setup and animate tab for animate. This is very important, understood?. When you are naming objects and nulls you have got to use "_" because if you use the space button messiah will work wrong (i.e. Bad: "This is the name", Good: "This_is_the_name"). One more thing before start: while you are working with anything in setup tab, never (I mean: NEVER) use the UNDO... because the position won't be undone in normal mode in animation tab, and you'll have quite headaches. So, If you did something wrong working in the setup tab, use handles to fix the mistake.

Building the skeleton structure

    In setup tab, we've to add a null (you can name it before adding), this will be our main character control object (remember the "_" instead of space). Then, add another null as our character pivot (you can use your geometry instead of) and parent it to main control null object (for parenting, we only have to drag, in item list, the child object to parent and drop). After parenting, if you used the null, move it to pivot position (shot). Then go to the Effects subtab, in Setup tab. In effects tab we have all tools and deformers we need (shot). Click on list and look for Bone deform, then click in "+". You can see two new items: Bone deform and skeleton. Clicking in bone deform we can configure the general skeleton options (as weights, target, motions...) and we can activate and deactivate this deformer clicking on green point (in item list). Skeleton item show us where are going the bones to be created, we can control skeleton moving/rotating this skeleton item. You can leave it as default or move to some position. You should have something like this. Now we're going to add the spine bones: here in messiah we don't need to draw a root bone for spine and hip bones because we have the Skeleton item. Hit on add bone to add the first spine bone, next bones can be added using the realtime add and realtime modify, you'll enjoy with this. You'll have to rename the bones using rename tool in Setup tab, *not in file tab* (shot). Now, we're going to add shoulder bones: if you're using your geometry for this tutorial add the bones where the shoulders are. If you are using a null as character, add a shoulder bone (not root, we don't need them here). Then add a null, rename it as arm conection or something, parent it to pivot object (or geometry) and move it to opposite side of the shoulder bone pivot: this null will reconfigure rotation coordinates because heading, pitch and bank channels has been modified (they're not in their original position, shot). Following the same building process, we're going to add arm bones (*very important*:these bones will be parented to this arm conection null object):upper arm, lower arm and goal bone (you have to resize this bone to 0.0 in bone tab under item list). You should have something like this. After this, go to File tab, and look for Multiply, there, select the shoulder bone and mirrom it. Then, select arm conect null and mirror it, will mirror all hierarchy, then go to setup tab again and rename mirrored items (shot). Be sure that all rotation channels are aligned. You can drink some coke now... oh my god, did you finish the coke?? and what the hell are you doing here without a coke!!! aaah mo****er!! Go for a coke NOW.

    Got it? I'll trust you. Let's go ahead with the hip, legs and feet bones. The process is the same than arm construction. Add hip bone from skeleton item and adjust to the character's hip. Add the leg/feet connector null, parent to character, and then construct leg/feet from here. You should have something like this. In the case of feet bone, you can use the conector null object as leg control for inverse kinematics (this leg controller have got to be parented to main character control object). Ok, last task: add the head bone. Select neck bone and add child bone, rotate it. Here we dont need any nulls and any tweak for rotation channels because they are really good (shot). Ok, have you got it? Yeah! we've just finish the harder work, you can be proud of yourself.

Setting up the Inverse Kinematics

    We're going to start the funniest part. You will enjoy because it's really easy and powerful. Here we will work mostly in Animate tab, and remember that all about our character setup must be parented to main controller: Ik controller, clothes, etc. In file tab, add a null and parent it to leg controller(our legs controller were already parented to main controller), this one will be the foot Ik controller. Move it to toe position. Add another one and parent to foot controller, this will be the knee control object. Move it to knee position (shot). Now, in animation tab, selecvt the leg goal bone, and open Inverse Kinematics tab: select leg control object as goal, don't activate "Calculate Ik" yet, select upper leg bone and a activate "Anchor". Once this, you can activate, in leg goal bone, "Calculate Ik". Test your leg movement (shot). In messiah, "Anchor" option must be added in that bone where Ik chain finish, that bone included. Repeat the process for arms, foots (fingers) and spine, for spine you may need more than one controller. When you configure Ik you can have a problem: the bone "flips", to fix this go to inverse kinematics list and, near to Goal parameter there is "Direction", change from + to - (shot). When you finish this process, test all controllers, you should have something like this. You can see that arms are not attached to shoulder bones and elbow/knee orientation is uncontrolable. Before expresions, add a null and parent to shoulder bone, then move to arm start null position (shot). After this, add a null and parent to shoulder bone, this null will be our up-vector or elbow controller. Will help us later.

    Get ready to use the expressions. Go to Command tab. The first we have to do is attatch the arms structures to body (shoulders). Click on Add variable and select the shoulders root bone (one of spine bones), select the channel we want to use: Pitch in this case, right click in Buffer gray box (shot), then go to Channels subtab, and select the" target" object and channel (shot). Be sure to have "Apply after IK" activate (red icon). Now if you move the spine down, you'll see that arm orientates with body, but no the position. To fix this position will use another expression: MoveTo. Add new variable and select MoveTo from expressions list. Now, as first object select the null we've added in the same position as arm start null, and arm start null as second object. Activate Before Ik option (blue icon), then right click in box near to expressions list. Repeat this process for the another arm. You should have this result. Now let's set knees up (elbow setting are the same!). Add new variable and select KneeConstraint from expressions list. This KneeConstraint works like Maya/XSI Up-Vector. May looks hard to configure but it's really easy, follow this guide to align: kneebone->knee controllet->leg controller (shot), leave it in before Ik mode (blue icon), right click in box near to expressions list. Rotate the leg controller and look that awesome knee orientation (shot). Do the same to set elbows up (shot). Now let's go with hip controller, add a null and parent to pivot null or geometry, then parent legs starts nulls to this hip control, and it's done! Parent hip bones to this hip controller too, we could do this before... (shot) As last action, we can move by hand the head bone to control the orientation. YEAAAH!!! WE HAVE DONE A SETUP IN MESSIAH!!! YESSSSS (drink some coke now could be good idea). See some examples.

    Take it easy because messiah can be some hard at the begining. All this that looks really hard, it is not! It's really simple once you know the tools. So take your time and your own way to do a good bone setup. You can download the scene here.


    I've been playing with an alternative spine control, which is really nice. The controller is based in the flexmotion: with a curve of several points, we can control a hierarchy of bones. To work with this, just select the skeleton item in the item list and add the flexmotion effect from setup tab (shot). The first you will see, or shall see, is that all your bones gone mad, to avoid this you can go to modify, in setup tab, and change the target of flexmotion from skeleton to the first spine bone (skeleton_01 or spine_bone_01... must be the first), or you can select that first bone when you add the effect. This effect, merged with bone deform can give us great results, but lot of problems when setting it up. Add all points as you need to control the spine as you want to (no for add lot of points you have better control, keep in mind), you may see that bones gone mad... again, don't worry, continue adding points. When you finish, the skeleton is not as we want. To fix this, go to setup tab and select flexmotion (main effect control, not the curve main control), here you can see several options such match curve or elasticity. In match curve options, activate "affect before ik" and "filter hierarchy motion" (shot)... this looks better now, uh?. You should have something like this. At this point, you can work with the points to animate, apply expressions to the flexmotion points and whatever you want. Sometimes the chain could looks bad, rotated, when you are working, to fix this, just select the point attached to the root bone of the hierarchy, and activate "use point tangent" in setup tab (shot). So, enjoy this new kind of control, more precise that few ik controllers for the spine! You can see here an example.


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