Better Accents on Qwerty Layout

A lot of countries have their own keyboard layouts for special characters and accents.
France for example has the AZERTY layout… certainly one of the worst of all with an accent acting as a dead key (^¨) and some other times with hardkeyed letters with accents (éèàç and even the ù which exists in one and only ONE word in French).
This is not logical and very badly thought out, as well as a complete waste of space.

In summary Azerty comes with:

  • the A and W switched with Q and Z
  • the M on the second row next to the L
  • the top row numbers activated with shift
  • a lot of special characters switched all around
  • some keys blocked by diacritic characters (éèàçù)

And even worse:

  • the numerous bugs in tons of programs because of all that
  • and let’s not forget all the weird shortcuts…
  • and let’s not talk about the accentuated capitals…

Azerty is very bad all around, and one way to fix it… is to switch to Qwerty!
Yup, Qwerty is vastly superior, period. It’s way easier to do accents and your experience will be a lot better overall.1

Read More

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.

Read More

Improve Maya Startup and Shutdown Times

Since Maya 2016, it launches with a set of at least 3 acwebbrowser.exe process. Besides all the fuss it creates in the task manager and resource hog it can be, it can also slow down Maya startup and shutdown times by more than 200%, up to 30 seconds each time! Those process are some chromium engines that connect to the web for different tasks, especially regarding registration. Quite a useless thing to wait for each time you start Maya if you ask me.
Messing with the install files is a bad idea as it will probably prevent Maya from launching, it’s much more easy to disable that beaviour by setting this simple environment variable MAYA_DISABLE_CLIC_IPM to 1.

If you have no internet connection or if you are in a huge studio with tons of artists using Maya, it will surely make a huge difference!

If you want to improve the shutdown time even more, set the other environment variable MAYA_DISABLE_CER to 1.
Each time Maya quits, it requests a connection to Amazon web services (AWS) for the Autodesk Customer Involvement Program, adding 30 seconds of stupidity in some worst cases.


If you are on Windows, you could also disable the console window that appears for each Maya instance. It’s a good debug tool so keep in mind that you’d may have to reenable it in case you encounter a problem, but I feel it is way more pleasant without that window polluting the workplace. To do that just set the environment variable MAYA_NO_CONSOLE_WINDOW to 1. There is no need for that on Linux or Mac because they have a real terminal.

And dont forget about my other article regarding the performance of the VP2 viewport with MAYA_DISABLE_VP2_WHEN_POSSIBLE.

BUG Maya - Particles Emitting Fluids

A strange one that screwed some of my simulations. In Maya 20152016 if you emit fluid from particles with the lifespan mode set to Random range or rand() in lifespanPP, the particles don’t get killed if you emit the particles and the fluids at the same time, altering then your simulation.

The expectation | The reality
The expectation | The reality

Keep in mind that there isn’t any max count for the particles! It’s just limiting the max count by itself in a strange way. Some particles are killed but the majority aren’t.

The basic solution is to do the simulation in two steps, cache the particle while deactivating the fluids then do the simulation of the fluid.

You can open this .ma Maya scene to see the problem by yourself.

Tiled UV Textures, Viewports and UV Editor

If you are working in a multi-tiled UV textures environment, Autodesk introduced a way to manage that kind of setup in Maya 2015 for file nodes. It is compatible with the Zbrush, Mudbox, Mari way of setting the tiles plus a custom one.

It’s great and all, you can now see all your textures in the UV editor but sadly… there are some limitations, such as you can only view the textures with the Viewport 2.0 and not the faster, less buggy Legacy one. As you may already now, the Viewport 2.0 is not really usable yet outside of playblasting, modelling and shading, so it kinda defeat the whole purpose of the implementation of the tiled UVs.

You can “display” your textures in the Legacy Viewport by setting the Textured channel to “Combined Texture” in the “Hardware Texturing” section of the shader, but the result is really really bad.

Read More

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