Source code Q&A

Q: Who will benefit from this code?

A: Artists/TDs and aspiring artists/TDs, who want to learn how to use core Python, PyQt and/or Python for Maya/Houdini/Nuke.

Q: What level of knowledge do I need to have?

A: Basic knowledge of Python to be able to read the code and understand the comments.

You will also need basic knowledge of Maya/Houdini/Nuke to be able to test the code.

If you don't have any Python experience, I suggest the official Python tutorial - http://www.python.org/doc/

Q: What can I learn?

A: You will learn how to:

  • use core Python to:

  • use modules

  • save files

  • read and parse files

  • use strings

  • use data structures like lists, dictionaries, tuples, and sets

  • find patterns using regular expressions

  • use exception handling

  • use PyQt to:

  • create dialog windows with a variety of controls

  • create menus and a status bar

  • subclass an existing controls to add custom behavior

  • connect one type of control to another (e.g. - connect a textbox to a slider)

  • process menu actions and button actions

  • use stylesheets

  • simulate float values

  • get around the restrictions set by PyQt's event handling mechanism

  • use Python for Maya to:

  • create shelf tools, which call Python modules

  • determine the number and type of selected objects

  • create dialogs and retrieve user input

  • retrieve scene settings and node properties

  • set scene settings and node properties

  • read and write to files

  • create new nodes

  • determine which channels are animated

  • call MEL commands and retrieve their output using Python

  • use Python for Houdini to:

  • create custom shelf tools

  • connect a shelf tool to a PyQt user interface

  • create and delete nodes or networks

  • set node/network flags

  • change focus to a specific node or parameter folder

  • work with selections

  • clean up 'orphaned' nodes/networks

  • create a variety of spare parameters in folders and sub-folders

  • use a spare parameter to enable/disable other spare parameters

  • connect spare parameters to node channels

  • create expressions using formulas and channel references

  • call HScript commands and retrieve their output using Python

  • create dialog windows with a variety of message types

  • open a help browser window and load a helpcard

  • determine which channels are animated

  • retrieve scene settings and node properties

  • set scene settings and node properties

  • re-arrange nodes

  • create keyframes

  • create CHOP networks and read external files

  • convert Maya settings like aperture and shutter angle

    • use Python for Nuke to:

    • create a custom shelf

    • create nodes

    • read and set node attributes

    • determine which channels are animated

    • keyframe channels

    • create dialogs and retrieve user input

Note: Set Tab to 4 spaces in your code editor.