This topic will give you a quick overview of the MAXScript language changes and improvements in 3ds Max 2019. For details on each feature, please follow the links to the respective documentation pages.
New additions to MAXScript in
3ds Max 2019 are marked with
NEW in 3ds Max 2019:... throughout the MAXScript Reference. The word
NEW links back to this page.
Viewport ActiveShade Mode |
The ActiveShadeFragmentManager Interface provides MAXScript access to the new viewport ActiveShade display mode. |
Custom Attribute Container Owner |
A new property is exposed on the custom attribute array returned by MAXWrapper.custattributes, .owner, that contains the owning object. |
Node Event System Changes |
Two new functions have been added to retrieve information about registered NodeEventCallbacks: getNodeEvents() and showNodeEvents(). A new handling option has been added to NodeEventCallbackValue, polling, which tells the system the callback can be triggered by the new triggerNodeEventCallback() function. The general event callback inspection function callbacks.show() now takes an optional asArray: keyword argument, which causes the output to be formatted as an array. |
3ds Max Process Information |
Three new functions have been added to the sysinfo struct to get information about the 3ds Max process, getMAXHandleCount(), getMAXUserObjectCount(), and getMAXGDIObjectCount(). |
Previously undocumented items |
|
Fluid Loader |
The FluidLoader class is now accessible and creatable in MAXScript. This class exposes the Fluid Loader Geometry object. |
Script Loading Detection |
The new getMaxscriptStartupState() function can be used to determine the loading state of standard and startup scripts. There is a new corresponding #preStartupScriptLoad event called immediately before the startup scripts are executed. |
Rendering UV Range of TextureMaps |
The renderMap() function has an additional range parameter to specify a UV range to render, and a new disableBitmapProxies parameter to disable the proxy system. |
Max Information |
|
Root Node User Properties |
The get/setUserProp/val/buffer(), deleteUerProp(), and doesUserPropExist() functions now recognize a special rootNode parameter, allowing access to the scene root node user properties. The parameter can also be the root node of an xref, which is held in the xref file .tree property. |
Adding Nodes via Layer Manager |
The LayerProperties interface has a new method, addNodes(), that works like addNode(), but takes an array of nodes, allowing you to add multiple nodes in a single call. |
SkinOps changes |
The SkinOps struct has two new functions: SetBoneWeights() and Hammer(). In addition, many functions that previously required that the modifier UI be selected, now take an optional node:<node> or name:<string> argument, which when supplied, is applied to the specified node even if it is not selected. |
Miscellaneous Changes |
|
Removed Items |
Synchronization mode related items that were removed from the Unwrap_UVW modifer in 3ds Max 2018.2 Update, have been removed from the documentation: setSyncSelectionMode(), getSyncSelectionMode(), syncTVSelection(), and syncGeomSelection(). |
Previously undocumented items |
|
File Archiving |
The File > Archive command is now exposed in MAXScript as archiveMAXFile(). |
XRefObject re-parenting |
The
xrefs.addNewXRefObject() method has a new
reparentAction parameter to specify how to handle xref re-parenting.
The objXRefts. addNewXRefObject() method has new flag bits to specify how to handle xref re-parenting. |
Improved version information |
The maxversion() function now returns the build number, and is consistent with the information returned from SystemTools.GetBuildNumber(). The SystemTools struct now has a new function, GetOSVersion(), to report the OS version that works with Windows 10. |
Node user-defined properties methods |
Two new methods provide better control over how user-defined node properties are stored and retrieved, getUserPropVal() and setUserPropVal(). The doesUserPropExist() method checks whether a user-defined node property exists, and deleteUserProp() removes a user-defined node property. |
Alembic Importer File Inspection Methods |
Several new methods have been added to the AlembicImport Import Plugin to expose Alembic file inspection functionality. |
FBX Exporter Animation Option |
The FBX Exporter has a new parameter option, "ExportAnimationOnly". |
Fluids |
The Volume helper object is exposed as the VolumeHelper : Helper class. |
Miscellaneous |
|
Previously undocumented items |
|
Advanced Wood |
The Advanced Wood procedural texture map is exposed as the Advanced_Wood : TextureMap map. |
OSL |
The Open Shading Language (OSL) is now supported in 3ds Max. There are many new OSL shaders available, and a generic OSLMap class that can be used to load or modify existing shaders, or create new ones. |
Shape Booleans |
The ShapeBooleanObject class exposes the functionality of the new Shape Booleans feature. |
Alembic Import and Export |
Improvements to the Alembic import and export plug-ins are exposed as new or changed properties and methods in Alembic_Import: Importer_Plugin and Alembic_Export: ExporterPlugin. |
Custom Scene File Data Streams |
You can now write and read custom data to 3ds Max scene files. In MAXScript this functionality is exposed by methods in:
|
Rollout Resizing Changes |
Rollouts and Rollout Floaters now support automatically re-calculating the layout when they are re-sized. This accommodate resizing when docked in the command panel, since command panel can now be arbitrarily sized. Changes include:
|
Stream parameter for peristents.show() |
The persistents.show() method has a new to:<stream> parameter to direct output to. |
deepCopy() changes |
The deepCopy() method now applies to Dictionaries, DataPairs, and Structures, as well as Arrays. It has been optimized to guarantee that if the copied object contains two references to a value, only one copy of that value is made. That is, the returned object contains two references to a single value, rather than two copies (which was the previous behavior). |
Documentation Enhancements |
The procedure for enabling autocomplete in the MAXScript Editor is now documented. |
Icon made by Freepik from www.flaticon.com.