After banging my head against the armature code wall for a long time, I am semi-giving up. I have been unable to use the current Blender code to do what I need, and don't have the time or the knowledge to write it from scratch. What I needed was pretty straightforward: a function that, given an action, an armature, a frame number and a bone, would return the object space matrix of that bone, at the given frame of the action. If anyone reading this knows how to do this, then please drop me a line, because I have everything else in place.
What I'm going to do, though instead of giving up entirely, is try to push for this to be done by someone else. It was pointed out to me that a Character Animation cleanup has been mentioned in the weekly meetings (note that it was only mentioned). What I'm going to do is to take all of my ideas, with even some pseudocode and c code that I've already written, along with animation examples, and make a good proposal page. I still believe that Blender's character animation system could be brought up to par with other systems with a few additions:
- pinning bones to align animations between NLA strips (pinBone)
- world pinning IPO (using on/off key to lock a bone in world space)
- floor constraints that freeze bones in world space when they pass below a floor threshold
- better access to rvk's, though an improved UI and clearer creation methodology
Right now, I'm on a quest to put all old projects to bed, as I have a new one that I want to begin. Those projects include finishing a children's novel (will finish by Sunday, only three chapters to go), finishing the Audition animation, and a couple of household projects. I'll be putting together my character animation proposal after the kid's book is done.
BlenderPeople is still in there. But it will have to wait until Blender's character animation tools have matured a little. In it's final form, I see BlenderPeople as a way to not only generate funky battles, but also indeterminate character animation. A crowd of people, each going about their business; a simple way for users to move their characters realistically over terrains; ants marching; tadpoles swimming; one, two or more background characters just doing stuff without you having to plan it out specifically.
So, the goal is there. And I finish what I begin, not out of some sense of slavish duty, but because the reasons that drew me to a project in the first place remain, and interest and excite me long after the initial creative rush has passed. To anyone who has been waiting for this project, or just following it and are feeling dissappointed - learn c, download the sources and start cracking away. You might be the next great coder and just not know it yet. You might be the one who adds the great character animation tools that makes Blender a ca powerhouse. That would be cool.
Until then, though, this is going to have to wait. I'll post a link to the proprosal when I have it up.