Wednesday, December 18, 2013

Scene Optimizer

In order to keep our Maya scenes clean and free of common errors to avoid delays in the production, we needed to create a new tool that could check and automatically fix most of this problems.

So, the scene optimizer was born:

In this first version it did the job and did it well, yet it took too much time, (too many loops cycling trough all the nodes in the scene), so we had to optimize the optimizer.

V2 Arrived:

It might look smaller but it has 10 times more power!

Rewritten code that allows many cycles to be avoided.

Changed to commands that allow to process multiple objects at a time.

Removed unnecessary checks for the new version of RenderMan Studio.

Converting some of the checks and fixes to other tools.

Denying the artist to Publish using Shotgun or save the file if it still have errors.

New checks and fixes added.

Obligatory check of some of the functions and optional for others.

What does it check?
In general:
  • That every object is grouped where it belongs (meshes with meshes, joints with joints, etc).
  • That every node has a unique and irrepeatable name.
  • That all the meshes are correctly visible in render times.
  • There are no image planes left in the scene.
  • The project has to be set in the correct path.
In modeling:
  • Meshes has no history left.
  • No color sets from Zbrush.
  • Just a single UVSet, if more then copied to the main set and deleted.
  • No locked normals from Zbrush or Topogun.
  • Nothing has shaders or textures or extra nodes that affect render.
In animation:
  • That every key is has not a stepped tangent or that keys are really close to each other.

The next step for this tool is to combine it with others we already have, like the one that checks for interpenetrations between the meshes: