Project Summary

This was my final project for the 9 week course Learn Python Inside Maya by Geordie Martinez. For more info on the course, check: The assignment was to create a tool that could save/load curves in Maya. The tool should have its own API for easier access when scripting rigs, but also a separate user-interface with the ability to save a snapshot of the curve. The curve-data should be stored as a .pkl file.

Themes Covered

  • PySide
  • PyMel
  • pickle
  • JSON
  • Subprocesses
  • OpenMaya API
  • PIL

Goals Achieved

Throughout this project, I feel that I have gotten a better understanding of designing user interfaces in PySide. I have become more comfortable with file I/O in python, calling of subprocess, image manipulation through PIL and utilizing the OpenMaya API.

Furthermore, I was challenged to think about and expand the functions of a somewhat simple tool, making it more user-friendly and customizable.

One of the things I did to expand the tool was to develop the error handling of inputs, creating a more stable experience for the user and allowing more complex inputs (curves with multiple shape-nodes).

The tool now also supports both the proposed coloring-method of drawing-overrides, as well as newer method of the color-command, which gives a greater range of possiblities, while still allowing the end-user to create their own overrides.

The UI was made more customizable, allowing the tool to store settings in a .json file, and in that way work with different file-structures. It also allows the user to keep separate controller libraries in different locations, making it possible to create global setups shared across larger studios, but at the same time keeping personal libraries only used by one user.

For the mbImageConvert, I created the possiblity to store it at a different location, since it is not strictly a maya-tool, and therefore could be used in other applications as well.