Reding | On-line Portfolio
Tutorial: Bone setup in Messiah
By Carlos Reding
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
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
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
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
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
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