From BlenderWiki
The Bones-on-Curve Spine
This is one of the most flexible spine rig designs. You could use this rig to animate a snake, a chinese dragon, a belly dancer, any type of tentacle, etc, etc, etc.
There are two kinds of behavior that we can hope for when using curves in our rigs:
- The rig stretches and squashes to the full length of the curve.
- The rig always stays the same length, no matter how long or short the curve may become.
We will build a rig that does the latter. To create a rig more like the former, you simply enable the CurveStretch option for the curve object, and location constrain the bones to the appropriate targets.
Let's Build It
The easy way to build this rig is to use a straight curve and a straight line of bones. If we did that, your character--whatever that may be--would need to have a straight spine. Chances are it doesn't though, so we'll build this rig to fit a character mesh that is already curved.
This rig requires the use of objects outside the armature to make it work. This first subsection is for the curve, mesh, and empties we need to set up before we can draw the bones of the armature.
Meshes and Curves and Empties Oh My!
Add a mesh object. You can make it a plane if you want, but it really doesn't matter what mesh primitive you start with. Name it SpineMesh and clear its rotation. Delete all but one of the verts and snap that remaining vert to the world origin. Extrude out 8 units on the Y axis, then subdivide the edge three times.
Now we need a curve. It would be best and easiest to start with a straight curve and build the spine straight, but you can build it to fit a curvy character mesh. For this demo, we'll use a reference image. Add a NURBS Curve (Add->Curve->NURBS Curve), clear its rotation, and name it SpineCurve. In the Curve and Surface panel (F9), activate the 3D button, and in the Curve Tools panel, press the Endpoint U button. Now place your points--and add more as needed--to make your curve fit the spine shape you have. Make sure you don't use too many points.
Give each point of the curve a hook (Ctrl H). You might want to change the display mode of the new hook empties to "Plain Axes" (F9).
Add an empty. As with the hooks we added to the curve, you might want to change the display mode to "Plain Axes". You'll want this one to be just big enough that it can still be seen when covered by a bone, so scale it down a bit. You can resize these later if the bones need to be bigger than you figured. Duplicate and place one empty for each vert of the SpineMesh object, matching the vert locations exactly.
In edit mode, make each vert of SpineMesh a vertex parent of the corresponding empty (select the vert, then select the empty with Ctrl RMB
, then press Ctrl P to make vertex parent).
Select the SpineMesh object and give it a curve deform modifier, using the SpineCurve object as the deformer. The mesh object will have its base at one end of the curve, and you want that end to be the base of the spine, so you might have to switch the direction of the curve (edit mode, W). After that you'll probably need to scale the mesh bigger or smaller until it is the appropriate length. Notice in the image that the last empty is near the base of the skull.
Enter the Skeleton
Now we can add the armature object (remember to clear its rotation first). Extrude and snap the points of the bones to the empties on the curve.
IK constrain each bone to the empty at its tip. You can do this quickly by selecting the empty first and then Shift RMB
selecting the bone, and then pressing Ctrl I. Make sure you change the ChainLen value to 1 after each IK assignment. Also, give the first bone of the chain a location constraint targeting the first of the larger empty hook objects. The first of the smaller empties serves no purpose, so you can delete it.
Optionally, you can place floating bones at each hook object, and then make each hook a child of the corresponding floating bone. This makes it possible to include spine animations in armature actions and to perform mirrored or copied posing, but it also causes a cycle in Blender's dependancy graph which results in slightly delayed responce time from the armature spine. When clearing the location of these floating bones, you must clear twice.
Locking Things Up
Final steps: Lock the appropriate axes of the bones, and organize your layers.
This Rig in Review
Now lets consider the benefits and drawbacks of this design.
The Pros
- Can be used for practically any type of movement; bendy, wavy, twisty, etc.
- Makes nice flowing curvy spines easy to animate.
- The design can be expanded to twist anyway you like.
The Cons
- The design requires the use of outside objects, and can have refresh issues.
- Because the curve is not straight between bone joints, the mesh is made shorter than the chain as the curve becomes more and more curvy. This can be seen in rigs with many bones. This limits the maximum number of spine bones the rig can have.
--Wavez 01:26, 17 July 2006 (CEST)
|














![[]](/skins/blender/open.png)
