Ephemeral Rig System Mark 3 First Look

brothers2.png

It’s now been more than a year since I presented Mark 2 of the ephemeral rigging system at SIGGRAPH. Before that point, this blog had regular updates. After that, I kind of went dark for a while, and it might have appeared as if development of the ephemeral system stalled out.

A lot of that time went into working on other stuff, mostly stuff that pays bills, some of which might eventually make its way onto this blog but most of which was just standard rigging work that gets me by day to day (among other things, I’m responsible for the facial rigging on Crucible and most of the hand-animated portions of this otter-focused museum attraction). But in secret, I was also collaborating with Tagore Smith on ephemeral system Mark 3. Now, for the first time, the terrible fruits of our labors will be revealed. Take a look at the very first shots animated with Mark 3, drawn from the Epic Megagrant project Chris Perry and I are working on:

“Aliyah” character design by Jill Daniels, sculpt by Carol Cornils.

Mark 2 was a prototype. When I started trying to write it I didn’t really understand what it was or how it should work yet, and I was limited by my programming experience, which had primarily been the kind of script bashing that doesn’t really teach you how to actually engineer a piece of software (all Anzovin Studio’s tools, while often designed by me, were programmed by actual programmers like Tagore, Brian Kendall, and Connie Hildreth). The resulting system was basically held together with duct tape and spit. It was usable--I was able to animate with it, and even use it on a few productions--but it was clunky and limited. Expanding it and adding more features was going to become exponentially more difficult as the system grew. It was never going to become a polished production tool.

With Tagore ensuring that the new system was engineered soundly, we’ve rewritten Mark 3 from the ground up to be much more robust then Mark 2 ever could have been. For instance, the way Mark 2 puppets the Maya DG only allowed for one-way behavior: the ephemeral system could control a node, or it could be controlled by a node, but never both. This meant that it could never support multiple selection for interaction. It also meant that interaction, breakdown, and zero all ended up requiring different graph types with inconsistent rules, which is why (for instance) you could use a plethora of modes for interaction but were limited to just Default and Forward for breakdown and zero operations.

Mark 3 has one unified graph that can accept updated matrices for any set of ephemeral transforms and order and evaluate them correctly, then drive transforms in the Maya graph whether or not they are also inputs (i.e. where those new matrices came from!).

Note that the tail interaction is a bit slow since the system hasn’t been optimized for a whole bunch of nodes selected at the same time yet, but that’s very optimizable and shouldn’t be an issue in future versions.

This much more robust graph also allows for all kinds of nice behavior that the Mark 2 ephemeral graph couldn’t manage. Take a look at these backward interactions, for instance:

Yes, you can now swing the hips (or the entire body) backwards from the knee, or swing the body backwards from the neck, with exactly the behavior you’d expect. This has been incredibly helpful when animating a character in zero G!

This also allows the graph to evaluate breakdowns, zeroes, and other slider interactions in precisely the same way it does manipulator interactions, since the new graph accepts any set of new matrices as an input. What this means in practice is that the ephemeral graph can receive a pose (which is just a collection of matrices, after all) and blend some or all of the ephemeral controls in the character towards that pose. A breakdown is just blending the character towards a pose from a different frame. A zero is blending the character towards the default pose. And because the pose blend in question is being evaluated through the same ephemeral graph as any interaction, you can use the full spread of possible ephemeral behavior available when making breakdowns or other pose blends.

It also means that zero no longer has to behave in an FK-like way as with Mark 2. Instead, you can zero anything relative to anything else through any set of relationships the ephemeral system allows. Here, the elbow is being zeroed in Forward mode (relative to the shoulder, with the hand following it), Backward (relative to the hand, with the shoulder following it—note that it stays bent in that case because the shoulder is already at right handles to the elbow and will maintain that relationship unless it’s also included in the zero operation), and Default (relative to the hand and shoulder, which has the effect of placing it directly between them):

You can also exclude translate, rotate, or scale from a pose blend. This is particularly helpful when using the zero slider, as zeroing translation alone effectively allows you to reset the length of a particular bone to it’s default--quite useful when making sure a pose is on-model, since the ephemeral system currently makes no attempt to enforce character proportions on you (though enforcing proportions would be theoretically possible using an ephemeral rig and will probably be a feature of this system eventually).

Since all pose blends are unified, it’s quite easy to blend towards completely arbitrary poses too. For now we just have the ability to store (ie copy) a particular pose and blend towards that, but eventually I’d like to build in an ephemeral pose library.

Note that, again, how the pose is applied respects ephemeral modes: applying in Forward or in Default mode gets you different results.

Depending on how you calculate the blend matrices, you can do cool things like overshoots (which extrapolate a new pose from previous animation) or smooths (which averages a transform with both it’s past and future states to smooth out discontinuities in motion:

There’s a lot more to go into in future posts, but for now I’d like to close by announcing that, while it will be some time till Mark 3 is ready for a wide release and I can’t put a specific date on it, it will become a commercial product. We’ll be releasing the ephemeral system through Notional Pipe, the company Tagore, Brian, and I have formed to release Contour Rig Tools (formerly known as Anzovin Rig Tools). The internals of the new system no longer rely on Maya at all, so there are a variety of directions we could take it in the future!