What Was New in MAXScript in 3ds Max 2021 and Updates
This topic will give you a quick overview of the MAXScript language changes and improvements in 3ds Max 2021 and updates. For details on each feature, please follow the links to the respective documentation pages.
New in MAXScript in 3ds Max 2021.3 Update
|
|
Startup Script Loading |
The way Startup Scripts are loaded has changed. Scripts that have the hidden or system file attribute set, or are in a hidden or system folder (other than %LocalAppData% and %ProgramData%) are no longer loaded on startup. |
MAXScript Heap Size |
The initial MAXScript heap size allocation is increased from 15 MB to 100 MB, which can improve performance when the Ribbon is open. See Memory Allocation and Garbage Collection for more information. |
Viewport Bloom Settings |
Bloom settings are now exposed and documented in the ViewportViewSettingImpl
|
Quicksilver Renderer |
New exposure for Reflection and Bloom settings are covered under Quicksilver_Hardware_Renderer. |
Subdivide Modifiers |
The Subdivide modifier has three new remeshing algorithms, and this functionality is now exposed in the Subdivide:Modifier and subdivideSpacewarpModifier classes. |
PBR Importer |
New PBRImporter interface exposes some of the functionality of the PBR Importer feature. |
Callback information |
The callbacks.show() function now indicates when a callback definition is loaded from a scene file with SceneFileEmebedded:true|false
|
New in MAXScript in 3ds Max 2021.2 Update
|
|
Spline Chamfer Modifier |
The Spline_Chamfer : Modifier exposes the properties of the new spline chamfer modifier feature. |
Script execution function |
The executeScriptFile() function provides a way to execute a script file and return any error messages it might generate |
Previously Undocumented Items |
• autosave.BailoutEnabled() and autosave.autoBackupNow() are now documented in Interface: autosave. • Several missing properties, including ShadedRenderMode , are now documented under Interface: NitrousGraphicsManager. The topic has also been reorganized to reflect the updated UI. |
New in MAXScript in 3ds Max 2021.1 Update
|
|
Callback Management |
New functions allow you to enable or disable some callback types:Time change callbacks: timeCallbacksEnabled() , enableTimeCallbacks() , disableTimeCallbacks() Viewport redraw callbacks: redrawViewsCallbacksEnabled() , enableRedrawViewsCallbacks() , disableRedrawViewsCallbacks() Selection filter callbacks: selectFilterCallbacksEnabled() , enableSelectFilterCallbacks() , disableSelectFilterCallbacks() Display filter callbacks:displayFilterCallbacksEnabled() , enableDisplayFilterCallbacks() , disableDisplayFilterCallbacks()
|
Bake To Texture |
The BakeToTexture : UtilityPlugin interface has new members to support additional features:alwaysSkipExistingFiles``getOutputTo() / setOutputTo()``getNewMaterial()``getTargetMaterialSlots()``clearShellKeepBaked() / clearShellKeepOriginal() The BakeToTextureMap interface has new members:UDIMEnabled``UDIMFilePattern``getTargetMapSlot()``setTargetMapSlot() The callback that can be registered with BakeToTexture.bake() is now called after every successful baked file is saved, now that the Bake To Texture feature supports formats with multiple files (such as animated maps or UDIM tiles). |
Default Parameter Management |
A new interface allows you to define defaults for parameters: DefaultParamInterface. |
Controlling UI Focus and Foreground |
The setFocus() function can now take a rollout's HWND property.A new setForegroundWindow() function is similar to setFocus() , but also brings the specified UI component to the foreground. |
New Assert Functions |
New assert functions are provided for debugging: assert_array_equal() , assert_matchpattern() , and assert_bitarray_equal() . The new assert_float_equal() is identical to assert_float() , but has a more meaningful name. |
New createPreview() option |
The createPreview() function has a new useMPCamEffect option that enables the display of multipass camera effects in the animation preview. |
New FBX Importer option |
The new "PostSamplingKeyReducer" option for the FBX Importer controls whether animation keys are reduced post-conversion. |
BigMatrix row values |
The value of a BigMatrix row can now be set directly to an array of float values. |
Previously Undocumented Items |
The registerDisplayFilterCallback() function is now documented under Adding Selection and Display FiltersThese functions for displaying registered callbacks are now documented:showregisteredTimeCallbacks()``showregisteredSelectFilterCallbacks()``showregisteredDisplayFilterCallbacks()``showregisteredRedrawViewsCallbacks() The dspSpaceWarps option for the createPreview() function is now documented. |
New in MAXScript in 3ds Max 2021
|
|
Bake to Texture Support |
The BakeToTexture : UtilityPlugin exposes the functionality of the new Bake to Texture feature. |
MAXScript Editor Python Support |
When in Python language mode, the MAXScript Editor now inserts four spaces instead of a tab character when you type Tab. This complies with PEP-0008 |
Plugin Package Manager Additions |
The PluginPackageManager interface has new methods to return information about Scene Converter, OSL, and AMG paths:GetSceneConverterFoldersCount()``GetSceneConverterFolderFullPath()``GetOSLFoldersCount()``GetOSLFolderFullPath()``GetAMGFoldersCount()``GetAMGFolderFullPath()
|
Callbacks Changes |
The callbacks.addScript() method can now take a function as the second parameter. Previously this had to be a String, StringStream, or filename. |
Weighted Normals Modifier |
The new Weighted Normals modifier is exposed in the Weighted_Normals : Modifier class. |
ATF-based Importers |
Autodesk Translation Framework (ATF) based importer plug-ins have some extra features exposed to MAXScript, .ImportHiddenObjects and .PreserveLayers . This applies to:ATF_Alias_importerATF_CATIA_V4_importerATF_CATIA_V5_importerATF_IGES_importerATF_JT_importerATF_ProE_importerATF_SKETCHUP_ImportATF_Solidworks_importerATF_STEP_importerATF_UG_NX_importer
|
Scripted Plug-ins |
Scripted plug-in parameters can now take an optional localizedName string, which is used (instead of the parameter name) when the parameter is displayed on a UI. |
Rollout Visibility |
Rollouts have a new visible property that controls whether they are visible when displayed in a dialog.Two new utility functions allow you to convert parameter type name values to their corresponding enum integer representation from the C++ SDK, and vice versa: ParamTypeToTypeName() and TypeNameToParamType() . |
For Loop Index Variables |
The for loop now can take optional index arguments to handle filtered and unfiltered list operation. |
SME Material Library Methods |
Several new methods have been added to the SME interface to expose functionality for working with material libraries:OpenMtlLib()``HasMtlLib()``IsMtlLibModified()``SaveMtlLib()``SaveMtlLibAs()``CloseMtlLib()
|
edit_poly Modifier Chamfer Enhancements |
Chamfer improvements to the edit_poly modfier are exposed in new properties:edgeChamferMiteringType (which replaces the now obsolete edgeChamferType and edgeChamferQuadIntersections )chamferVertexDepth``chamferVertexSegments``chamferVertexSmooth``chamferVertexSmoothThreshold``chamferVertexSmoothType``edgeChamferDepth``edgeChamferEndBias``edgeChamferMiteringType``edgeChamferRadialBias
|
Max Memory Heap Usage |
The new sysinfo.getMAXHeapUsed() function returns the amount of heap memory 3ds Max is using. |
Scripted Custom Attribute Loading Callbacks |
New functions have been added to the custAttributes struct to help manage callbacks that can now be registered to alter definitions as they are loaded from a scene file:custAttributes.registerDefLoadCallback()``custAttributes.unRegisterDefLoadCallback()``custAttributes.unRegisterAllDefLoadCallbacks()``custAttributes.showregisteredDefLoadCallbacks()
|
Documentation Changes |
The active segment normalized time literal format has not been supported for several releases, and has been removed from the Time Values and Time Literals topics. |
Deprecated and Removed Items |
The <ViewportViewSettingImpl>.DefaultLightsFollowCamera property is removed from the NitrousGraphicsManager interface. |
Previously Undocumented Items |
Functions in the custAttributes struct used to manage how scripted custom attribute definitions are managed when there is a conflict with a loaded or merged scene are now documented under Handling Scripted Custom Attribute Definition ConflictsThe dspFrameNums keyword argument has been added to the createPreview() method. |