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.