Character Animation
Tutorial
For
By FrÈdÈric Merlos
Part III
(Note: This tutorial is written for UNIVERSE
version 4 or later
We continue this tutorial with the previous skeleton and
the same model but, because we focus here on the skinning, we've removed
the morph targets and closed the head shape. This allows you to work on
one single mesh object.
THE SKINNING
Electric Image Universe 4 provides a new, very fast skinning engine which supports strength maps as paint (with the built-in paint tools), or as texture maps by importing a grey-level bit map file (applied with the standard texture tools).
Now that we have a rigged skeleton (from the previous
tutorial), we have to bind the model to the skeleton.
Universe offer two ways to do this:
- Select the top of the chain or the root of a
skeleton (In our case this is the effector, "MOVER")
- Go to the Character menu and choose Bind
Skin to Skeleton.
- Select the model you want to bind (U-man)
- Press Cancel or ESC to terminate the
operation.
In our case, the root is a box effector and the skeleton
is an assembly of several bone chains.
We're going to use the second method that Universe offers.
- Select all the bones which comprise the skeleton.
- Go to Character menu and choose Bind
Skin to selected Bones.
- Select "U-man" model as object to be skinned.
- Press Cancel or ESC to
terminate the operation.
TIP: It's also possible to use the
Select features by choosing Select > By Type > Effectors. This way, you
are sure not to forget a bone in your selection.
You select the box effector as
well, but it doesn't matter because the skinning engine doesn't take them
into account. It ignores everything but bones.
Fig. 1: How bind a skin to a skeleton
NOTE: When you bind skin to
skeleton or to selected bones, several objects
can be selected to be skinned by the same skeleton. For this reason, the
red "cancel" window remains open after you have selected
an object. Be aware that until you hit cancel or ESC, every model that
you select in Project window or in World View windows will be skinned as
well.
You can add a bone, a group of bones,
or a new bone chain at any moment without re-skinning the model from scratch.
Just select the new bones and choose Bind skin to Selected Bones. These
new bones are added to the bone list which drives the skin.
It is key to center your bones within the model geometry before skinning. After having skinned your model, if you notice that the skeleton is not well fitted to the model, for example the finger bones are outside the model, don't panic, Select your model, go to Character menu, choose Detach Skin. Now you can adjust the skeleton using its own controllers and then bind the skin again.
The skin is now driven by the skeleton. Manipulating the
skeleton controllers, you can see that each vertex of the model follows
the closest bones. You will also notice that the model skins very well.
We don't see any geometry aberrations and we've got the expected results.
The skinning engine of Universe is so smart that we could almost use the
skin like this. The default values within the skinning engine are doing
a great job.
How to change the default values?
Open the Skin Editor window
- Select "U-man" model
- Go to the Character menu and choose Skin
Editor
Fig. 2: Skin Editor: default setting
This window displays the different parameters used by the skinning engine. These parameters control how the model reacts to the bones.
The Skin editor displays:
- the weight minimum influence: This is
a cutoff value that stops the skin calculation when the bone influence
falls to a low level.
- the Falloff power . A small value gives
a smooth and an elastic transformation of the mesh and a large value pulls
the skin tightly to the bones.
- the Maximum bone, Indicates the number
of bones that can influence the position of each vertex.
- the complete list of the bones on which the skin are
bound and the list of the active bones.
The falloff power has the
most visible effect on the skinning. It determines the softness or the
hardness of our model geometry.
For example, we will choose a falloff of power of 2.
This value gives an good result on some body areas like around the shoulder
and the stomach. But this "elastic effect" isn't appropriate on other
body parts.
Bodies have a soft aspect where there are the muscles, organs and fat. They have a harder aspect when the skin is close to bones like the head, the torso, the pelvis and outside the articulated joints (elbows and knees). The challenge when we set up the skinning is to mix these different and contradictory aspects on the same single mesh.
As we can See in figure 3, with a falloff of power
2, the head is slightly deformed in this pose and the folds inside the
joints have a pretty unnatural look.
Fig 3 skin with a falloff power of 2
Each vertex in the U-Man geometry is influenced by several bones at the same time. Actually, the number of bones that can influence each vertex is indicated in the Maximum bone setting in the Skin Editor. The bone influence varies according to its distance from the vertex and the Falloff setting in the Skin Editor. The vertices in the joint areas are influenced by the bones on both sides of the joint resulting in a smooth fold inside the articulation.
Aware of the unwanted behaviors shown above in Figure
3, Universe offers a powerful solution by means of the painted Strength
Map.
Strength Maps give you much more control over the skin.
Indeed, they allow the resolution of two major problems you will encounter
with the character.
First, it permits you to define a set of vertices
which will be influenced by only the bones you choose.
Second, it permits you to control the strength of influence
of one bone versus another at each point on your character.
It's a very powerful feature that allows you to achieve
very accurate and subtle skinning results.
How to apply Painted Strength Maps
or Texture Strength Maps
- Double click the U-man model to open its Group Info
window.
- Go to the Strength tab.
As shown in Figure 4 below, the strength list is empty and the two buttons that allow you to apply a Strength map to the skin are active.
- Add as Paint creates a new painted strength
map and adds it to the strength list.
- Add as Map... works using the texture
editor. When you click this button, you have to choose a bit map file.
You apply this image as a texture with the same options you can find in
the usual Texture Info window. Universe extracts the luminance information
from the image file to create a strength map. The name of
the texture is added to the strength list.
In this case, there is no pre prepared bit map file, so you're going to create a painted strength map from scratch.
- Click the Add as Paint button.
- A new window appears so you can name the painted strength
map. Enter "Head strength "as the name and click ok.
Fig 4: Creating a strength Paint file
Painting the head strength
The vertices of the head need to follow the movement of
the head bone without being affected by other bones.
But you also need a smooth transition between the head
and the neck.
- Select the "Head Strength" map from the strength
list
- Press the View button.
Notice the change in the World View windows. Pressing the View button puts these windows into Painting mode.
- The model is now uniformly green with a luminance=strength
of 100%
- A circle is now drawn around the cursor. This is how
the paint brush is shown.
- A new window which contains the paint tool parameters,
is opened.
You can change the Color (Hue Angle) of the paint. It doesn't matter which color you choose. The key factor is that the percentage of luminance of this color is the amount of strength you will apply to a vertex as you paint.
You are going to set the head to 100% strength and the
rest of the body to 0%. The quickest way to do this is to invert the strength
currently on the object using
the Invert button (sets the whole
skin to 0%) and then paint the head with the strength set to 100%.
- Click on the Invert button.
- Disable the Cull Vertex check-box. This
allows you to paint both the left and right sides of the head at the same
time. (When Cull Vertex is turned on, you paint
only the visible
vertices)
- Turn on Feathered check-box. This creates
a smooth fall off from the set strength value to 0%.
- Turn off the Process Skin while painting check-box.
This makes the painting go more quickly, but does not call on the skin
engine to update the vertex
positions
until the paint window is closed.
- Paint the head as shown in Figure 5 below. You can
resize the brush by pressing the CTRl key while you drag the mouse. Don't
hesitate to zoom in to have more
precision
NOTE : Be aware that you are painting
vertices and not a surface So, if you notice some irregularities on the
border of your painted area, it's certainly due to the layout of the vertices.
The skinning results depends on the geometry. For more details about
this, refer to the section "EXAMINING THE MODEL" in the Character
Animation Tutorial Part II.
Fig 5: Painting the strength by using the built-in paint tools
Tip : Before you paint in the World View windows, I suggest you to disable the cull back face window settings option in the views where you plan to paint. Otherwise you might miss a few vertices.
- Now close the paint window. Closing the paint tool window turns off the painting mode. The World View windows return to their normal appearance..
Once the painting is done, you have to associate bone(s) with this strength map. Refer to Figure 6 below.
- Select the head bone from the Project window.
- Select the Head Strength strength map from the
strength list.
- Press the Attach Bones button.
Now the head bone drives only the painted vertices. The
unpainted (black) vertices are no longer affected by the head bone. .
You can check that the association between the map and
bones exists in the Bone Info window. Check the
Bone Strength tab. The name of the strength map followed by the model name,
in parenthesis, is shown.
Fig 6: Attaching the head bone to the head strength paint
NOTE: A bone can be associated with
only one Painted strength map or one Texture strength map for a single
mesh. But it could be assigned to another Painted strength map or one Texture
strength map in another object. Imagine the character wore a coat with
a hood, You can also bind the head bone to the coat. The coat would have
its own strength map associated with the head bone. This would allow the
coat's hood to follow the head movement properly.
Painting the Body Strength
At the beginning of this tutorial, the effect of different values of falloff were discussed, see Fig. 2: Skin Editor: default setting. Power of 2 was chosen for this tutorial because it gives a pretty satisfactory effect to the shoulders and pelvic area. It is important to maintain this effect when painting the body strength map.
- Create the "body strength"
- Paint the map as described below.
Create a large painted area which covers the upper arms to the upper legs, see Figure 7 below. In this way, The original shape of the shoulders and pelvis will be maintained. At the same time, this paint map prevents the head, lower legs and forearms vertices from the being influenced by the body bones.
- Select the bones shown in Fig. 7 and attach them to
the Body Strength paint map using the Attach Bones button.
Fig 7: Painting the body strength.
If we manipulate our character at this moment, we could
notice that the head is no more deformed by the bones other than
the "head bone".
We notice also that the vertex of the forearm are less
deformed when you bend the arm. It's because we reduced the upper
arm bones influence on the forearms vertices.
The lower legs are also less deformed when legs
are bent. Indeed, the upper leg bones have now only 25% of their influence
on the lower leg vertices..
Painting the arms strength and the legs strength
Time to create a painted strength map for the forearms. The goal is to limit the influence of the forearm bones and to give a good shape to the upper arms.
- Create a "forearms strength" paint map
- Paint the forearm vertices at 100% and the upper arm
at about 25%. Be aware that the border between the two area is where the
fold appear when the arm is
bent. Make
sure you paint both the left and right arms as shown in Figure 8 below.
- To fine tune the paint you can put the arm in a slightly
bent position and paint while the Process skin while painting
check-box is turned on. In this case you can see in real time the skin
reacting to the changing strength values.
- Select all the forearm bones and attach them to the
Forearms Strength map using the Attach Bones button.
Fig 8: Forearms and lower legs strength
Just as you created the forearm strength maps now create
the lower leg strength paint map.
The goal here is the same as for the forearms. Limit
the lower leg bones influence on the lower leg vertices and get a nice
fold behind the knee when the legs are bent.
- Create a "Lowerlegs Strength" painted strength map.
- Paint the lowerleg vertices at 100% and the upper leg
at about 25%. Make sure you paint both the left and right legs as shown
in Figure 8 above.
- Select all the leg bones and attach them to the Lowerlegs
Strength map using the Attach Bones button.
Fig 9: Result of the skinning Before and after to have applied the Strength Paint.
NOTE The effect of the strength
maps are more visible with a low values of falloff power. This tutorial
used a falloff of power 2. If the falloff power is increased,
you may loose some subtle effects from the strength maps.
This tutorial has provided an overview of skinning and
Painted Strength Maps in Electric Image Universe 4.0. Your specific model
may have unique requirements such that different strength maps than those
presented here are needed.
Try to keep your set-up simple but reliable. This tutorial used only four strength maps. Even with so few maps the character has a much more satisfactory look when it is animated.
Don't forget that this is just the set-up phase. The bigger
part of the work is coming next; animating your character.
Comparing what you have accomplished here with a musician,
I would say that you've just finished building your "instrument"...
End of Part III
FrÈdÈric Merlos
www.multimania.com/fmanimation