Originally published at: http://blog.gamedev.tv/rigging-quickly-in-blender/
Rigging Quickly and Precisely With Naming And The Armature Modifier
Getting your naming right can save you a lot of stress and time, and with rigging it is no different.
In this quick tip we’ll take a look at how you can be really lazy and use a technique called automatic weighting.
This is usually not ideal though as it lacks control for anything but the simplate models, so we will take a closer look at how we can use the armature modifier to our advantage.
Automatic WeightOK so I say it is lazy, but it might actually save you a load of time and be good enough during prototyping, just don’t expect it to work well with more complex models!
You will require two things: A model and an armature.
- Save your work so you can start over if this doesn’t work out
- Make sure you are in Object mode
- Select all the mesh objects you want controlled by you armature
- Select the armature last, making it the active object. -notice how all the mesh has a darker orange outline, whilst the armature has a lighter orange. That indicates it is the active mesh object.
- Either use the Object menu, or CTRL + P
- Select “With Automatic Weights”
- Voila all done.
Oh well here is a great example of it completely failing to weight the bones how I would weight them. So different parts of the model are distorting like the head , when the arm moves which is no good
Now to be fair to Blender if I have setup this block character in a more neutral pose it would have probably done better but I have rarely seen an automatic weighing that didn’t need some rescue.
Using the Armature Modifier and Vertex GroupsThis is actually what automatic weights has done, however this time we can get to a much better starting position ourselves by assigning everything explicitly.
It doesn’t matter if your character is made up from separate mesh objects or one mesh object, all that matters is your naming.
In short your Bone name and Vertex group must be the same and everything will work.
If you need to clear previous vertex groups from a mesh object you can quickly do that with a little drop down
With the object selected, goto the Object Data properties
Under Vertex Groups click the dropdown
Select Delete All Groups, or Delete All Unlocked Groups.
-Caution if you are using vertex grouping for something else like a particle system. If you are, make sure that the vertex group is locked and us the Delete All Unlocked Groups option
You might then be left with an armature that is in a particular pose that you which to remove.
Whilst in Pose mode, select all the bones, with the A key, and then Using ALT + R, ALT + G or ALT + S to clear any of the bones rotation, translation or scale.
Now to start the naming, name things logically and short as possible. This help communicate that bones purpose and minimises mistakes.
Unless you are working in a studio or with otherwise you will gravitate towards your own naming system. But whatever you do, be consistent about it!
Good Naming : head, body, arm.l, arm.r, leg.l, leg.r
Bad Naming : Head, body, Left Arm, arm.r, Left_Leg, r.leg
In the above example, the good naming is good, because:
- Consistent with its use of case
- Consistent with the use of which side of the model it refers to
- Puts the object first, then the position
- Inconsistent case use
- Using position first
- Inconsistent position naming
I have made sure the Object Data (armature properties) have been changed slightly and this allows me to:
Stick: Allows less of the model to be hidden that what is done by the octahed display
Names: Visually check my re-naming is working and can see all the bone names at once.
X-Ray: Otherwise the bones would be hidden by the mesh.
You can go about (re)naming your bones but selecting the bone and then either in the 3D editor properties (N Key) under the Item menu or over in the Bone properties.
Ideally you would have done this as you created the armature, but often that is forgotten.
Next comes the vertex groups themselves. As mentioned whether or not your character is one mesh object or many, thing thing that matters is the name of that vertex group.
- Select your mesh object and go into Edit mode.
- Select all of the vertices you want to be controlled by a bone. In this case I want the whole head, so selected all.
- Go to the Object data tab of the pro perties window.
- Click the “+” on vertex groups
- With the vertices selects in the 3D view, click the Assign button.
- Double click the “group name” and name it identically to the bone’s name.
Finally you might want to deselect everything (A Key) and the click the Select button to make sure what you thought was assigned is what you intended.
Note: If you join two mesh objects together the vertex groups will remain consistent, this is because you have assigned a vertex to a group regardless of which object that vertex is part of. It is often better to have one mesh object, to see all the vertex groups together and only have to deal with one armature modifier, as modifiers are per object.
Continue this process until all of your vertex groups are created, when they are, you would have something like this if all your rigged parts were part of one mesh object.
There is one final step, the armature modifier.
Assuming you have just one mesh object, select it and:
- Go to the Object modifiers properties
- Add modifier
- Under the deform column, select Armature
Under the Object select your armature and ensure Vertex Groups is checked
Now get your character to strike a pose!
So this is just the tip of the iceberg when it comes to developing your skills. If you want to learn much more about character creation why not come and join me over on Udemy where we go through all these stages we have learnt today, and many more in structured 20 hour+ course.