Improve Maya Usability


Following my previous article regarding startup and shutdown time of Maya, I will share some of my workplace tips I use in Maya. Some are just personal preferences, but others fix some nasty old bugs, increase stability or speed and you should just plain use them.

Disable the Load/Save UI layout from scene

This is quite important and would urge you to do it. This functionality can be quite handy but it is a very bad idea to use it, it can lead to crashes, slow opening times, and scenes impossible to open… unless you deactivate it in the preferences. It can feel frustrating not to use it at first but I can assure you will enjoy it pretty soon!

A good habit is to actually create some custom layouts independently of scenes. Open a new Maya session, organise your layout and panels, and save it! Especially since Maya 2017 with the new workspace feature. For users using previous versions, the layout feature is bugged and it won’t save any floating window outside of the main Maya window. Another solution is to script your layouts and open floating windows with a click of a button. Probably best to use a bit of both solutions.

Is is even better than the “retrieve UI from file” because you are able to work directly with the layout you are used to, instead of the one the last artist saved the scene with. It can also load the scenes WAY faster and it is more reliable.

Disable All Plugins Auto-load

Pretty straightforward, I added a little script at the end of the article to do it automatically for all of them. It can speed up immensely the startup and the everyday use of Maya. Don’t forget to reactivate all the ones you really need, when you open a Maya scene it automatically loads the ones it needs.

Restart Maya At Least Once A Day

I can’t believe that I have to actually say that. It’s not meant to be used for consecutive days without being reset at a point, it can lead to a corrupt state and do crazy unreliable things.
Funny story, I once had an artist that couldn’t find its work on the network, it was always showing the one from the previous week. After some research in the asset manager nothing was wrong anywhere… the problem was that the artist didn’t restart Maya in more than a week! Maya was so messed up that it was saving to nowhere. A week worth of work for nothing.

If a scene takes a very long time to open and your studio use your computer process during the night for renders, all you could do is save your work at the end of the day and quit Maya, then let it take all night to open your scene in a new and clean Maya session… or just go to the coffee machine :D

Activate Infinite Undo

Some animators reported to me that they ended up having bad performances with this after a while, but I doubt that’s a problem nowadays. If you feel like it’s a resource hug, just create a button to flush the undo queue: cmds.flushUndo()

Activate Incremental Save

With that option each time you save your scene it will create a copy and version it in a subfolder. This way you will have the last X versions of your scene file. You still need to version it with another way, but it’s a good way to secure your most recent work and add a layer of security. See your main file versions as big steps in your work and incremental saves as your most recent versions.

It may be useless or even a bad thing to use depending of how your asset manager is made, check with your favourite TD beforehand. To activate it, you can find it in the options of File > Save Scene.

Increase The Number Of Last Open Files History

This one is pretty basic, just because we usually open a lot of different files. Don’t forget you can invoke the recent files by right clicking on the open icon instead of going into the main menu.

Dock The Script Editor Window

You can actually make every Maya window as a docking window. You can then integrate it on the side with the attribute editor or share the space with a viewport for example. Owen Burgess already made a great article about that.

This tip is not useful anymore since Maya 2018 and its fully dockable UI.

Activate Command Ports

Command Ports let you send and receive information from other programs. One great way to develop is to get rid of the script editor altogether, to write your script and “execute” it from another software. This way you get all advantages of your favourite editor and it’s so much comfortable to use.

My Minimal UI
My Minimal UI

This little script to be put in your userSetup.py will set everything automatically the first time Maya launches, or when preferences are erased. This way you don’t have to think twice about deleting them and having to reset everything again.

if not cmds.optionVar(exists="firstLaunch"):
    # Force Auto load all plugins to False
    pluginList = cmds.pluginInfo(query=True, listPlugins=True) or []
    for plugin in pluginList:
        cmds.pluginInfo(plugin, edit=True, autoload=False)

    cmds.undoInfo(state=True, infinity=True)
    cmds.optionVar(iv=("useSaveScenePanelConfig", 0))  # Disable the Save UI layout from scene
    cmds.optionVar(iv=("useScenePanelConfig", 0))  # Disable the Load UI layout from scene
    cmds.optionVar(iv=("undoIsInfinite", 1))
    cmds.optionVar(iv=("isIncrementalSaveEnabled", 1))
    cmds.optionVar(iv=("RecentBackupsMaxSize", 10 ))
    cmds.optionVar(iv=("RecentFilesMaxSize", 10))
    cmds.optionVar(iv=("RecentProjectsMaxSize", 10))
    cmds.optionVar(iv=("firstLaunch", 1))

try:
    cmds.commandPort(name=":7001", sourceType='mel')
    cmds.commandPort(name=":7002", sourceType='python')
except RuntimeError:
    pass