The following page will give you a quick overview of the MAXScript language changes and improvements in 3ds Max 2012. For details on each feature, please follow the links to the respective documentation pages.
For a list of changes made to the MAXScript Reference itself besides documenting new feature, see Documentation Changes in 3ds Max 2012.
The NitrousGraphicsManager Core Interface exposes the controls of the new viewports graphics manager to MAXScript. In addition, it provides script-only access to all parameters of all Non-Photorealistic Rendering styles which are not exposed to the 3ds Max User Interface yet. The topic also contains a fully functioning script example implementing the dynamic dialog generation from the exposed parameters including the options to save and load presets for each rendering style.
The OGSDiagnostics Core Interface provides a property to access a graphics hardware-related report.
The Interface : nvpx exposes the MassFX system settings to MAXScript.
The PhysXPanel : ReferenceTarget exposes the settings of the MassFX control panel and its controls to MAXScript.
The UConstraint : Helper is used to define constraints in the MassFX system.
The pxJoint : Helper object is used to define joints in the MassFX system.
The Skeleton : Helper object is used to introduce animated characters as Kinematic Skeleton objects to drive MassFX simulations.
The nvRagdoll : Helper is used to define a ragdoll rig in the MassFX system.
The MassFX_RBody : Modifier is used by the MassFX system to define the properties of a rigid body object.
The nvBox : GeometryClass is a dedicated geometry object used by the MassFX Rigid Body Modifier to define a custom box-shaped shell for physical simulation.
The nvCapsule : GeometryClass is a dedicated geometry object used by the MassFX Rigid Body Modifier to define a custom capsule-shaped shell for physical simulation.
The nvSphere : GeometryClass is a dedicated geometry object used by the MassFX Rigid Body Modifier to define a custom spherical shell for physical simulation.
The Birth_File : Helper implements the loading of particle simulations files in the Autodesk Maya Nucleus Particle Cache format saved out of Autodesk Softimage ICE.
The Substance textureMap exposes the Substance procedural 2D maps loader to MAXScript.
The SubstanceShader textureMap implements the mental ray shader of the Substance loader.
The Substance_Output textureMap serves as an output selector to the Substance textureMap - this allows you to connect a single Substance textureMap to multiple Substance_Output nodes in the Slate Material Editor to extract various outputs.
The max_vector displacement : textureMapclass exposes the Vector Displacement map used to load displacement data generated in Autodesk Mudbox.
The max_vdm : textureMap class implements the mental ray shader for rendering the Vector Displacement maps generated in Autodesk Mudbox.
The iRay_Renderer : RendererClass provides access to the iRay path tracer used for physically correct lighting simulation using the CPUs and any available GPUs.
The iRay String Options provide access to some advanced features currently not exposed to the renderer's User Interface.
The AutoTangentMan Core Interface provides access to the AutoTangent algorithm used by 3ds Max, including the new unified AutoTangent implementation found in Autodesk 3ds Max, Autodesk Maya and Autodesk Softimage.
The HelpSystem Core Interface provides access to the online and local product help systems.
The Quicksilver_Hardware_Renderer has been updated to use the new Nitrous Graphics System, resulting in significant changes to both the User Interface controls and the MAXScript exposure of the corresponding features.
The Unwrap_UVW Modifier has been significantly improved in 3ds Max 2012:
The ViewportSSB Interface is not available by default in 3ds Max 2012 because the Viewports are set to use the Nitrous Graphics System. You must switch the Viewports to the Direct3D driver to access this interface.
The properties .bounce , .staticFriction and .slidingFriction have been removed from the Standard Material due to the complete removal of the legacy Dynamics system introduced back in 3ds Max 2.
The following SpacewarpObjects have been removed from 3ds Max 2012 due to the complete removal of the legacy Dynamics system introduced back in 3ds Max 2:
All reactor interfaces, modifiers and objects have been removed from 3ds Max 2012 due to the complete removal of the reactor dynamics system introduced back in 3ds Max 5.
To reduce the initial memory footprint and to speed up the startup process, 3ds Max 2012 increases the number of plugins that can be deferred and loaded on demand.
Two new read-only properties - .dllName and .dllIsLoaded - have been added to maxClass to query the DLL it was defined in and to check whether that DLL has been already loaded.
MacroScripts are now processed on 3ds Max startup using multiple threads.
In previous versions, Custom Attribute definitions loaded from a file always replced the definitions in the scene. Starting with 3ds Max 2012, this will only happen if the version number of the definition from the loaded scene is higher than the current definition's version number. See this topic for implementation details.
To simplify localization of scripts, it is now possible to replace hard-coded strings with Resource IDs defined in external .res files.
The append() method is now implemented by the StringStream Value class, allowing for memory-efficient appending of a String value to an existing StringStream.
The free() method has been implemented since 3ds Max 9 but has remained undocumented. This method frees the memory used by the value without waiting for a garbage collection to occur. It is implemented for the following classes: String Value, StringStream Value, FileStream Value, BitMap Value, Array Value, BitArray Value, Mesh Value
A new on <rollout> help do() event handler can be specified in rollouts to handle F1 pressed while a rollout has focus.
The Caption contruction parameter of Rollouts and UI Controls used to be required as string literal, now it can be a non-local variable (global or top-level local variable in struct or plugin definitions)
Tooltops have been added to radiobutton user interface controls - either a single string for all labels, or one tooltip per label.
Several new Assert functions and an AssertReporter struct to manage their message log have been exposed to MAXScript and are now used internally by Autodesk for unit tests during the development of 3ds Max.
Several C Run-Time Debug Functions have been exposed to MAXScript and are provided as examples in the SDK. They are meant for hard-core programmers and allow the corrpution of the MAXScript Heap, the check for Heap validity and the generating of C-level asserts.
The previously broken methods GetEulerQuatAngleRatio() and GetMatQuatAngleRatio() documented in the EulerAngles Values topic have been fixed to output correct values using arrays, eulerAngles or by-reference variables.
The existing Viewport Drawing Methods must be wrapped in a Viewport Redraw Callback function when the Nitrous Graphics Manager is active. Otherwise the gw. methods will not be executed due to the progressive refinement approach used by the Nitrous system.