What's New in API in Maya 2019

Building plug-ins and applications

Applications and plug-ins are now built using the cmake tool. When building a plug-in or application, cmake must be called twice: once to create a makefile, and a second time to build the application or plug-in using the makefile.

CMake is available to download from https://cmake.org/download/.

New MacOSX Python version and impact on environment variables

The embedded version of Python on MacOSX has been updated to Python 2.7.15.

Maya now sets the SSL_CERT_FILE environment variable to point to the cert.pem file within its embedded Python Framework if SSL_CERT_FILE is unset.

To keep SSL_CERT_FILE unset, the MAYA_DO_NOT_SET_SSL_CERT_FILE environment variable must be set to 1 before launching Maya.

Rendering and Lighting

MPxGeometryOverride class updates

Updates to the MPxGeometryOverride class include the following new methods:

The MPyMPxGeometryOverride class in the Python API also includes these new methods.

MRenderItem class updates

When a 3D model view activates Isolate Select for components, Viewport 2.0 creates and maintains necessary render items to represent the drawing of the isolate selected components specifically for that view. These render items are copies of their original items and so they have the same properties including name, type, primitive type, and draw mode. However, their shading components are filtered from the view selected set of that view.

New methods have been added to allow custom render items created in a MPxGeometryOverride implementation to have their copies created for the drawing of isolate selected components. They also provide access of the view-selected shading components so that the MPxGeometryOverride implementation can fill in geometries properly.

These new methods include:

The apiMeshShape example plugin has been updated to use these new methods.

The Python API also includes these changes.

New MColorManagementNodes class updates

The MColorManagementNodes C++ API class has been added that allows you to manipulate color managed nodes; for example: you can color manage one or all input nodes, and query whether an object is color manageable or color managed. A colorManageAllNodes flag has also been added to the colorManagementPrefs MEL/Python command.

MHardwareRenderer class updates

The following methods have been deprecated:

New and updated examples

Evaluation and Performance

MFnDependencyNode class updates

New methods added to the MFnDependencyNode class let you set and manage which nodes have permission to be scheduled for evaluation by the evaluation graph. Nodes that do not have permission for evaluation can be created and destroyed without invalidating the evaluation graph.

The Python API also includes these new methods. See the MPyMFnDependencyNode class.

MGraphEditorInfo class updates

Added the following new methods to the MGraphEditorInfo class:

MProfiler class updates

New MPxCacheConfigRuleFilter and MCacheConfigRuleRegistry classes

A new MPxCacheConfigRuleFilter class lets you define custom configuration rule filters for background evaluation caching. The new class includes the following methods:

A new MCacheConfigRuleRegistry class includes a static method for registering and deregistering MPxCacheConfigRuleFilter custom classes.

A new nameFilter/NameFilter.cpp example demonstrates how to create custom configuration rule filters.

General and Modeling

MUIDrawManager class updates

Updates to the MUIDrawManager include the following:

The Python API also includes these methods. See the pyUiDrawManager.py class.

Updates to the uiDrawManager example plugin in the Maya devkit include the new methods.

New MCameraMessage class

A new MCameraMessage class lets you register callbacks for interactive camera manipulation messages. To remove a callback use MMessage::removeCallback(). Note that all callbacks registered by a plug-in must be removed by that plug-in when it is unloaded. Failure to do so will result in a fatal error. The Python API has also been updated with these new methods. See the MPyMCameraMessage class.

A new cameraMessageCmd/cameraMessageCmd.cpp plug-in example demonstrates how to use each of the new camera manipulation callbacks.

MFnMesh class updates

A new version of the MFnMesh::create() method now stores vertices in doubles and allows edge connections.

The OpenMaya.MFnMesh.create () method in the Python API has also been updated with this improvement.

MFn class updates

Added new kPinToGeometryUV and kPinToGeometryProx enums.

MPolyMessage class updates

Added the MPolyMessage::addColorSetChangedCallback() method to register a callback when ColorSetChanged is modified.

Added the following new enums to specify the type of color set change message:

The Python API has also been updated to include these changes.

MGlobal class updates

Updates to the MGlobal class include the addition of the MGlobal::executeTaskOnIdle() method. Use this method to execute a customized task to execute on the next idle event. This is a thread safe way to schedule a task for the main thread to execute. This method is not available in Python.

MMessage class updates

Added the MMessage::stopRegisteringCallableScript() method. Use this method to stop the MMessage object from being passed.

M3dView class updates

The following methods are deprecated:

Other API updates