I’ve been pushing and prodding the IK system a bit to figure out its logic. I have now hit what might be the FINAL snag before it bends to my will:yes:
The file contains a basic IK armature, with three bones rigged for bending in a single joint, Y and Z locked to get full control over the third axis of the bones, and a single joint handle (an Empty called TARGET, which the root bone has a TrackTo constraint towards) to decide which way the knee/elbow joint points. It is, effectively, a fully controllable joint, ready for inserting into my character as knee or elbow.
But it retains one rather odd problem. If you try moving the joint handle around in order to point the joint in different directions, you will find that although it does, indeed, turn, it does so with a very strange relation to the target! If the IK target (which basically controls the wrist/ankle of the armature) is idrectly below or above the root of the armature, the joint will obediently point towards the TARGET Empty. But as soon as the IK target (wrist/ankle) is moved, moving the joint target makes the joint spin either too slow or too fast, alligning correctly only when the direction coincides with a (global) axis which both IK target and root are on.
I have set a camera to rotate according to a small cube that tracks the IK target from a position at the armature root. This means that the camera is always looking “down” the armature, at a 90 degree angle to the ‘plane’ that the joint is circling. This way, it becomes possible to move the joint handle around the armature as if the IK target was directly beneath the root. And yet, moving the joint handle around continues to make the joint spin at odd ratios; moving to what would be a 45 degree turn of the joint direction might produce a turn of 60, 20, or any other degree of the actual joint. It does not follow the joint handle proportionately unless the armature’s IK target is directly above or below the root.
I am trying to find the logic that drives the way the armature IK joint follows the joint handle around, but it is eluding me completely. There seems to be a correlation with how the armature looks in edit mode (i.e. with the IK target directly beneath the root), but even that seems to be only occassional. This means that I cannot, for example, rely on the joint handle when I do the “crawling on the floor” movement of the character in the animation. Moving the character’s foot or hip would simply send the direction of knee joints off in some unpredictable direction!
I think that is actually what I’ve been trying to do with the hooks. Off hand, I’d say the results would be the same, but your method would probably be easier to get a clear overview over, so I will try that in the very next version!
EDIT: Just spent a few hours(!) having fun with Ludwig. You really have something going there, Mike!! I still distrust using shapes (even if driven) for facial animation, but you did a damned fine job of that little fellow. And I whole-heartedly agree with you that Blender has the properties to become a solid character animation tool, it just needs to be fully applied. I have nibbled a few inspirations from Ludwig for my own work, and if things work out even borderline right, I should have a usable base character next week. Maybe making him public domain will help people dabble in character tools for Blender?