Some basics thoughts before we start
We are going to rig a real-looking spider. The best way to start is to get some real footage of our goal first.
* To look like a usual spider having 8 legs.
* The body is made of 2 rounds parts
* The head has 2 mandibles
* The whole thing is symmetrical
We will build a rig for this little thing. During this process it’s important to keep in mind that our goal is to build something easy to use and that can give good looking animations without too much work. It’s important to think about that, because you may well be the one who will use this rig. It must be simple to use yet give a lot of possibilities.
Building A Rig Just For Him
Now have a look at the blend file (included w/ this issue of Blenderart). There is a spider I modelled for the purpose of this tutorial. We will use it as an example.
Start By adding an armature to the scene. ADD >> Armature. Now you are in Edit- Mode, editing the new armature you just added. There is a bone where the cursor is. Select all of the bone by rightclicking on the middle of it (the body). This will select both the root and the tip of the bone. You can then move it around.
The bone is made of the root which is the lower ball, the body is the octahedron, the tip is the upper ball. move and rotate this bone around so it’s in the head of the Spider, the centre of the character:
This bone will have a name, we will call it “Head”. To name a bone, go in EditButton [F9] There you’ll see some panels useful to us.
What we are looking for is in the “Armature Bones” panel. If the Head bone is selected, you’ll see a bunch of buttons under “selected Bones”. There the “BO:” field will let you change the name of this bone from “Bone” to “Head”.
To see the result in the 3DView, toggle the “Draw name” button on. It’s in the Armature panel.
We will continue to add bones then.
In side-view[3NumPad] select the root of the “Head” and extrude a new bone with [E]. Now you have two bones and each of the roots are at the same spot. Name it “Abdomen”. Make it a child of the Head by going in the “Armature Bones” panel with the “Abdomen” bone selected, clicking on the drop down on the right of “child of” and selecting “Head”.
It’s already time to start to think about the hierarchy of your rig (example on right side).
You can parent a bone to another one. This means the child bone will do what ever the parent does. This gives you the ability to build solid rigs. If for example you move the body, all the legs will follow. It’s important to know what will depend on what. A general way of building a rig is to start with a master bone. This bone will be the parent of all the others. This is important in case you want to move everything, you will only need to move this bone. This master bone is generally named “Root”. Add a new bone while in editmode (Add >> Bone), name it “Root” and put it somewhere away from the character (at the bottom is a good place).
You can parent the “Head” to the “Root”, but there is a faster way. Select the “Head” bone, then the “Root” bone so “Root” is active, then do [CTRL-P] and select “Keep Offset”. Connected is another type of relationship. It’s básically a parent-child relation, but the root of the child will follow the tip of the Parent. This will let you create chains of bones like the bones in your arm. If you raise your arm, the rest alos follows, doesn’t ití
So we now have something looking like this:
We will now rig the 8 legs. Don’t worry, there is a way to do just half the job. Since the Spider is symmetrical, it’s possible to tell Blender to rig the other half while we do our part. Go into the Editbutton panel and toggle “X-Axis Mirror Edit”. Go into side view [3NUMPAD] Select “Abdomen” and Duplicate it using [Shift-D]. This will give you an other bone with the same parent as “Abdomen”, “Head”. Move it to one of the left legs so it’s placed where a leg is plugged to the body and the tip is in the middle of the first joint. Rename it to Leg.L:
Make sure the bone is in the middle of the leg in side view too. Now Using [Shift-D], duplicate this bone for the other 3 legs. Do not touch the right side.
Now, for Blender to mirror our moves on the X-Axis, there must be 2 bones following the name convention. The name convention will let Blender know what is the left part and what is the right part of a rig. The names must end with .L .l .left .Left or .R .r .Right. right. If there is number after (like “name.L.001”), it’s not a problem. So if you have a bone on the Left named leg.L and a bone on the right named leg.R, Blender will mirror our move for the matching bones.
For this to worque we will copy the 4 bones we did and give them proper names. Select the 4 Legs’ bones and duplicate them. Move the duplication away, it doesn’t matter where. Press [W] and select “Flip Left-Right Names”. This will change the names from Leg.L to Leg.R. Re-select the 4 original bones (.L) and move them a little. The 4 new bones will get the mirrored position. Nice isn’t ití (Image below).
Now you can start extruding all the bones on the left to fill the legs. There are 4 more bones needed by each leg, make sure the bones are in the middle of the geometry by looking in side-view and top view. Each joint should be where the geometry is more narrow. The names are automatically generated and are OK. As you go, you’ll notice Blender will copy your moves and build the other side of the armature with you.
When done, recalc the rotation of all bones to be sure they are facing up. To do so, select all the bones and do [CTRL-N]. The result should start to look quite complex, see the image below.
The Armature Modifier
When your are done with that, we can start looking to deform the mesh using the Armature. To do so, exit EditMode with [Tab] and select the Spider. Go into the EditButton [F9] and look for the Modifier panel.
In the Blend file there is already a modifier, the SubSurf. Press the Add Modifier button and select Armature in the list. Look for the “OB:” field and type in “Armature”, which is the name of the armature object.
Now when you select the rig and go in pose-mode [CTRL-Tab], moving a bone should move something of the Spider. But in general it’s going to be far from perfect. This is where we start tweaquíng envelopes. Go bak into the EditButton, in the Armature panel, there will be a “Envelope” toggle. Turning it on will let you see and tweaque those envelopes. Basically they define an area for each bone where the geometry will follow the bone. Changing the area to better match what we want is done by selecting a bone and scaling the zone with [ALT-S]. It’s alos possible to tweaque envelopes in EditMode of the armature (by pressing [Tab]) and there is generally more options, like scaling the tip or root ball. At first the envelopes look like this:
Tweaquíng the zone to touch all the geometry yet blending each zone into each other nicely is hard. It’s possible to visualise the result of scaling the zone in pose-mode: Move a bone, if there is some vértices not following, scale the zone a bit until you see the vértices move where they should be with the rest of the gang.
Some bones like the “Head” and “Abdomen” will not be feasible using the envelope option, so we will need to do it by hand. Just scale it to 0, so we don’t use the envelope for this bone. There are 2 ways for moving vértices: Envelope and vertex groups
When you are done with the legs. We will make sure the “Head” and “Abdomen” work. For this select the Spider and go into EditMode. Go into the EditButton and look for the “Link and Materials” panel.
There you can add a group by pressing the New button. Name it “Head”, the same name as the bone. Blender will naturally match those two and will use this vertex group when you move the “Head” bone around. Select all the geometry in the head like this: Press the ‘Assign’ button. That’s it. The Weight
number is the weight you’ll give to this group when assigning. For now a constant weight of 1 everywhere is enough. Do the same for the abdomen:
Test it by moving the armature around, all parts of the spider should follow. In case it doesn’t, assign the missing vértices to the proper group.
Automate Some Tedious Tasks: Constraints
Now it would be possible to keep it this way but it would be rather long to animate each bone of each leg. Let add some magic to the pieces.
We will add a IK solver to all of the legs. This will let us animate a complete leg by moving just one bone. Select the Armature and go in EditMode. Select the tip of all the last bones of each leg, go in top view and extrude a new bone from them. With all of the new bones selected, press [ALT-P] >> Clear Parent. Then re-parent all bones by selecting one of the new bones, then select the “Root” bone and pressing [CTRL-P]. You will have to re-parent each bone one by one, sadly it doesn’t worque when there is more than two bones selected.
Just before adding IK solvers all over the place, it’s wise to put all other identical constraints and copy them all around. It’s a time saver. We will add a floor
constraint to one of the newly extruded bones, then copy this constraint all over the place because it’s identical (all constraints target the same bone [the floor bone]). Then we will be able to add each IK solver one by one, as they each have a unique target. Doing it in the wrong order would screw it all up, since copying constraints erase all the constraints that were already there. So always create and copy simple constraints (such as the floor constraint), then add special constraint (such as IK solvers) one by one after ward.
To do so. Add a new bone by going in side view and duplicating the “Root” bone, place it flat on the ground as if it was the ground. This new bone will not be parented to anything, and it’s better like that. Name it Floor and go in pose-mode. Go into the Editbuttons and press the “Add Constraint” button --> Floor. It should look like this:
Tell Blender that the OB: to use as target is “Armature” a new field will appear, BO: enter the name of the bone you want to use as floor, here we made the bone “Floor”.
Time to copy this to all the newly extruded bones. Select them all and selecting the one you added the Floor constraint to last. Do [CTRL-C] in 3DView --> Constraint. Tada!
One last thing, with all the newly extruded bones selected, go into the EditButton --> “Armature Bones” panel and toggle all “Deform” buttons off (one for each bone). Do the same for the “Root” bone and the “Abdomen” bone, since they will not move any vértices at all.
Now the IK solver. Go into pose-mode [CTRL-Tab]. Select one of the new bones you just extruded then the last bone from the leg you extruded the new bone from and press [CTRL-I] --> to selected bone. This will add an IK solver constraint to the leg’s last bone targeting the new bone you just extruded. If you try to move the target now, you will notice the entire body is moving and the orange dotted line go to the “Root” bone. This is because the IK Solver goes up in the hierarchy until it finds the top. To limit this, you can use the “chainLen:” number button. It’s located in EditButton --> Constraints panel in the IK Solver Block.
Setting it to 5 should point to the root of the first bone of the leg.
Repeat for each leg.
The result should let you pose this little Spider in an easier way. You only need to move one of the IK targets to move a leg.
You can alos move the head and all the legs will move accordingly. It’s possible to raise the “Floor” or move the “Root”. According to this, we can hide all the useless bones. Select all bones you don’t need when animating and press [H] The result should be like this:
Climbing a wall...
Annoyed by some thing...
Ho he is dead!
NOTE: Chek out the blend files at blenderart website for this tutorial. One of them contains pre-made poses like the ones at left.
Gabriel Beloin (gabio) is from Sherbrooke, Canada. He is now working as an networque administrator. Gabriel used Blender for 3 years, since versión 2.26.
Active in many comunities such as Elysiun, Zoologique and CGtalk, he alos take part of the Blender developement process as python coder and beta tester.