Good News on Blender Animation
Someone has finally stepped up to the Blender character animation plate and written the two features that BlenderPeople deperately needed in order to proceed: MatchMove and Action Baking.
As I've explained before in this blog, MatchMove is a feature that allows animators to put together disparate clips of character animation and have them transition seamlessly. This isn't a huge deal for high-quality front row feature character animation, because all of that stuff is lovingly crafted and tweaked by hand. What it's needed for is "generated" animation. For example, if a script was using a "Walk" action to make a character walk around, and wanted to make it flow into a "Fight" action and then a "Die" action, all automatically, this would be very useful. Using MatchMove between the "Walk" and "Fight" actions moves the character smoothly between the last position in "Walk" and the first one in "Fight" without it's feet sliding on the ground.
One consequence of generating animation like this is that you might have forty, fifty, or even a hundred different actions stacked and layered for a single character. There might be a thousand different characters. Every time Blender moves to a new frame then, it has to calculate the results of (in this case) a hundred thousand actions. That might take a while. Action Baking allows you to "Bake" the hundred different layered actions that have been built up by the generative animation process into a single master action that is simple and quick to evaluate. You just sped yourself up by two orders of magnitude.
So, cheers go out to the developer who wrote these new tools for Blender users around the world... oh... it was me. Yeah. I'd been working on MatchMove for a while, and had begun thinking about Action Baking when I noticed that the Orange project's
technical director was thinking about the same thing. Apparently the animators at the Orange studio had a bunch of layered animation built, and they wanted to start refining it. But it's tough to refine iterative walk cycles and character motion in layers. It's much easier to do it in a single action. So, I took several hours, taught myself a little bit more about matrix math, bone v. world v. object spaces, and double linked lists, and made the feature. It hasn't been combat tested, but I think it works. I'm sure the code is crap and Ton will probably have to rewrite half of it anyway...
So thanks to Toni Alatalo (technical director) for giving me the opportunity to add such cool functionality to Blender. And good news for BlenderPeople!