Meta:BSoD/2006/Proposals/Introduction to Rigging
The goal of my documentation would be to take a person who has basically no understanding of armatures at all, and teach him everything he needs to know about them to build professional quality rigs that behave exactly as they are expected to. Animation is outside the scope of my documentation. To lump animation and character setup together, is to skip a tremendous amount of information that would greatly improve the quality of the reader's character setups. Character animation deserves it's own BSoD grant alone.
After I have covered all of the basics and all the armature features, I'd like to take the user through a couple different rigging scenarios: Spines, and Legs. The point of these scenarios is to get the user thinking about the many, many ways with which constraint systems can be used to create controls that will greatly simplify the animation process.
- Legs:
Human legs are pretty straight forward, it's the foot rig that a lot of people put a good amount of thought into. I use the same foot rig as demonstrated by Bassam in last year's blender conference, so I would describe that design. Controlling the direction of the knee is not too difficult, if one knows how to do it properly. Things can get more interesting when you change the type of leg though. After having the user build a rig for a human leg, I would have him build a rig for a two-jointed, chicken-type leg.
- Spines:
Spines will be a more lengthy topic. There are four designs I'd like to present to the reader, starting with the most simplistic, and ending with the most complicated.
- Using a single B-Bone. Very simple, but b-bones elongate with increasing bend angle.
- Using a chain of bones that copy the local rotation of the root bone, causing the rotation to propagate down the chain.
- Using IK constraints on each bone of the spine to targets along the length of a single bone that is rotated to induce spinal articulations(this one is used in the robot shown in the pieces of work I've submitted, only one bone is manipulated to create all of his various torso positions, unless you consider his hips--a second bone--which can be rotated or translated as well and the spine will still bend naturally).
- Using IK constraints on each bone of the spine, targeted to empties that are parented to the vertices of a mesh that is deformed on a curve, causing the spine to follow the curve. This is the design that offers the animator the most options, since essentially any pattern of movement can be generated on the curve and the spine will follow.
Rotations--or twisting, can also be done on the bones of the spine while it continues to follow the curve.
Summary
I would start with an introduction to armatures by having the reader create one and I would make comparisons between it and other similar objects, in that they both have an object center, an object mode and an edit mode, and I would of course introduce the pose mode as the extra mode that is needed to facilitate the animation process. Before explaining how any of these modes work, I would continue the armature introduction, with and explanation of why armatures are needed: organic characters require a single mesh character model and thus, a sub-mesh hierarchy is needed in order to give the character movement. I'll try to keep this all in simple terms though.
From there I would explain how to work with edit mode and I would have the reader build hierarchies and then rotate the hierarchies in pose mode.
Here I would introduce the various draw modes and all of the other fun tools that are found in that same panel.
From there I would transition to the methods with which blender attaches meshes to armatures. I would start by explaining the two ways to connect a mesh to an armature; modifier and parented relationship. I will direct the user to use modifiers, and I'll explain that the parented relationship is an old approach that lacks the new features of modifiers. I would then cover weight maps, then envelopes, and then their areas of overlap and use together.
To allow the user to move directly into character weight assignment, I would supply a ginger bread man scene and have the reader build the armature and weight the mesh to it.
I compile blender from CVS, so my documentation will be extremely current.
Here is some of my work:
Spider-Man: http://blenderartists.org/forum/showthread.php?t=56833&highlight=spider-man http://www.exenex.com/wavez/ Spider-Man is incomplete due to frustrations that I have with lattice objects when being used in the way that I am trying to do.
Robot: www.exenex.com/wavez/robot1.jpg www.exenex.com/wavez/robot2.jpg www.exenex.com/wavez/robot3.jpg