Title Image

Maya Python API (Vol. 2)

Level:
Intermediate
Software:
Maya (2017+, 2020 for some examples)
Language:
Python
Duration:
5 hours 42 minutes
Instructor:
Chris Zurbrigg

Become a Patron!

Overview

Building on the fundamentals learned in Vol. 1, this course takes a deep dive into several major sections of the Maya Python API including: Deformers, Callbacks, Contexts and more...

Streaming: This course is available to Total Access subscribers on Patreon

Download: This course is available for purchase on Gumroad

Course Outline

27 Videos (5 hours 42 minutes)

00 - Introduction

A high level overview of what is upcoming in the second volume of the Maya Python API series.

01 - Deformer Basics (Part 01)

An overview of deformer nodes and the requirements (and limitations) when writing custom deformer nodes using the Maya Python API.

02 - Deformer Basics (Part 02)

A simple deformer node example that covers, in detail, each of the steps required to create a custom deformer node.

03 - Deformer Basics (Part 03)

Continuing on from the previous lesson, the simple deformer node class is created, extending MPxDeformerNode, and registered with the plug-in.

04 - Deformer Basics (Part 04)

Wrapping up the simple deformer node example, custom logic for deforming the input geometry is implemented.

05 - Blend Deformer (Part 1)

A practical deformer node example that demonstrates how to setup and access attributes, leverage the weight values stored for each vertex and automate the testing process.

06 - Blend Deformer (Part 2)

Building on the previous lesson, the BlendDeformerNode's deform() method is implemented with support for global blend weighting.

07 - Blend Deformer (Part 3)

Wrapping up the BlendDeformerNode, per vertex weighting is added to the deform() method and support for weight painting, using Maya's Paint Attribute tool, is enabled.

08 - Attract Deformer

In this lesson, an attract deformer is created that uses the position of a target object to "pull" the vertices from a polygon mesh to that position.

09 - Optimizing the Attract Deformer

Improving on the original attract deformer implementation, a small refactoring of the code can result in a significant performance improvement.

10 - Accessory Nodes

An introduction to accessory nodes and how then can be used to visualize or manipulate the attributes of a deformer node.

11 - Callbacks (Part 1)

A detailed look at Maya API callbacks -- what they are and how then can be used to execute code based on different events that occur in Maya.

12 - Callbacks (Part 2)

A step-by-step example demonstrating how to register and deregister callbacks in Maya and a look at the global events available in the MEventMessage class.

13 - Callbacks (Part 3)

Building on the previous example, this lesson demonstrates how to add callbacks for scene events, UI events, state changes, timers and more.

14 - Traversing the DAG (Part 1)

An overview of Maya's directed acyclic graph (DAG) and the different methods available for traversing DAG nodes using the API.

15 - Traversing the DAG (Part 2)

In this lesson, several detailed examples are used to illustrate the different methods for traversing DAG nodes and the specific use cases for each.

16 - Contexts (Part 1)

An introduction to Contexts -- what they are, how they are implemented and limitation with the Maya Python API 2.0.

17 - Contexts (Part 2)

A simple Context plugin example designed to introduce viewers to the MPxContext class and the methods available for drawing, executing commands and modifying the selection. This example requires Maya 2020 or newer.

18 - Contexts (Part 3)

Continuing on from the previous lesson, this video completes the SimpleContext plugin by implementing and registering the SimpleContextCmd class.

19 - Contexts (Part 4)

Using the completed SimpleContext plugin, this lesson outlines the steps required to test a custom context and adds a custom icon for display in Maya's Tool Box.

20 - Custom Select Context (Part 1)

A practical context example that implements a marquee selection tool -- demonstrating how to draw in the viewport and modify the current selection. This example requires Maya 2020 or newer.

21 - Custom Select Context (Part 2)

Wrapping up the custom select context example, this lesson implements the selection logic and discusses some of the potential pitfalls that may be encountered.

22 - Joint Create Context (Part 1)

A multi-step context example demonstrating how to create a tool that replaces selected objects with a joint chain using the Maya Python API 2.0. This example requires Maya 2020 or newer.

23 - Joint Create Context (Part 2)

With multi-step contexts it essential that the tool setup correctly initializes the first stage and that each step in the process is clearly communicated to the user.

24 - Joint Create Context (Part 3)

In this lesson, the remaining logic for the joint create context is implemented, support for actions is added and a few of the tool's limitations are highlighted.

25 - Pipeline Tips: End-User Testing

There comes a time during development when it is necessary to stop testing as a developer and start testing like an end-user. Find out what this means and why it is so important.

26 - Draw Persistence in Contexts

A common area of confusion with custom contexts is that of draw persistence -- how long and under what conditions data drawn to the viewport remains visible.

Related Courses