A student of mine, making a light saber animation, asks how can he gain more control over an object that is constrained to a parent that is key-framed, and would like to edit it further. He cannot figure out how to override the constraint. I didn't want to talk about constraint blending, as there are complications with that and are difficult to explain. Instead, I wrote a diagram on the white board describing what all rigs should be, at a fundamental level. The theory is simple, all manual animation, meaning the transforms are keyable by the animator, are the last child in a hierarchy of automated tasks, such as constraints. It looks like this:
Parent, or root of the rig 1st Child - Automated task (ie., constraint to..., exposed as a slider) 2nd Child - Automated task (ie., sine wave script..., exposed as a slider) Nth Child - Automated task (N..., exposed as a slider) Last Child - Manual override (exposed to animator as a slider and/or view port control) here's a pseudo-rig example
The last child will be exposed and animatable within parent space. All the automated tasks will move the visible child, and the animator will have the freedom to move it where ever it needs to be. This can get very complex very quickly, and requires a fair amount of scripting/programming to automate the creation of the objects, the constraints, sliders, etc., and any interfacing related. You can see further examples of this in my article on Adaptive Rigging or in my demo reel archive. Also, see the great work of Bernard Haux or Eric Thivierge.