Author Archives: cabot364

A simple fly rig

The shot I am currently working on calls for an annoying little fly. I thought about just using a black sphere, but in thinking about it, I felt a fly might be something that I’d use again in the future… I also recall seeing a number of animations out in the wild that involved a pesky insect. So I took the extra time to make an appealing, easy to animate little fella to share with you all. (Download link is at the bottom of this post)


He only has the one control. This control is used to move him throughout the scene, but it also has a few attributes on it for animating the wings.



With Auto Flap turned on, the wings will flap on their own at the speed indicated in Flap Speed. When Auto Flap is turned off, the wings are controlled manually with the Flap attribute. This allows you to easily key between automatic flapping and manual flapping. I did a quick test animation. At the end, when the fly lands, is an example of where I switched from auto flapping to manual flapping.

The next time you find yourself needing a fly for your shot, give this guy a try!

Happiness is a scriptNode

Maya’s Definition of a scriptNode:

scriptNodes contain scripts that are executed when a file is loaded or when the script node is deleted.

Steve’s Definition of a scriptNode:

scriptNodes are the equivalent of coming home after a long day to find the dinner table set and food waiting for you.

You might think, “I’m not a TD, I don’t work with MEL, why should I care about scriptNodes? What is he talking about?”

Well, let me make it plain. When I work in Maya, I tend to setup my workspace a specific way. I have certain tools that I use time and time again and I like to have them easily accessible and ready to go.  This is my preferred setup:


Sure we have shelves, and they are great, but I’d be lying if I said I didn’t feel a certain amount of angst about having to re-open and locate my tools every time I open my scene. This is highlighted when Maya crashes. My blood is boiling and upon opening Maya back up and realizing that I need to setup my workspace again, I get eye twitches.

During one of my fits of rage I realized that my shelf buttons are simply calling bits of MEL script when they are clicked. Wouldn’t it be nice if I could have those scripts run automatically when my scene opens? Enter scriptNodes.

I will create a scriptNode that opens all of my tools when I load my scene file. 

Step #1 – Create a new scriptnode

Create a NEW SCENE in Maya (this will allow you, in the future, to import the scriptNode into other projects/scenes without having to rebuild it for each one)

Click on Window > Animation Editors > Expression Editor

This will bring up the Expression Editor, at which point you will want to  click on ‘Select Filter’ and choose ‘By Script Node name’

Name your scriptNode and then click on ‘New Script Node’


Be sure that Open/Close is selected on the ‘Execute On’ dropdown. This will tell the scriptNode to run when the file is opened.

The Script section is where you will be writing the scripts that will be executed by the scriptNode. So how do we figure out what we need to write here?

Step #2 – Gathering and entering scripts

**as of today I have yet to figure out how to make scriptNodes work with Python code. When I find a solution I will update this tutorial.**

Right now you probably open your tools with your shelf buttons. I mentioned above that a shelf button is simply running a script when it is pressed. So we can steal the script from the button and copy it into our scriptNode.

Right click on the shelf button for the tool you wish to add to the scriptNode. Select ‘Edit’


The window that pops up now should contain the code. Copy and paste that code into the ‘Script’ section of your scriptNode in the Expression Editor. 

Repeat this process, pasting the new code directly after the first code in the scriptNode until you have all of your tools added. When you are finished, close the Expression Editor and save your scene.

That’s it! When you start your next project, import your scriptNode scene into the scene you are working on and save. From then on, your tools will be there waiting for you!

It is useful to note that since a scriptNode can accept any MEL script, there really is no limit to how much you can improve your workflow with scriptNodes and a little creativity.

Useful Extras:

There are some UI elements you may wish to open with your scriptNode but they don’t have a shelf button and therefore, you don’t know what the MEL code is. I have put a few common and useful ones below.

Graph Editor:
tearOffPanel “Graph Editor” “graphEditorPanel” true;

tearOffPanel “Hypershade” “hyperShadePanel” true;

Outliner Window:
tearOffPanel “Outliner” “outlinerPanel” false;

Adding teary eyes to your character

I’ve developed a way of adding teary eyes to your character rigs to help squeeze out that extra bit of emotion in your shots. This tutorial is a bit advanced, but if you’re not in tears by the end of it, your character will be.

I created this tutorial using Aia from Animation Mentor. The process and methods are applicable not only to other AM rigs, but also many of the free rigs out there that have eyes.

This is what we’re going for:


Continue reading

Bishop Eye and Jaw Script

I remember the first time I got to animate with Bishop, I was super excited! He continues to be a really fun rig to animate with. I was however always frustrated in the way the controls were setup, specifically for the eyes and the mouth. All was well and good while blocking, but when it came time to re-time, spline, polish, etc it was a nightmare.

The issue: The Lid Shapes and Eye Translates are on the same control.
Bask in the horror of trying to re-time an eye dart without affecting the blink.

The issue: The Mouth Shapes and Jaw Translates are on the same control
My head hurts


The Solution: Split these controls up. Give the Lid Shapes their own, the Mouth Shapes their own, the Jaw Transalte it’s own, the Eye translates their own.


So how do you do that?

The Good News: I’ve done it for you. By OPENING (not referencing) your Bishop file and running this script, these issues will be a thing of the past. Once the script has run, save your file and you can reference Bishops like you always have, but now with this improved workflow.