Customizing Maya for animation


This year I decided to focus most of my time in studying animation. I’m no animator yet, but very often I’ve been discovering new and better ways of doing some particular things that improved my workflow quite a bit. It’s amazing how customizable Maya is and how many useful tricks and tools people have came up with. I started this thread so maybe we could filter a little bit of all this information. My goal is to find the best tips, tricks, scripts, hotkeys etc to speed up the animation workflow in Maya. I’ll start by sharing some of my own changes and additions I’ve done in my Maya interface. I hope this helps and inspires people to post their own ideas.

Obs. I’m no Maya Master and many things I had to figure out on my own, so I apologize for any mistakes I’ve made. Feel free to criticize and share your thoughts. Also, nothing here is new, so you might find many things that you already know or that you have seen before.

In the following text I assume that you have a basic understanding of Maya and know how to create hotkeys, marking menus, shelf buttons etc. Also, everything a did here I was using Windows Vista x64 with Maya 2008, I don’t know the consequences of experimenting this stuff with other configuration, try it at your own risk.

Tip 1-

Useful hotkeys for adjusting timing:

I’ve assigned the mel commands below to help me adjust the timing when I’m animating. They will shift backwards or forwards all the keyframes from the current frame.

timeSliderEditKeys addInbetween;

timeSliderEditKeys removeInbetween;

free image hosting

You just need to create a hotkey for each command. Personally I like using:
(= and +) = forward
(-) = backwards

You will notice that those are already assigned to increase and decrease the size of the manipulator, but I use the timing commands a lot more, so I assigned new hotkeys(ctrl++ and ctrl±) to the manipulator commands. You can find them inside the MANIPULATOR category in the hotkey editor.

Tip 2-

Hotkeys to cut, copy and paste keys in the timeline. Its fast to reuse and remove poses. I also changed the default hotkeys that Maya has to go to the previous and next frame (ctrl+, and ctrl+.). You can see my settings below:


ctrl + shift + x = timeSliderCutKey;

ctrl + shift + c = timeSliderCopyKey;

ctrl + shift + v = timeSliderPasteKey false;

m = NextFrame;
n = PreviousFrame;

Tip 3-

For a long time I wanted to make a marking menu that could automatically set up my hotkeys according to the type of work I’m doing. So if I’m modeling I could have my entire keyboard set with modeling hotkeys, then when I want to animate, I’ll just switch to Animation Mode and I can use the same hotkeys I was using before, but now they’ll have my animation tools assigned to them. So you can do this for, modeling, animation, rigging, rendering etc. Its a pretty useful thing especially if you are a generalist.

free image hosting

I never found a tool that would help me do this (if there is, please let me know) and my knowledge of mel is very limited, so I hope I can explain what I did.

The following is an example that assigns my custom marking menu (aniScripts) to the key . It’s part of the code that changes my hotkeys to animation mode. Remember that \ is \ in mel.

//// 2- Animation: \ key aniScripts

$hotKey = nameCommand //$hotKey is a variable -annotation "aniScripts (Press)" //the only thing you need to do to make yours is replace the names inside the " " -command "aniScripts_Press"; //“aniScripts (Press)” is an info and “aniScripts_Press” is the command name you’ll find in the Hotkey Editor.
hotkey -k “\” -name $hotKey; //Here you’ll put the key of your choice inside the " "

The code below works basically the same way, but its for the release command on marking menu hotkeys.


$hotKey = nameCommand -annotation "aniScripts (Release)" -command "aniScripts_Release";

hotkey -k “\” -releaseName $hotKey;

The following image shows where you can find the command names in the hotkey editor:

Here is a example of three keys: “s” , “\” and the UP arrow key. They’ll have different commands depending on what mode I’m in. The first part is a peace of the code from the button “Animation Hotkeys” in my marking menu.

//// 1- Animation: “s” key = SetKey

$hotKey = nameCommand -annotation "Select object(s) to key" -command "SetKey";

hotkey -k “s” -name $hotKey;


$hotKey = nameCommand -annotation "Select object(s) to key release" -command "";

hotkey -k “s” -releaseName $hotKey;

//// 2- Animation: tecla \ aniScripts

$hotKey = nameCommand -annotation "aniScripts (Press)" -command "aniScripts_Press";

hotkey -k “\” -name $hotKey;


$hotKey = nameCommand -annotation "aniScripts (Release)" -command "aniScripts_Release";

hotkey -k “\” -releaseName $hotKey;

//// 3- Animation: key “ctrl+Up” pickwalk hierarchy
// Here I’m assigning the original UP arrow hotkey to another (Ctrl+UP)
//I don’t care to change the Ctrl+UP hotkey in other modes since I don’t use it for anything

$hotKey = nameCommand -annotation "Walk up the current hierarchy" -command "PickWalkUp";

hotkey -ctrlModifier -k “Up” -name $hotKey;

//// 4- Animation: key “Up” jsPickWalk_up

$hotKey = nameCommand -annotation "Walk up the current mapped control" -command "jsPickWalk_up";

hotkey -k “Up” -name $hotKey;

Here it is the correspondent “Modeling Hotkeys”, it will assign modeling tools for the same keys

//// 1- Modeling: “s” key = modelagepoup Mm

$hotKey = nameCommand -annotation "modelagepoup (Press)" -command "modelagepoup_Press";

hotkey -k “s” -name $hotKey;


$hotKey = nameCommand -annotation "modelagepoup (Release)" -command "modelagepoup_Release";

hotkey -k “s” -releaseName $hotKey;

//// 2- Modeling: key \ modelagem2_Press Mm

$hotKey = nameCommand -annotation "modelagem2 (Press)" -command "modelagem2_Press";

hotkey -k “\” -name $hotKey;


$hotKey = nameCommand -annotation "modelagem2 (Release)" -command "modelagem2_Release";

hotkey -k “\” -releaseName $hotKey;

/// 3- Modeling: key “Up” pickwalk hierarchy

$hotKey = nameCommand -annotation "Walk up the current hierarchy" -command "PickWalkUp";

hotkey -k “Up” -name $hotKey;

I hope its clear, let me know if there is anything too difficult to understand or any mistakes.

Tip 4-

I would like to show the tools I have in my animation shelf.
(thanks to pateta3d for all the help)

Its all the scripts and tools I use more often while animating. I like having the entire code of each script in a button so I can source and run them just by clicking once. Usually the code is not so big, so its not a problem at all. Its a little handy when you switch computers all time and you don’t want to worry about all the mel scripts or editing usersetup.mel. I Just load the shelf and voilà!. So basically I have hole script code plus the command to run it, all in one button.

Here is what it looks like:

free image hosting

Shelf buttons in order from left to right-:

-Script Editor

-Save Scene Plus

-Tear off Shelf

-Match Attributes






-Maya default motion trail

-Colour Breakdown





  • Open a specific folder

Info and tutorials of the shelf contents:

-Script Editor

This one is only a shortcut to open the Script Editor

-Save Scene Plus:

“SaveScene+ will save the current scene as a new version, for example, if the current scene name is “myScene.mb” the scene will be saved as “myScene_v01.mb”. The next time the SaveScene+ icon is pressed the scene will be saved as “myScene_v02.mb” and so on.”

-Tear off Shelf:

“tearOffShelf creates an interface containing all shelf tabs and their buttons.”

-Match Attributes

“This script makes snapping and matching objects more streamlined. It will allow you to get one object the same rotations, translations, or scale as another object with the click of a single button. No searching through the Maya GUI or using constraints to match attributes on objects. Just pull up this window and it will do it for you. Handy for moving objects to pivot points and for setting rotations.”


Excellent tool!

“MatchBox is the result of an effort to develop a universal character flipper that will work with any rig, every time. While animating a walk cycle, poses will be mirror images for the opposite stride.”

This is the only script here that takes a bit long to source and load. You may want to put this one in the scripts folder and add a line to source it in your usersetup.mel


Awesome tool!

Some functions

  • Unlimited characters, sections and poses
  • Works with any character, object, node, etc…
  • Works with referencing
  • Capture thumbnails pose on the fly
  • Rename Character, Sections and Poses
  • Add / Remove controls poses
  • Reorder Sections and Poses
  • Mix pose slider!
  • You can apply pose and MIX pose in 10%, 25%, 50%, 75%
  • Easy to share, just copy and paste /poseman directory or Character directory


Really good tool, very simple and fast to use, its a little like PoseMan.

“This script will let you do two things that are extremely simple, but insanely useful for animators that are posing and setting a lot of keys on characters, as well as animators who are doing a lot of anim transfer onto characters:
It has a single super simple UI that lets you:

  1. Save and label the setAttr (pose) commands for all keyable attributes of all selected nodes to your shelf, with the push of a single button!
  2. Save and label your current selection set to the shelf with the push of a single button.
    This script uses the “catch” command, so in case you re-name some nodes, the nodes that still exist will still get affected. This script is a solid replacement for recordPose and savePose; it is faster to use, and requires no copy/paste from the script editor. It still prints the commands into the output window, though, just incase this is useful to you. enjoy!”


Awesome tool. This script is a real time saver if you work the pose to pose way. It has many features. There used to be a free version, but I think its not available anymore, so you might have to get the paid complete version on the website now.


Nice tool to help checking your arcs, its a good alternative to Maya’s default one.

-Maya default motion trail:

Maya’s own native motion trail. Sometimes I have problems with cMotionTrails, so I like having a button with code below that applies a point and line trails to the current selection:

doMotionTrail 1 { "snapshot -motionTrail 1 -increment 1 -startTime playbackOptions -query -min -endTime playbackOptions -query -max", “point”, “0”, “animCurve”};
doMotionTrail 1 { "snapshot -motionTrail 1 -increment 1 -startTime playbackOptions -query -min -endTime playbackOptions -query -max", “line”, “0”, “animCurve”};

-Colour Breakdown:

This script was designed to color breakdown pose keys so you can differentiate the key poses from the breakdowns.


Many animators draw on their monitor to track arcs. If you don’t want to draw directly on your monitor this external software is a great alternative. Its pretty simple and lets you draw anywhere on your screen. You can download a 30 days trial version on their website.

free image hosting

There is also a free software that isn’t as good as annotatepro, but works fine when you just want to place dots. Its called ezMark (

You can create a shelf button like the example below to launch the software:

system(“start C:/Users/your_user_name /Documents/Maya/scripts/Annotate!Pro.exe” );

This code works with any external software. You could use it for launching photoshop or mudbox for example. Pay attention to the /.


“allows the user to pickWalk to any object using the traditional up/down/left/right”

I really like this tool, its speeds up a lot my workflow. I did find some issues when trying to map the rig controls, but after some attempts it worked, I can’t really explain whats the problem though. It could be my version of Maya (2008). Once you get it to work it should be fine and you only have to do it once per character. The author is Jason Schleifer, he’s an amazing TD and animator. You can get some other cool scripts in his website:

You can create hotkeys with the codes below so its faster to navigate the rig controls. A good hotkey could be ctrl+(up/down/left/right)

jsPickWalk up;
jsPickWalk right;
jsPickWalk left;


Here is a cool script written by fellow AM student Keith Seyer. Check out the highend link for video tutorials.

“An Onion Skinning Tool that allows you to layer a transparent copy to measure spacing and arcs.”


Nothing new here, its only a shortcut to playblast.

-Open a specific folder:

Many times when I’m working I need to open a specific folder for some reason. So I like having a shelf button to do that. You can create your own with a script like the following:

system(“explorer /n,/e,C:\projects\Animations\images”);

Replace “C:\projects\Animations\images” with the path of the folder you want. Remember \ is written as \ in MEL. (thanks to tobbew for this tip)

Tip 5-

1- I like using Marking Menus a lot, to me its way faster. Here you can see two of my custom marking menus.

aniScripts has many of the same scripts I have in my shelf. I also added the ability of choosing the default tangent. If you want you can download the bottom part of this menu at the end of the post, and then you can add the scripts you like.

Tip 6-

This is another Marking Menu that I use a lot. Its useful when you are editing tangents in the Graph Editor. Basically it has the functions you find RMB clicking on the Graph Editor and some of its buttons. You can download it at the end of the post.

There is a problem though. It doesn’t seems to work when the Graph Editor is on a separate window. It took me a while to figure this out (thanks to David Johnson for this tip)

When you assign a hotkey to a marking menu, the hotkey editor assigns a code like the one below to the hotkey.

if (popupMenu -exists tempMM) { deleteUI tempMM; }
popupMenu -button 1 -ctl false -alt false -sh false -allowOptionBoxes true -parent viewPanes -mm 1 tempMM;
source “menu_Edit_Tangents_Mm”;

The Graph Editor is not considered a viewPane when on a separate window, so you have override the “viewPanes” so Maya knows which pane you are in when the key is pressed. The following code will do that.

string $panel = getPanel -up;
if( popupMenu -ex tempMM ) deleteUI tempMM;
if( !control -ex $panel ) $panel = “viewPanes”;
popupMenu -ctl 0 -alt 0 -sh 0 -mm 1 -b 1 -aob 1 -parent $panel tempMM;
source “menu_Edit_Tangents_Mm”;

Just replace the original code by this one. Note that “menu_Edit_Tangents_Mm” is the name of my custom marking menu, you will have to put the name of your own marking menu instead.

Obs. Check out the line: popupMenu -button 1 -ctl false -alt false -sh false
You have to change to “true” if you want to use Ctrl, Shift or Alt with you key. Also you can choose a different mouse button (-button 1/2/3 -> left/mid/right)

Tip 7-

Recently I found out about the marking menus shift+s+MMB e shift+s+LMB. They are pretty handy to edit keys and they’re default in Maya. Unfortunately they also don’t work in a separate Graph Editor window. This time you will have to edit the MM file in Maya to make it work, you can find it at: C:\Program Files\Autodesk\Maya2008\scripts\others\buildKeyframeTangentMM.mel

Its really easy to edit it, all you have to do is replace the name viewPanes by graphEditor1 on the lines 69 and 157. You should make a copy just to be save. If you want you can download an edited version at the end of the post.

Note: “This MM will be different in graph editor than other windows… In graphEditor, MM should work on active key. In other windows MM works on all keys at frame for active objects.”

Tip 8-

Before I start animating I like to create some shelf buttons with different combinations of control selections. Depending of the selection I can add a command to change to a specific manipulator, see the examples:

obs. Everything depends on the rig.

a. I’ve created a button to select the 3 spine controls, since everything is FK I’ll add a line “setToolTo $gRotate;” to change to manipulator to rotation:

select -r stewie_ac_C_spine_a ;
select -tgl stewie_ac_C_spine_b ;
select -tgl stewie_ac_C_spine_c ;
setToolTo $gRotate; (changes the manipulator to rotate)

b. Another good button would be to select the Iks and hips so you can move a character maintaining the pose. In this case I’ll add the line “setToolTo $gMove;” so the translation manipulator is active:

select -r stewie_ac_R_arm_ik ;
select -r stewie_ac_L_arm_ik ;
select -r stewie_ac_L_foot ;
select -tgl stewie_ac_R_foot ;
select -tgl stewie_ac_C_body ;
setToolTo $gMove;

I did the same thing for head and neck, feet, etc…

Tip 9-

This one is really simple and most people should know this, but its really important. Creating a button to select all controls of the rig you are animating. You can select everything and use the pose2shelf script or grab the commands from the script editor. I like creating two buttons and adding the command “SetKey;” at the end of the code by editing the shelf. It should look something like the following.

select -r stewie_ac_C_eyes stewie_fk_C_pelvis_ctrl stewie_ac_C_head stewie_ac_C_neck_a stewie_ac_C_spine_c stewie_ac_C_spine_b stewie_ac_C_spine_a stewie_ac_C_cog stewie_ac_C_body stewie_ac_C_layout stewie_rs_L_heel stewie_ac_L_foot_pv_ctrl stewie_ac_L_foot_pivot stewie_ac_L_foot stewie_rs_R_heel stewie_ac_R_foot_pv_ctrl stewie_ac_R_foot_pivot stewie_ac_R_foot ;

Tip 10-

Alien Cameras 1.1.0

This is the last tip I’ve learned so far.


"this is a marking menu for camera switching that substitutes the default one. this one includes user’s cameras and default cameras (persp,top,side and front) too.

With automatic refresh you can now create cameras and switch to them in a while!"

To install just download the RAR file and decompress it.

You will find 3 files and a folder of icons:

  • menu_aniScripts.mel (Marking menu)
  • menu_Edit_Tangents_Mm.mel (Marking menu)
  • the edited Maya file buildKeyframeTangentMM.mel that you can use to replace the original one.
  • Folder with some icons

Copy all the folders to your Maya prefs folder (ie “c:\Documents and Settings\your user name\My Documents\maya\2008\prefs”).
The file buildKeyframeTangentMM.mel should replace the original version at C:\Program Files\Autodesk\Maya2008\scripts\others\buildKeyframeTangentMM.mel

Please feel free to post some feedback. I really would like to know what people think and what should I change to make it better. Thank you!

Felipe Sanges


Great post Felipe! A co-worker of mine has written some scripts for Maya, such as Quick align, Align camera to view and Incremental Save. Feel free to add them to your guide. You will find them here: Maya scripts


That was a very interesting post Felipe, thanks for taking the time to write it. :thumbsup:
There are some nice scripts in there that I had not heard of, and that will help me a lot as I flounder my way through learning animation.



Thanks guys, I just hope it helps. Carl, I really liked the Align camera tool, its in my shelf now, thanks for the tip. Michael, good luck learning animation, its tough, but its goood!


Heh, I’ll be sure to tell him. Again, great thread!


lovin’ the thread first of all.
Secondly, I wanted to question something in tip 6. You say to replace:

if (popupMenu -exists tempMM) { deleteUI tempMM; }
popupMenu -button 1 -ctl false -alt false -sh false -allowOptionBoxes true -parent viewPanes -mm 1 tempMM;
source “menu_Edit_Tangents_Mm”;


if (popupMenu -exists tempMM) { deleteUI tempMM; }
popupMenu -button 1 -ctl false -alt false -sh false -allowOptionBoxes true -parent viewPanes -mm 1 tempMM;
source “menu_Edit_Tangents_Mm”;

Aren’t these the same? … or am I confused?


Oops, sorry about that! I guess I copied the same one twice. Try it now.


very nice. Thanks. And, I’m loving the matchbox link… great find.


This has got to be one of the most underrated threads. Thanks for all the great info, lots of new things to try out in my workflow.


yeah! Great thread! Thanks for the heads up on Annotate pro, just purchased it and it’s AWESOME! :smiley:


Thanks a lot Raveen and Ben. I really appreciate your comments. I’m glad it helped :thumbsup:


hey these are great tips. Thanks a lot for sharing!
I have been looking for the Cmotion trail script for a long time.


Thanks smearframe! By the way, here is another free software similar to annotatepro. It’s called Screen Marker and you can find it here ->


Some very cool stuff you’ve put together here, Felipe. It’s funny how much your customizations overlap with some of my own (I’m a huge fan of marking menus too).

Here are a couple more tools you didn’t mention that I’ve found pretty useful:

- TweenMachine

"The purpose of tweenMachine is to greatly simplify the process of creating breakdown poses between key poses. How exactly does it do that? Well, say you’re creating poses for your character with stepped keys, and you want to make a breakdown pose between key poses you have created on frames 1 and 10. You want this breakdown pose to rest on frame 7, but you want it to be the equivalent of the pose at frame 3 if the interpolation were linear…

…With tweenMachine, you adust the slider and see the results immediately…and you don’t even have to select any controls. Just create a custom set that controls the entire character, and adjust the set’s slider to tweak the pose. But that’s just the beginning of tweenMachine’s capabilities."

  • abxPicker

“abxPicker provides artists, animators, and character TDs with an intuitive interface for creating and using custom character control interfaces. Using drag and drop, you can create, position, resize, and edit buttons to select character controls.”

I also recently wrote a script along the lines of animTools (I’ve never actually used it or tradigitools so I’m assuming) that you can find here, if interested:

It’s got retiming as well as animation curve cleanup and conversion tools (moving from stepped to spline). It’s also got a useful feature where you can select a bunch of related control curves (like the low, mid, and high spine controls) from lowest to highest, run the script, and have their animation curves colored dark to light (x channels move from dark red to light red, y from dark green to light green, etc) based on the selection order. Then when you’ve got all three control curves selected at once you can tell which animation curves go with which control at a glance.

Ok, that’s enough of that plug. Anyway, thanks for the post. It’s always interesting to see how others approach this stuff.


Great stuff Brendan! Thanks a lot for your post. I’m trying them now, nice! Take care man.


Happy to see people are getting some use out of that breakdown script I created, and your icon is waaaaay better than mine :arteest:mind if I use it?

Thanks for posting all those useful tools Felipe, I already use a lot of them but there are a couple that I seem to have missed which look like good time savers.

I’d also recommend:

  • SnapMe For even faster Snapping ability (gives the ability to just press Ctrl + Alt + w/e/r)
  • FloatingWindow - Allows me to view controls through a camera and place it wherever I want on screen

I’ll update with more when I find them :slight_smile: thanks for starting this.


Thanks Josh!

Versão em português desse thread no 3d4all:


[b]Grease Pencil Tool For Maya 0.1.1

GPencilTool is a tool that allows you to draw directly in the viewport.
It’s composed of a context that allows you to draw and a locator that
it save all data the scene, so you can close and open your scene without
lost any draw.


This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.