An Ephemeral(-ish) Rig

If you're a Maya rigger, "freedom from the dependency graph" is a phrase that likely sends tingles of excitement up your brain stem. In the course of implementing space-switching, animatable pivots, or even certain kinematic mode switches, the DG can force us to make rigs which require tracking offsets, extra tools, or otherwise compromise an animator's flow. In general, the directionality trickles down into our persistent rigs and can make actions which seem simple into a h*cking pain.

It's not that I don't understand why Maya is built the way it is. Parent constraining two controls to each other and watching them ping-pong off into the sunset is a fairly good primer on the justification. But no matter what the underlying system is, rigging should be about providing animators with a great interface that helps them stay in their creative flow. Raf Anzovin formalizes this idea really well in his core loop article. His thoughts have been a heavy influence on these recent experiments of mine.

If you're unfamiliar with the base concept of an ephemeral rig, I highly recommend checking out Raf's blog from the very beginning. It's okay if you aren't all-in on the ideas. Admittedly, I'm still not sold on tossing out keyframe interpolation altogether - especially considering its efficiency for game animation. But I was nonetheless intrigued by an ephemeral rig's potential to simplify an overall rig, specifically relationships between various controls. What else to do but try some ideas out for myself?

I knew I wanted custom RMB marking menus for the primary interface to the ephemeral aspects of the components:

RMB interaction flows nicely. Get IK, finish IK.

Each component's foundation is a simple FK rig (the controls in these samples could just as easily be joints). I did it this way for a couple of reasons - first, I still wanted a "base" state on which the keys could persist, and I didn't want to hide that state away from an animator. I thought FK would make a good base state due to its simplicity, particularly for adjusting curves; it was important that the base state be free of surprises. Everyone knows and gets FK.

Reverse-kinematics lets you basically re-root the whole rig. RK controls can suspend their FK behavior.

These samples show how an animator would interact with it: it's a cycle of "give me this", "okay I'm done with this". At its best, it works like a traditional mode-switch - only with more modes and no attribute or offsets to key. This one gives a better idea of the different modes working together, along with some of the ctrl-RMB tools.

It's a bit of a hacky implementation - mostly I spent time spent in design decisions rather than development ones. For example, how strong should the boundaries between components be, from an interface perspective? That is, when I ask for an IK hand, the rig makes an IK chain from the component root to the desired control. But what if I want a more compound IK - for example, an index finger IK control that drives whole arm as well (maybe even including the clavicle just to be mad)? That would cross component boundaries (twice!) - but if I'm an animator, I don't care about that. My point is: designing a rig in this way was a bit dizzying - the possibilities were endless and tantalizing. In the end, the goal of just making one thing (the silly figure in the video) was effective in limiting the more far-fetched rigging explorations.

It was a fun experiment, and I think there are some valuable ideas in this territory. But I walked away still liking the ephemeral rig from Raf's latest videos more - his default control style (a mysterious and proprietary stretchy-spline-looking-thing) has a lot of polish and feels more intuitive as a "base" mode than FK. What I could use more than anything right now is some feedback and fresh perspectives on it. So if any other animator/rigger/tinkerer is willing to tell me what sucks about it or pick up some of the pieces for themselves, I'm all ears.