My Animation Blog
Sunday, April 25, 2010
Animation Workflow Tips and Tricks
One of the things I've learned since I've been working in the animation industry is the importance of having a good workflow. Anything that you can do to minimize repetitive tasks or accessing of menu items will speed you up. A simple thing as having all the hot keys within easy reach of your left hand so that you don't have to reach over to the right side of the keyboard or worse yet, take your right hand off the mouse, can make it a lot faster for you to get your work done. All those little tasks, throughout the day, add up to lost time and they separate you from the task at hand.
In this post I will talk about the workflow improvements I learned while working at Blue Sky and Tippett, as well as some of the studios in New York. I will link a Maya preference file that you can use if you would like to adopt these hotkeys and scripts for yourself.
Hotkeys
As I explained before keeping your hands in place while you work and not accessing menus can speed up your workflow. Following are some of the hotkeys that I use.
1 and 2
One perfect example of keeping your left hand in place is how I re-mapped the Next Key, Previous Key to the 1 and 2 keys instead of the < and > keys which are all the way on the right side. The Next Frame, Prev Frame keys then logically get remapped to alt-1 and alt-2 instead of alt-< and alt->.
Alt-x-c-v-b
Another workflow tool I use is visibility toggle hotkeys for curves (alt-c), geometry (alt-f), and joints (alt-b). These hotkeys toggle on and off these types of objects so it's another menu I don't have to access. I also have an x-ray view mode toggle key (alt-x) to turn that on and off as I work, in case any of the controls get lost within the character or I need to see what the joints are doing. Thanks to the animators at Tippett for sharing these toggle gems.
Rotation Toggles
Another issue I constantly come up with is the Gimbal Lock issue. This happens when you rotate a control in several axes and two or more of the axes align so that it becomes hard to rotate in certain directions without having crazy curves in the graph editor.
So therefore it is good to keep rotations as organized as possible and it is good to know what axis you are animating by using Gimbal rotation, which shows you the actual rotation axes. But there is also something to be said about the ease of animating in Global and World rotation mode, in which the gimbal rotations are hidden and you are presented with a more user friendly "free" rotation tool.
I constantly found myself switching rotation modes. Therefore I decided to figure out a way to change the mode with hotkeys. My implementation is not the best but I use it all the time. Since e is the hotkey for rotation it made sense to use it as the hotkey. Alt-e switches to Gimbal mode, alt-shift-e switches to Local mode, and alt-ctrl-e switches to World mode.
Translation Toggles
Just like it's useful to use the different rotation modes, sometimes it's useful to switch translation modes for a translation tool that is better aligned with the object or moves straight up and down, amongst other reasons.
So I created some similar shortcuts. Since w is the Maya translation hotkey, alt-w switches to Local mode, alt-shift-w switches to World mode, and alt-ctrl-w switches to Object mode. I use this shortcut almost as often as I use the rotation mode shortcuts.
Ctrl-p
The next tip is a little Mel script magic that my friend Jeff Vacanti taught me. Like most animators I create my own selection Mel buttons on the Maya shelf.
Well Vacanti added a little Mel script to one of my hot keys ctrl-p. Now, when I have a selection of controls selected on screen and press ctrl-p, it opens the script editor with some code on it. I drag the code to the tool bar and it creates a toggle selector for the selected controls.
What's cool about these buttons is that they can then be used to add selections together. For example, you can make a toggle button for the spine and then one for the tail, then you can add one selection to the other by clicking on one after the other. It also works the other way, say you have the entire character selected and you need to key everything but the tail. Simply click on the tail button to toggle off those controls and press s.
Ctrl-b
This shortcut runs a playblast with your last used preferences. Simple but it saves you from accessing yet another menu.
Alt-q
I use this shortcut to perform the euler filter on curves after I've been working on them. The euler filter can really help you avoid headaches when your control starts getting close to Gimbal lock.
If you start working on a control and see some of the rotation curves start swapping places on the graph editor, the problem can often be attributed to gimbal lock and can be fixed with this command. When you run it, all of a sudden you will see the curves magically flatten out and won't have any of those crazy rotation glitches.
i insert key
Many times during the day I need to add keys to my animation but I need the new keys to not affect my current tangents so that the animation up to that point doesn't change (since pressing s usually changes the tangents). The insert key "i" is great for this. Select the curves you want to add a key to, hold down i and press your middle mouse button at the specific frame in the graph editor. A key is added, your tangents are maintained.
Ctrl-t
This one brings up the Tween Machine, another great mel script. TweenMachine is a tool that I started using at Animation Mentor. It is free and was created by Justin Barret and can be found at http://www.justinanimator.com/mel-tweenMachine.php. It allows you to create in betweens based on the pose before and the pose after. And you can bias the in between to either pose based on a percentage slider on the Tween Machine interface.
Ctrl-t brings up the Tween Machine interface. You then select the controls you want to get the in between on, position your play head between the poses you want where you want the in between to be. Then simply drag the slider. It will immediately create an in-between key. The closer you get to 100% the more the pose will be like the following key. The more you get to 0% the more the pose will be like the previous key.
Non-Weighted Tangents
This tip took me a while to learn. That is that you should try to only use non-weighted tangents in your animation. I finally caught on to their power while working at Tippett. At any point in time, even during the polish phase, they could come with changes. Sometimes it was a matter of speeding up the animation with the scale tool. Have you ever tried to scale animation that has weighted tangents? Those tangents don't scale well and you end up with lots of buckling in your curves. Non weighted tangents aren't perfect but they are much easier to fix after such a change. Like a lot of animators have told me in the past: "If you need the curve to do something different just add another key". There is really no need to switch to weighted tangents in most cases.
Mel Scripts
There are several scripts I use as part of my workflow. Luckily all these scripts are free online. Here are my favorites as well as the hotkey preferences I have set for some of them.
Autotangent
This is one of my favorite tools in animation. I learned about it while I was in Animation Mentor and my Blue Sky mentor (now at Pixar), Amber Martorelli, told us about the tangent tool they used while working on Robots and Ice Age. There just happens to be a free Mel script that does a similar thing.
The issue with tangents in the graph editor is that, if you block using splined tangents, as I do a lot of the time, or if you're adding keys in the middle of polish, the keys that get added usually don't have the right tangency. You end up with a lot of overshoots on extremes or incorrect tangents on in betweens. (see image below) So then you have to go through all your curves later fixing all the tangents which takes time.
This free Mel script can do that for you and it's a great way to do some initial curve cleanup. It's called autoTangent and is available at http://www.comet-cartoons.com/melscript.php. It works with an interface window that must be open to define the overshoot of your curves. I use it at 0 overshoots setting 99% of the time.
So the shortcuts that I have created are alt-a to bring up the autoTangent interface. I leave this little window up all the time in a corner. Then I press the "a" key each time I need to run autoTangent on selected keys in the graph editor. And I run it ALL the time as I animate to clean up curves as I work. Sometimes as much as 10 or more times a minute as I'm blocking setting keys. Here is a video about the autoTangent tool in use with the hotkeys.
TweenMachine
I already covered TweenMachine. Go to ctrl-t hot key above.
Create Motion Trails UI
In animation it is well known that we have to make sure body parts and objects move in nice arcs an not linearly. With FK body parts the arcs are easy since they pretty much come for free. But when you are using IK or animating the main body control it is much harder to get nice arcs. You can do it by eye or with Maya's arc tracker which is not very good. And of course, you can also draw on your screen with an erasable marker and track it that way, something I do as well.
But when the arc is more complicated and you need to track it in 3D, not just the animation camera, this Mel script can be a godsend. It was written by Cameron Fielding : cameron.fielding@bvg.com but I can't seem to figure out his website.
Correction, just got the link on Creative Crash from Matt Cadusch. Thanks a lot for that!
http://www.creativecrash.com/maya/downloads/scripts-plugins/animation/c/cmotiontrail-mel
The way it works is you select the control you want to track and bring up the Create Motion Trails UI interface by clicking on the button labeled cMTrUI. This will bring up an interface in which you can select the size and color of the key markers and path curve. The script then generates the path and you can start tweaking.
What is amazing about this tool is that you can additionally change the position of the object and the curve will update on the fly. It's a great tool and can save you lots of time tweaking.
Pose 2 Shelf
This is another lifesaver tool. I found it at http://www.creativecrash.com/maya/downloads/scripts-plugins/animation/c/pose-2-shelf. It's great for transferring poses or even animation from one scene to another. It is also good for saving poses that you might need later.
The way it works is you select the controls that make up the pose and then click on the p2s button. This will open a window for you to name your pose and then save it to the self. This tool can also be used to make a selection button for the selected controls (although I would rather use ctrl-p and create a toggle button).
Save
This is an incremental save button that saves a new version of the file each time you press it. The file name gets a three digit serial number that grows with each subsequent save.
Snap
This is a very simple Mel script that snaps one object to the other by creating a parent constraint and immediately deleting it.
Simply select the object you want to snap to, then the object that you want to snap to it (similar to any type of constraint) then click on the Snap button.
The 30 minute test
At Tippett we used to have many very challenging shots. In a lot of them the technical challenges were huge. One thing I learned from some of the animators there was the 30 minute test. The way it works is you decide on a solution to the problem and the go head on to fix it for the next 30 minutes. If by that time you are still having problems, then go back to your previous version and try a different solution. Then all you lost was 30 minutes rather than 1 or 2 days.
Buffer Curves
I always animate with buffer curves turned on in the graph editor. Not only are they a baseline for your previous animation but they can also be used to take a snapshot of your current work and "save" your animation curves before you attempt a big change. In addition, once you are done making the change you can swap back and forth between versions on the fly to see the effects of your chances. It's especially useful when changing keys in the graph editor.
Conclusion
This covers most of the basic workflow tools I use as I animate. Hope this helps you as well.
These preferences take a lot of time to set up if you are doing it from scratch. That is why every time I go on a job I carry with me a USB memory stick with my preferences so that I can get to work right away with no setup required. Once I install the preferences I get all my hotkeys, Mel scripts, tool bars and any other preferences
You can download these basic hotkey preferences, as well as some of these free Mel scripts here:
Simply close Maya, replace the preference folder and open Maya to check out the hotkeys. Make sure you back-up your old preferences in case you want to go back or create your own preference file by adding some of my preferences to yours.
If you have any good workflow tips that you use when you work, please tell me about them in the comments below.