I got interviewed on Lester Banks! Accordingly, the blog has a bunch of new readers who haven’t followed it since the beginning. Since there’s a lot of background material to go through, I’m making a post here to go over some of the main points in short. If you have been following the blog from the beginning, there’s no new information here, but please pass it along to anyone who you think might be interested but doesn’t want to grovel through a year of archives!
This blog is about finding better animation production techniques. The main problem I’m trying to solve is that CG animation is way too hard. Animation is already an inherently difficult artistic process--CG tools shouldn’t be making it worse.
However, unlike many attempts to solve this issue, I’m not trying to come up with algorithmic methods to take more of the burden of defining motion on the software, using simulation or procedural animation. I am, in fact, moving in the exact opposite direction. I’m attempting to remove all the red tape from the process, so that the animator is left with only the most direct methods of interacting with the character possible. This is essential for the fast/high production value animation process that is my long-term goal.
To do this, I’m killing a lot of sacred cows. For instance, I don’t want to use keyframe interpolation. At all. Ever. That’s not an attainable goal yet for more conventional animation production, but it’s very attainable for the cartoony/stylized work I’m most interested in, much of which has a variable pose rate and can be inbetweened through a breakdown tool. In the long term, I think an interpolationless workflow would actually be the right thing for pretty much every kind of character animation, but we don’t have the right tools yet. (I also don’t want to use simulation except in very infrequent FX shots. Yes, I will animate cloth by hand. And it will be faster.)
Throwing out interpolation opens up entirely new avenues of exploration in character rigging--avenues that could end up having positive implications for more conventional interpolated animation as well. This is where ephemeral rigging comes in.
Unlike a conventional rig, an ephemeral rig only exists while you’re manipulating it. Accordingly, it can act whatever way you want it to act right then, without any concern for hierarchies, FK/IK switching, space switching, layered controls, gimbal issues, and all the other assorted crap that gums up the works when animating with a conventional CG rig.
What can you do with an ephemeral rig?
You can switch between manipulation modes like you’re switching a tool:
You can use “forwards” and “backwards” manipulation interchangeably:
(Incidentally, this makes reverse foot behavior an inherent part of the system, not some special case):
You can pair nodes and manipulate them from either side of the connection. This would be circular in the Maya node graph, but in the ephemeral node graph--which only exists temporarily--no circularity is created:
You can rotate any control from an arbitrary point:
You can use any of the rig interaction modes to make breakdowns:
How is any of this possible in the Maya node graph? Basically, it’s not. My early attempts to design this system mostly used Maya’s rig nodes, with scripts to mess with the graph as needed to create different rig behavior. Only a small part of the system was ephemeral. A few months in it became clear to me that this was making things harder, not easier, and that I needed to admit something important to myself: rigs are software. If I wanted this to work, I needed to stop thinking like a rigging TD and start thinking like a developer. The working ephemeral rig system I eventually came up with mostly runs outside of Maya, with it’s own node graph that is not part of the Maya scene and that Maya knows nothing about. It’s been surprising to me to discover just how much easier it was for me to create the behavior I wanted directly through code, as opposed to code that generates Maya nodes or modifies the scene graph.
Right now, this prototype system—which mixes ephemeral rigging for the body with conventional rigging for the face, fingers, and secondary controls—is only set up to allow interpolationless animation. However, there’s no particular reason you couldn’t use ephemeral rigging as a layer over a more conventional rig. This would allow you to animate with all the ephemeral/interpolationless benefits while working with a “blocking plus” workflow, then switch to conventional rigging and interpolation for final polish. Crucially, this would let you choose space and FK/IK switching points after the motion has already been defined. I think of this as being roughly analogous to retopologizing a zBrush sculpt, where you set down edge loops after the shape of a model has already been defined, rather than creating them while you are designing that shape. While it would be preferable to remove technical considerations like edge flow and UVs (for modeling) or keyframe placement and switches/blends (for animation) entirely, when this isn’t viable pushing the technical decision making to a stage separate from the artistic decision making can still create significant productivity gains.
To observe my continued experiments in avant-garde animation tooling, please follow the blog! You can use RSS, twitter, or sign up for email updates (note: I just set this up, so if it seems to not work for any reason, please let me know).