The guide is based on What’s New in the Maya Devkit in Maya 2024 with some extra info. For more details including commands and scripts changes, please checkout the documentation for more details.
Building environments
In Maya 2024, we made significent changes on the building environment. The minimum supported version of CMake has been updated to 3.22.1.
Platform | OS | Building Environment |
---|---|---|
Windows | - | Visual studio 2022, .NET 4.8.1 |
Linux | RHEL 8.6+ | DTS-11 + gcc 11.2.1 |
Mac | - | Xcode 13.4+, macOS 11(Big Sur) and Python 3.10.6 |
If you are working with MFnAnimCurve::evaluate(), MFnAnimCurve::addKey(), MFnAnimCurve or using glFunctionTable, you’ll need to check the update document. There are some changes for these classes may break your plugin.
Python API Changes
- Python API 2.0 now includes MFnAssembly.
- Python hash support has been added to MObjectHandle. Objects of type MObjectHandle can now be used as keys in Python containers that require hashing.
New build instructions for Apple Silicon machines running the Mac UB2 build
You’ll need to specify building platform on Apple Silicon. e.g., to generate Intel86_64 binaries use:
cmake -H. -Bbuild -G Xcode -DCMAKE_OSX_ARCHITECTURES=x86_64
And to generate binaries for both Intel86_64 and arm64 use:
cmake -H. -Bbuild -G Xcode -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"
Devkit changes
- Each Qt example is now located in its own directory under the plug-ins directory
- Fixed a bug in cvColorNode
- The apiMeshShape example has been updated to use OpenGL. It provides information on how to migrate your code to use OpenGL calls instead of glFunctionTable.
API Changes
- A bug in the evaluate() and addKey() methods of MFnAnimCurve caused MTime to be handled as ticks instead of time has been fixed.
- MDisplayLayerMessage registers callbacks for display layer membership changes.
- MFnDisplayLayer is the function set for querying the contents of a display layer.
- MFnDisplayLayerManager is the function set used to query which display layer a Ufe item is a member of.
- inAlternateContext() and doExitRegion() added to MPxContext.
inAlternateContext() returns true when an alternate context is active. doExitRegion() is called when the mouse exits the viewport. - indexMapper() and envelopeWeights() added to MPxDeformerNode.
indexMapper() returns the indexMapper of the deformer, and envelopeWeights() returns the deformer’s envelope weights, which are a combination of painted weights and falloff weights. - indexMapper() has been added to MPxGeometryFilter.
- setOverrideBlendState() added to MUIDrawManager. setOverrideBlendState() lets you specify a new blend state to override the default blend state of the UI painter. It applies to mesh-like UI objects, not text or icons.
- lastEvaluatedOnGPU() added to MPxGPUDeformer. This method returns true if the previous evaluation of this node was on the GPU.
- isExactlyEqual() added to MPlug. This method is used to compare multi-indices instead of the == and != operators.
- balanceTransformation() has been added to MFnTransform. This method balances a transformation when applying a world matrix to a joint.
- isHideOnPlayback(), setHideOnPlayback(), setDrawLast() and isDrawLast(), have been added to MRenderItem.
- getDisplayStyleOfAllViewports() has been added to MHWRender::MFrameContext. This method returns the union of the display style of all active visible 3d viewports.
- Four const method has been added to MPxGPUStandardDeformer, multiIndex(), inputPlug(), indexMapper(), passThroughWithZeroEnvelope()
- k119_88FPS has been added to the MTime::Unit enum. It corresponds to a framerate of 119fps.
- kPolyUnsubdivide, kOpaqueAttribute types are added to MFn.
- MSelectInfo, MPxSurfaceShapeUI are deprecated.
Comments
You can follow this conversation by subscribing to the comment feed for this post.