Part 2: Assigning Vertices to Bones
The next step in setting a model up for animation is assigning the
vertices of the model to the bones (you are actually assigning vertices
to joints but the word bones is used). This process is sometimes complicated,
the level of complexity depending on how densely populated your model
is with vertices and bones.
The reason you need to assign vertices to bones is so that MilkShape
3D (and any other application you may export it to) knows which parts
of the model move in relation to the joints they are assigned to.
If you don't assign bones then animate your model, only the skeleton
will move, the model won't.
It is best to think about how you will assign vertices to bones when
modelling so you know where to place vertices to give the best mesh
deformation. The model I made contains logically arranged vertices
that originate around where I thought I would be placing the joints.
It is important to
familiarise yourself with the process of assigning vertices
to joints the steps are:
- Select the desired joint in
the Joints tab of the toolbox (its best to do it this way rather
than select in a viewport).
- Use the Select tool with the
Vertex modifier to select the vertices you want to assign to the
joint.
- Press the 'Assign' button on
the Joints tab of the Toolbox.
To confirm the assignation of the vertices to the joint de-select
the vertices, click the joint again then click 'SelAssigned'. This
will select the vertices assigned to the selected joint. Now to assign
the vertices.
1. Make sure you are not in animation mode.
2. Select the 'cranium' joint from the Joints tab of the Toolbox.
3. Use the Select tool with the vertex modifier and drag a box over
the vertices that make up the head to select the joints shown below.

The white box shows my region selection with tool Select Vertices
(Left-Click Drag).
4. When you have selected the vertices the joint will turn to the
default colour again (blue in this case) indicating that it is not
selected but don't worry the name of the joint in the Joints tab
of the Toolbox is still highlighted so all you have to do is press
'Assign'. Now deselect the vertices (just click in the empty workspace
in the viewport) and click 'SelAssigned', the vertices you just
assigned will be selected again confirming that the 'Assign' action
worked.
I won't bother going through the whole process of assigning every
vertex in the model to a bone but I will highlight some scenarios
such as limb movement...
When I first started modelling I used to assign the vertices that
formed the joint in the limb to the bone, I later found out after
rotating joints around in animation mode that the way I had assigned
vertices was totally wrong. You see, the vertices that are assigned
to that joint are the ones that will move when that joint is moved.
I left out the vertices in the middle of limbs because they weren't
vertices that formed a joint, therefore I thought that they would
move because the rest of the vertices moved, if you see what I mean
- I was wrong. The image below shows an example of the scenario I'm
talking about, the joints that I assigned to start with and the ones
I should have assigned...

You might think that there is no problem with this but when we come
to animating the right knee joint watch what happens...

The view on the left shows that the unassigned vertices stayed in
the same position because they were not assigned to the joint, this
creates the abnormality you see circled in red. The view on the right
shows the correct way in which the vertices were assigned therefore
making the vertices rotate with the joint. Keep this in mind when
you are assigning the rest of the vertices to bones throughout the
model.
|