This topic will give you a quick overview of the MAXScript language changes and improvements in 3ds Max 2018. For details on each feature, please follow the links to the respective documentation pages.
Highlights
Materials, Shaders and Maps:You can now determine if a material (or any other MAXWrapper) is used in a scene using isUsedInScene(), and whether a material or texture is used in a material using isMtlUsedInSceneMtl().The Scene Material Library (sceneMaterials collection) can be forced to update using UpdateSceneMaterialLib(). In some cases this collection can get out of date and contain materials not currently used in the scene, such as when a node gets deleted.The DirectX_9_Shader now exposes the .parentMaterial property.The vector_map now exposes the .finiteResolution and .resType properties. |
Scripted Plug-ins: Scripted Plug-ins now support new parameter types of #paramBlock2 and #point2. Scripted Plug-ins now support new parameter event handlers preSet and postSet that are guaranteed to use the original and new parameter value respectively. Scripted MAXtoA plug-ins can now be created for Arnold nodes. | TrackView:There are new filter flags for TrackView: #activeLayer and #unlockedTracks. There is a new method to test flags, testFilter() .The Mixin Interface trackviews.current.ui now exposes the getToolbarObjectName method to retrieve the non-localized toolbar name. By contrast, the getToolbarName method returns a localized string. |
Geometry Objects Type-in Properties:The Keyboard Entry properties for several geometry objects are now exposed. These properties are now available for Box, C_Ext, ChamferBox, ChamferCyl, Cone, Cylinder, L_Ext, Prism, Pyramid, Sphere, Teapot, Torus, and Tube.The C_Ext and L_Ext now also define the .CenterCreate property which controls the offset of the mesh as though it had been created from its center. |
Chamfer Quad Intersection Mode: The following boolean properties have been added to control the quad intersection mode. Enabling this mode attempts to preserve the quad structure of the faces participating in the chamfered edges. Chamfer.quadIntersectionMode Edit_Poly.edgeChamferQuadIntersections Editable_Poly.edgeChamferQuadIntersections
|
BooleanClass Comparison: BooleanClass values can now be compared to Integer values, with 0 equivalent to false and all other values equivalent to true. |
This section covers enhancements and changes in 3ds Max 2018.2 Update.
Spline Enhancements | Several new objects and modifiers in the Spline Tools feature are exposed in MAXScript: FreehandSpline: Shape object Normalize_Spline2 modifier Path_Deform2 modifier Optimize_Spline modifier SplineInfluence modifier InfluenceHelper helper SplineRelax modifier SplineMorph modifier SplineOverlap modifier SplineMirror modifier |
Dump file creation | The systemTools struct now exposes some functions to control how dump files are created and what they contain. These are GenerateMiniDumpAndContinue() , SetMiniDumpContents() and SetBigMiniDumpContents() . |
Previously Undocumented Items | Several previously undocumented items are now documented: Box3 ValuesGlobal parameters in the Render Setup dialog: rendLockImageAspectRatio , rendImageAspectRatio , rendPixelAspectRatio , rendUseImgSeq , and rendImgSeqType .Functions for Controller Ease and Multiplier Curves: getMultiplierCurve() and getEaseCurve() .inverseHighPrecision() function for Matrix3 values.Body_Object conversion functions: convertToBody(), convertToJoinBodies(), and convertToBodyCutter().getCommandMode() function for the Edit_Poly modifier and interface Editable_Poly. |
This section covers enhancements and changes in 3ds Max 2018.3 Update.
Fluid Simulation | New objects that support fluid simulation are exposed in MAXScript: MaxLiquid : GeometryClass object LiquidSolver object |
This section covers enhancements and changes in 3ds Max 2018.4 Update.
Missing Path Monitor Cache | The new missing path monitor cache is exposed in MAXScript with the new missingPathCache interface. |
.NET Support | Improved support for conversion between C# and MAXScript values.Conversion for C# built-in type namesConversion for Point2, Point3, Point4, Quat, EulerAngles and Matrix3 to .NET arrays.See MAXScript / DotNet Value Conversions. |
MeshOp Methods | New methods in the MeshOp struct take list parameters: meshOp.getFace(), meshOp.getFaces() and meshOp.getVerts(). |
PolyOp Methods | New versions of existing methods in Editable_Poly that take lists instead of a single index, and return arrays:polyop.getEdgesVerts()polyop.getEdgesFaces()polyop.getFacesVerts()polyop.getFacesEdges()polyop.getVerts() |
PRT Export | Enhanced PRT file export for fluids is exposed in a new interface, PRTExport. |
Symbolic Path Names | A new symbolic path name #pageFile is added to match the system directory global $pageFile .Several path names and system directory names introduced in 3ds Max 2017 that were previously undocumented are now documented. |
3ds Max Batch | Some additions have been made to support the improved version of 3ds Max Batch introduced in this update:New quiet:<bool> and exitcode:<int> arguments to the quitMax() function.New mxsCmdLineArgs member of mxsOps contains a dictionary of values passed from 3dsmaxbatch.exe via the -mxsString and -mxsValue parameters. |
Callbacks | The callbacks.show() method has a new to:<stream> argument to specify a stream value that the method can send output to. |
Scene Converter | The SceneConverter interface has a new property and two new methods for dealing with missing legacy assets on file load or merge:sceneconverter.AutoRemoveMissingLegacyAssets``sceneconverter.GetMissingLegacyAssetsName()``sceneconverter.RemoveMissingLegacyAssetsFromScene()
|
mental ray and iray | By default, mental ray and iray are no longer installed with 3ds Max. All corresponding classes and interfaces have been removed, though the names have been reserved and appear as "undefined" if inspected with apropos() or showclass() . |
Ray and Matrix3 Values |
Ray Values and Maxtrix3 Values now support comparisons using the == and != operators. |
Try Expression |
Try expressions, You can now use getErrorSourceFileName() , getErrorSourceFileLine() , and getErrorSourceFileOffset() to obtain more information about the location of an error in a catch block. This can be useful if running external scripts via fileIn() . |
XRefScene Values | XRefScene has new parameters, root and owner, both of which return the owning root node for the XRefScene. |
A root node can now be coerced to an XRefScene value using <RootNode> as XRefScene . |
|
Alembic | AlembicFloat controller exposes the visibility track for imported Alembic objects. |
The Alembic_Export and Alembic_Import plugins now expose a .ShapeName boolean property to control whether or not the "Shape" string suffix is trimmed from imported and exported objects. |
|
Unwrap_UVW Modifer - Edit UVWs Floater | The addFloater() , ShowFloater() and DeleteFloater() methods for Unwrap_UVW are removed. |
Grid Helper | The Grid Helper now exposes the .activeColor and .displayPlane properties |
cui.RegisterDialogBar | The maxSize parameter for cui.RegisterDialogBox is deprecated and no longer has any effect on the dialog box size. |
maxops Core Interface | The maxops Core Interface now exposes the settings for Motion Paths (previously known as Trajectories in the user interface). |
The maxops Core Interface now also exposes the isRibbonSupportEnabled property to check if the ribbon has been deactivated. |
|
Exchange Store Package Manager Core Interface | The ExchangeStorePackageManager Core Interface now exposes the following method to process custom install directories based on a filepath: ProcessCustomInstallDirectory . |
HelpSystem Core Interface | HelpSystem Core Interface can now be used to open the Python and MaxScript help, and to open an arbitrary .CHM file on disk. |
AssetUser Mixin Interface | The AssetUser Mixin Interface now exposes the Reset method to relinquish its reference to the underlying asset. |
PFlow and CFD Simulation | The AirFlow_Node and AirFlow_Spline operators import CFD data for simulating air flows using Particle Flow. |
Icon made by Freepik from www.flaticon.com.