Channel Box and Selection Change

Back in March I wrote an article about a strange new behaviour in Maya 2014 and that the Channel Box now keeps the channel selection even if we change the object selection.

A welcomed change we were waiting for a long time… but it would also cause problems to some animators and their habits. Well, let’s praise because Autodesk have heard your prayers!

In Maya 2016 there is a new optionVar to tell Maya to clear the selection in the Channel Box after each selection. To do so just enter this command to set it, it is not available anywhere in the UI.

cmds.optionVar(iv=('ChannelBox_ClearSelectionOnObjectSelectionChange', 1))
optionVar -iv "ChannelBox_ClearSelectionOnObjectSelectionChange" 1

Viewport 2.0 and Performances

The viewport 2.0 has some really nice features like motion blur, ambient occlusion, anti aliasing but it’s still not really usable regarding performances and bugs. I have seen a performance loss around 30-40% even with the basic settings and wireframe mode.

But the worst is that even if you change all your viewport to the Legacy one, the performance loss is still very noticeable :

  • only legacy - 100%
  • activate viewport 2 - 70%
  • reuse legacy in all viewports - 87%

Since Maya 2015 the viewport 2.0 is activated by default, so if the user that worked on the scene previously has not changed its default viewport and if you load the UI settings from the scene, you may have some viewport 2.0 instances in the scene, even if your main viewport is in legacy mode.

Read More

loadReferenceDepth behaviour in Maya 2015

The command file -open -loadReferenceDepth “none” allows you to open your scene without any references loaded, it is very useful for debugging or just opening a scene faster and loading only what you need to for you to work.

But if you have opened your file with this command, there is a new behaviour in Maya 2015 regarding the loading of nested references after the initial loading of the scene.

  • Pre-2015, if you load a top reference with the Reference Manager, it will automatically load all the nested references inside it.
  • Starting with 2015, it won’t load the nested references, but will act the same way as the “topOnly” argument works. The nested references will have to be loaded manually, but this can lead to some problems in some setups (Remap Missing Namespace). One way to load the nested references automatically is to use the file -loadReference “yourRefRN” on the top one.

Sounds like a bug to me, but who knows?

For more information about the different ways of opening scenes, check this article by Owen Burgess on Maya Station.

Orthographic Cameras Far Far Away

The perspective and orthographic camera are not created in the same way. This is just a quick note about the difference at creation since it can be quite disturbing to some users.

Here is a little usecase:

  • First create a sphere, and change its scale to 3000.
  • Then create a perspective camera throught the viewport Panel menu.
  • Then create an orthographic camera throught the same menu.

Notice how your orthographic cameras are very very far away while the persp is just always at the same place ?

It is related to the viewSet command. The flags regarding the orthographic views always zoom out a lot to get a hold on all objects and make them visible to the users.

Yes, it is normal and nothing is wrong with your setup.

BUG Maya - Camera Aim and Anim Layers

A very old bug indeed, but I never heard of it before: If you use an anim layer on a camera with an aim, it will break it to some extent. You can still use it, but some functionalities may not behave correctly. By the way you can’t update a camera to a camera with aim if this camera already has an anim layer. It’s as simple as that, cameras with aim do not like anim layers.

How to reproduce

Create the camera with aim

$camera = `camera`;
cameraMakeNode 2 "";

If you try to get the lookAt node (aim) of the camera:

getCameraNode "lookAt" $camera[0];
// Result: camera1_group //

Now create the anim layer with the camera in it.

$animLayer = `animLayer`;
animLayer -edit -addSelectedObjects $animLayer;

If you haven’t noticed, your camera aim is broken in the viewport as soon as you added it to the anim layer.

And now if you try to get the lookAt node of the camera.

$lookAt = `getCameraNode "lookAt" $camera[0]`

It can’t retrieve the lookAt node.

Camera Before/After Anim Layer

Read More

Different Color Choosers in Maya

Do you remember when Autodesk Maya went from the old grey color picker to the new Qt one in Maya 2011? So much rage… that tiny window disappearing all the time was kinda frustrating on comparison to the old one.

Well, everybody may already know this but… but if you do a double-click on a color picker button instead of a single-click, it will bring this fantastic and usable window. Enjoy!

More over, if you drag and drop a color picker button, it will open the floating window where you dropped your click.

One last tip for the road, in Maya 2010 you could pick a color outside of Maya very easily, but now the pipette just don’t work outside Maya… in fact it works with a workaround: use the pipette on the Maya UI but don’t release your mouse, then unclick wherever you want outside of Maya and voila!

BUG Maya 2015 itemFilterAttr crash

There is a new bug in Maya 2015, if you try to create an itemFilterAttr with some filters like hidden, writable, readable, keyable, etc. in conjunction of the -byScript flag. It crashes regardless of the programming language used. MEL, maya.cmds and pymel even with the example given in the its documentation.

def procName(nodeName, attrName):
    return True
cmds.itemFilterAttr(keyable=True, byScript=procName)
global proc int procName(string $nodeName, string $attrName) {
    return 1;
itemFilterAttr -k 1 -bs procName;

The filterClass attribute of the itemFilterAttr is set to 0 (other) by default on 2014 while it is set to 2 (user) in 2015.

Maya UI and passing arguments to functions

Just a little reminder to get all the different ways of passing arguments from a native Maya UI. Just type anything and see the result in the text field at the bottom. You can see that when you use a class, the basics methods offered by Maya do not work.

Some methods are obviously better than others, personally I totally recommend the use functools.partial, it gives only advantages over the others. Pymel is great, but I personally don’t use it any more as some studios don’t support it—as well as Autodesk—and because I had some crash problems with it in batch mode in the past, and don’t forget the 2 seconds freeze from its first import.

The Qt (cute) framework is easily available since Maya 2011 switching to PySide in Maya 2014 but I will not cover those cases for now.

Read More

Turtle Artefacts

Turtle is a lighting and baking renderer originally developed by Illuminate Labs, available as a beta in June 2003 and released as 1.0 version the 31 June 2004. Predominantly used for fast baking textures in the game industry in conjunction with Beast, it is owned by Autodesk since July 2010 when they acquired the company Illuminate Labs.

It was first bundled with the 2011 Autodesk Maya Entertainment Creation Suite Premium, and then for everyone in Maya 2014 even though it seems to fall into abeyance… strange thing coming from Autodesk.

It can be very useful for ambient occlusion, it is much more faster and cleaner than mental ray… and clunky, especially when using the MEL commands. The documentation is incomplete and nearly non-existent.

One problem I stumbled across was those crazy artefacts you get sometimes when baking Ambient Occlusion. From what I have seen, those come when you try to bake several meshes with the same shaders or with separate UV shells AND if you try to bake in more than 2K.

Taken from this sadly very alone post. Others can be found here and here (which the user have found the solution, but does not say it, great) and here.

Read More

Recover animation from broken proxy managers

Sometimes the proxy managers in a scene will break and all the proxies will be spread out instead of being linked to a single reference.

Usually it’s better to go back to the last version of the scene since there is not a lot of changes between versions, but for this one, the last clean version was older than a week

Yes, one week. The scene was broken for more than a week, but the animator couldn’t see it because he never reopened its scene during that time. The status of Maya/the scene was unstable while the artist was working on it, and each time he saved, it was saved in that unstable state… thus why we couldn’t recover any version less than a week old.

So here I am with no proxy managers, no animation and a week of work vanished.

Read More