Blender 3D: Noob to Pro/Bones
|Applicable Blender version: 2.49.|
Bones are used for shifting models and making them posable. If you are not ready for this yet and wish to continue simply modeling, please skip this tutorial to the next section.
Bones are a modeling tool that are especially important for animating characters. Bones allow you to move characters' limbs in a way that is much simpler than trying to re-arrange the vertices every time.
It works by associating a bone with particular vertices, causing them to move along with the bone when the position is changed in pose mode. Using bones is fairly simple once you get the hang of it, but, like many things in Blender, can be a little daunting at first sight.
Bones don't do much on their own; in fact, they turn invisible at render time. For this following module we'll use the previously made character from module Modeling a Simple Person. Note that while we will be using bones on a simple person, the process can be used with any creature or body type you imagine!
Laying down bones
Note: This just shows the basics of adding bones to an object. Go to the advanced animation page for a more comprehensive guide on this.
First of all, we'll need a model to put some bones on! For this tutorial, we're going to use a humanoid model. I'm using a quick model that I made based on the Blender 3D: Noob to Pro/Modeling a Simple Person first tutorial. It's rather blocky, but this isn't a detailed tutorial. However, you can find a model pre-made just for you here.
Okay, first of all, here's our setup, with Block Dude standing on the plane.
Noob note: You will be placing armatures ("bones") inside your humanoid, so you must work in "wireframe mode," not "solid mode." Otherwise, you will not be able to see the armatures when you place them. To toggle between "solid" and "wireframe," press.
Note: An alternative to working in "wireframe mode" is to turn "X-Ray" on for the armature. To do this, select the armature. In the properties panel under object data there is a display menu. Click "X-Ray" in the second field of buttons. This will allow the armature to show through other objects.
Add a bone
Now, let's put some bones on Block Dude! In Object Mode go to→ Add → Armature. (Blender 2.5x note: + → Armature → Single Bone)
What we are looking at is an armature. This is a single bone. Now, we need to put the bone in Block Dude! Move and rotate the bone so that it's in the middle of Block Dude's chest.
If your bone does not have the correct length, then change the size of the bone by moving one of the ends of the bone: switch to Edit Mode, select one of the ends of the bone, then move it using.
Extrude a second Bone
To create a second bone starting from one of the ends of the first bone, make sure you are in Edit Mode, select the end of the first bone, then press. The second bone appears, with its start point on the selected end of the first bone. Move the mouse to position the end point, then press , , or . Now, extrude ( ) and scale the bone as needed to put the bones in his body! Make sure that you are in Edit mode, and click the pink dots at the end of the bone to do things like extrusion. These operate much the same way as vertices, you can extrude, rotate, move, and even subdivide. Your finished result should look something like this:
Name the bones
Now, just to make things easier, we're going to name the bones. For example, my bones are named RT_Forearm, Left_Forearm, RT_Upper_Arm, etc. Select the bone and pressto display the Editing panel. In the "Armature Bones" sub-panel click the top left box to edit the name, indicated with a red arrow in the screenshot below. (Noob note: when you are naming the bones remember that if you are looking at the person from the front, your left is the person's right. To make the naming easier switch to viewing the person from behind using + .)
This is most easily done in the "outliner" (top right by default) by selecting each bone and renaming it under the "Bone" button in the Buttons-Panel (the button looks like a dog bone). You can select the bone and see it highlighted in the 3D bone, then+ to rename.
Parent the bones
Now, we need to parent the bones to the mesh. Go back into Object Mode and select Block Dude. Now, select the Armature as well, and press+ , a menu will pop up, select Armature (Armature Deform in 2.6x), then Create From Bone Heat (2.46+) (Create From Closest Bones before blender 2.46) (With Automatic Weights 2.5x and 2.6x).
Noob Note: the selection order is important in defining which object is the parent, so you cannot select both objects at the same time. You must select the armature last to make it the parent.
In depth info on selected bone topics
Add/remove mesh from bone control
Create From Bone Heat creates mesh areas within the parented object that are associated with armature bones. This is done automatically, according to the bones' position and size. Alternatively, choose Name Groups instead of Create From Bone Heat if you don't want Blender to assign groups automatically, and do it manually.
To manually change the mesh areas that the bones control, go to object mode,on the MESH you want to add/remove (if it's inside the same object, then select the areas of the mesh you want to work with), go to Edit Mode, and make sure you're looking at the edit mode buttons in the bottom button window.
You should now see on the left a link and materials panel with a pair of Assign and Remove buttons( you may need to scroll with the middle wheel while hovering over the bottom button windows to make it appear, if it's off to the left of what you can see ). In Blender 2.59+ activate in the properties window the 'Object Data' and you will find the relevant data in the subwindow 'Vertex Groups'.
Now pick the bone group from the dropdown above the assign/remove buttons, and then hit assign, or remove. Usually vertices will be in one group, but can be assigned to multiple groups.
Mesh deforms like it's far away from the bones
If the mesh is properly assigned to the bones they will move regardless of whether the bones are inside the cylinder or not (HOW they deform WILL be affected however). The most common mistake in this step is creating and (more importantly) parenting the cylinder to the armature while it is outside the cylinder, which causes Blender not to assign vertices to any bones at all. You can check this by editing the cylinder, selecting a vertex group in the Links and Materials tab, and pressing select. This will highlight the vertices associated with the bone. If none are selected, it means none were assigned in the first place - in which case you need to assign them manually as explained above.
If there is no effect, in Edit or Pose mode select that bone (or bones) and choose Envelope display mode (→ Armature → Envelope), then press + and increase its area of influence to cover all faces that should be influenced by the bone.
Moving the Bones
Go into object mode, RMB on the armature to select it, then enter Pose Mode (+ ) (you need to select the armature for this option to appear!). Try moving a bone around by to select it, and then hitting , or to move it.
If you've done everything correctly, your mesh should move when you move the bones! If this doesn't happen, scale the bones up so that they fit better in the mesh, and scale up the bones until they do what you want (read comment in the parenting section above on adjusting the bones envelopes if you do not get an effect while moving/rotating the bones). With the bones now, you can put Block Dude into a lot of different positions without moving individual vertices.
To the right is an example of how you can move Block Dude with the bones.
To move individual bones, you have to go into pose mode. You will only see pose mode listed on the object/edit mode drop down when you haveon the bones from object mode. Also while in pose mode if after a click you can't move bones with a , or , check the "Move Object Centers Only" button (just to the right of the Rotation/Scaling Pivot button).
Noob Note: If you've been adding bones to your simple person from the previous lessons, and have noticed the hat seems to stretch when you move the arms in pose mode, you will need to remove the hat from the arm mesh groups created in the prior bone heat step. To fix it, you need to go to object mode, on the hat, go to edit mode, locate the vertex group assign/remove buttons as described in the bones in depth step, Now pick the left arm, and right arm groups in the dropdown above the buttons, and then hit remove.