There are about 360 bones in the rig currently. The majority of these were retained from the original cessen Sintel rig that I adapted – I added about 100 bones and changed the display shape of others. The current design has a layer of principal controllers, a couple of layers of corrective bones that are constrained but can be adjusted manually, and a couple layers of fully-automated helper bones. The slightly modified Sintel rig portion takes care of the majority of the large body motions and my enhancements deal primarily with correctives and/or muscle emulations.
This shows some progress I’m making on the muscle-sim enhancement. I’ve only dealt with the shoulder, upper arm, torso & back so far, but the shoulders are great for testing because of the extreme flex range. The far left is just the mesh showing the shoulder in a typically challenging pose. Middle shows the two layers of principal and secondary controls. On the right I’ve also revealed the major deforming bones that the controls activate.
This is the Muscle layer in progress. I’m building the muscles from the existing body mesh to take advantage of the already-established vertex weighting, that really reduces weight painting time. This layer is actuated pretty much the same as the skin layer was (and still is) – it’s main purpose is to provide a set of sculpted volumes for the skin to “adhere” to via Shrinkwrap. Later on I’ll try adding jiggle physics with softbody or some similar approach.
As an example of how my constraints systems work, the bicep of the raised arm is contracted along its length and slightly expanded in girth according to how far the elbow joint is flexed. Transform constraints drive a Bicep helper bone (you can see it in the right-hand image of the trio) that deforms the muscle layer Bicep volume and the skin layer as well. Shrinkwrap keeps the skin following the muscle volume meshes very well. That took some trials to set up the proper modifier stack arrangement.
The body rig does not include facial animation – I removed all of cessen’s facial bones and replaced them with my Othello armature, which I like a great deal more and is designed to work with my model topology. This makes using the model a multi-armature situation but that works very well as there are no areas of influence overlap between the two armatures. I also have a small discrete armature for eye controls.
While animating I rarely have more than one layer displayed at a time, so the rig graphics don’t bog down the UI. I use a low-poly proxy mesh to block the motions and establish preliminary timing, then move to the beauty model with Subsurf & other UI-dragging modifiers disabled to polish. For the finest tuning and special situations like finger and hand contacts or final facial expressions, I use the full rez model with subsurf enabled to insure accuracy – that is really slow, but it isn’t the rig, it’s the model graphics.
I sometimes find a need to adjust vertex weighting during the animation process but try to avoid it and have it all well-tested before starting. All my correctives are done with helper bones in the rig. The new muscle-sim layer I’m adding is helping a lot in that regard, in that the underlying shapes of the muscles is better-preserved through lots of deformations without finicky correctives. I still use the helper bones, both automated and manual, so the process is pretty much the same, but the result is more accurate in terms of the look of the rendered skin mesh. The Shrinkwrap modifier I’m using does the “fine tuning” on the deformations.