Hello World!

I have been happily unemployed for some time now. Happily? Yes! As long as it doesn’t last forever, I’m quite happy getting a chance to work on some of my own projects. R&R for the weary working programmer at heart. And now I think it’s about time I shared some of what I’ve been doing with my oodles of spare time.

I started with tool making and later progressed to more tool making. I love making tools. I really do. I think I would be equally if not more happy working at a job making tools than rigging. In fact, I’m considering pursuing a job making tools over rigging. If that doesn’t pan out, then I’ll start transitioning from using my spare time making tools to rigging. And making rigging tools. I’ve made plenty of rigging tools in the past. Tons. Sure, there’s only one up here, but that’s just because it takes so much time to release a script. This time around, I decided to do something new. Something exciting. Shiny even. You could even call it animated. I decided to work on tools for animation.

It wasn’t hard to find inspiration to make a tool. My partner in crime, life, and love, Riannon Delanoy, is a brilliant crack animator. So I didn’t have to look far to find an excellent resource of complaints. This one in particular went something like this:

Riannon: Ahhh! Why can't Maya just key what I have selected? I don't want to key everything!
Me: How would it know what you have selected? You can have the graph editor open at the same time as the channel box and have different things selected in both. That could get confusing fast.
Riannon: Ahh! I don't care! Maya just sucks!

I consider this an excellent and well articulated complaint. My own complains usually end with the same sentiment. A few weeks earlier I also had this gem of a conversation:

Riannon: Why can't Maya leave my curves alone when I add a new key? I don't want a key in between these others to change the curve!
Me: Didn't Daniel mention there was a way to insert keys in Maya? (A quick google search later) Yeah, you just need to hold down the “i” key and middle click on a curve.
Riannon: Oh, right! Cool, thanks.
(A few minutes later)
Riannon: Oh my God that is so annoying! I hate it!

So I may have exaggerated a little. Riannon isn’t quite so likely to fly off the handle about every little thing in Maya, but I wanted to make a point. I was a little annoyed when I first heard these complaints. After all, these things are just the way Maya works. There are ways around each of these problems. But the more I thought about it the more it bugged me. These are things every animator needs to do hundreds of times every single day. This is a common task. Common tasks in any program are the kind of task that should be simple, intuitive, and downright easy. There shouldn’t be any need to work around something as simple as this.

Needing to hold down the “i” key and middle click to insert a key? Who’s brilliant idea was this? First of all, the “i” key is not near my left hand. Sure “i” for insert. I get it. But it’s not easy to reach for most right handed artists. That doesn’t even touch on the real elephant in the room though.

When you boil it right down, all an animator is paid to do is make nice curves in a graph. The curves are their work. So when you add a new key between a few others and have the tangents flattened by default, you change that curve. If a curve is changed, you just undid some of that animators work. Why on earth would you do that? Now the animator has to go in and massage those tangents and the surrounding tangents into the way it was before. That’s a lot of wasted time when there’s already a way to leave their curves alone. Just insert the key. After all, if the animator wants their tangents changed it’s just a click away. Getting their original curves back is not.

I let this stew in the back of my mind and continued working on other things. Then one day I ran into the getPanel command. The cool thing about the getPanel command is that you can find out what panel is under your cursor (getPanel -underPointer;). At this point, that familiar little lightbulb went off in the back of my head. If you could get what was under the user’s cursor, you could make commands context sensitive. You could do something like, determine if the graph editor was under your cursor. Now we were cooking!

May I present to you the fruits of my labor! Clever Keys. The best way to set a key in Maya since 1964! The last way you’ll ever set a key in Maya if I get my wish (and no horrendous bug shows up). It addresses both of Riannons original complaints – though she didn’t know at the time that they would later become a single tool. It lets you key whatever attribute is selected intuitively. If you try to add a new key to a curve it will automatically insert it. It just works.