The following page will give you a quick overview of the MAXScript language changes and improvements in 3ds Max 2015. For details on each feature, please follow the links to the respective documentation pages.
A new
Seat : GeometryClass has been added to the Populate toolset.
A new
PointCloud : GeometryClass implements Point Cloud loading in
3ds Max.
A new
Chamfer : modifier with optional Quad chamfer mode has been added.
Several new properties have been added to the existing
Editable_Poly class to expose the Quad chamfer options:
.edgeChamferSmooth ,
.edgeChamferSmoothThreshold ,
.edgeChamferSmoothType ,
.edgeChamferType ,
.edgeChamferTension and
.edgeChamferInvert .
The new
Custom_LPE : RenderElement can be used to output a custom Light Path Expression (LPE) from the iRay renderer.
The new
Light__Area : RenderElement outputs the Area Lights LPE from the iRay renderer.
The new
Light__Environment : RenderElement outputs the Environment Lights LPE from the iRay renderer.
The new
Light__Point : RenderElement outputs the Point Lights LPE from the iRay renderer.
The new
Mtl__Caustics : RenderElement can be used to output the Caustics LPE from the iRay renderer.
The new
Mtl__Diffuse : RenderElement can be used to output the Diffuse LPE from the iRay renderer.
The new
Mtl__Reflections : RenderElement can be used to output the Reflections LPE from the iRay renderer.
The new
Mtl__Self_Illumination : RenderElement can be used to output the Self-Illumination LPE from the iRay renderer.
The new
Mtl__Translucency : RenderElement can be used to output the Translucency LPE from the iRay renderer.
The new
Mtl__Transparency : RenderElement can be used to output the Transparency LPE from the iRay renderer.
A new
PythonHost : UtilityPlugin has been added, but it does not expose any UI controls, properties or methods. See
the
python Core Interface for actual properties and methods access.
The new
Placement_Utility : UtilityPlugin is for internal use only and exposes no properties, methods or UI controls. See the
PlacementTool Core Interface for actual properties and methods related to the new integrated Placement Tool.
The new
nodeSelectionSet Core Interface provides a system for creating node selection sets for display and
render control purposes.
The new
PlacementTool Core Interface exposes the Placement Tool's controls and functionality to MAXScript.
It allows the interactive or scripted placement of objects to the surface of scene
geometry.
The new
Python Core Interface exposes the Python engine's controls to MAXScript.
The new
iray_string_options Core Interface exposes the iRay Renderer's additional string controls to MAXScript.
The new
MaterialPreviewSystem Core Interface is for internal use only.
Added a new set of
3ds Max Assert display and log related functions :
SetMaxAssertDisplay() ,
GetMaxAssertLogFileName() and
SetMaxAssertLogFileName()
Added a new function to
access the Active Shade bitmap:
GetActiveShadeBitmap() .
Added a new function to
close the Active Shade window:
CloseActiveShade() .
Added a new set of
Render Element related functions:
ElementFileDialog() ,
ElementGetCustomGamma() ,
ElementSetCustomGamma() ,
ElementGetMetaData() and
ElementSetMetaData()
Added a new set of
Welcome Screen related functions:
WelcomeScreenLastTabShown() ,
WelcomeScreenLaunchCount() and
WelcomeScreenShowAtStartup()
The new
Autodesk_Point_Cloud_Generator : textureMap generates the Point Cloud in the mental ray renderer.
The new
Autodesk_Point_Cloud_Material : material implements a Point Cloud material for the mental ray renderer.
The new
Autodesk_Point_Cloud_Base_Shader : textureMap base shader is used to render the Point Cloud particles in mental ray.
The new
Autodesk_Point_Cloud_Shader : textureMap implements a Point Cloud texture map for the mental ray renderer.
In the existing
ICATControlFPInterface, the
PasteRig() method now expects a
<maxObject> instead of a
<controller> as first argument.
In the existing
CATNodeControlFPInterface, the
.Stretchy property was replaced by two new properties for separate control during setup and
animation.
In the existing
CATNodeControlFPInterface, the property
.AnimModeInheritance
has been renamed to
.AnimationModeInheritance .
In the existing
CATNodeControlFPInterface, the existing
AddArbBone() and
CreateLayerMatrix3() methods now accept an optional keyword
AsNewGroup: .
In the existing
LayerRootFPInterface, two new methods let you get and set the Layer color:
GetLayerColor() and
SetLayerColor()
Removed the property
.BoneID from
TailTrans : Matrix3Controller
Several new properties have been added to the existing
pop Interface:
.TurnOpt ,
.SeatMaxTalkAngle ,
.SeatMaxTalkDist ,
.SeatMaxTalkAngle
Several new methods have been added to the existing
pop Interface to control idling, walking and sitting characters:
pop.NumStandingIdlers() ,
pop.NumPedestrians() ,
pop.GetStandingIdler() ,
pop.GetPedestrian() ,
pop.NumSeatedIdlers() ,
pop.GetSeatedIdler() ,
pop.AddSeat() ,
pop.SetSelectedSeatsGender() .
Several new methods have been added to the existing
pop Interface:
pop.ResimulateSelected() ,
pop.RegenerateSelected() ,
pop.DisplayMarks() ,
pop.ShowAppearanceUI() ,
pop.SwapSelPeopleAppearance() ,
pop.DeleteSelPeople() ,
pop.SwitchSelPeoplePos() ,
pop.BakeSelPeople() ,
pop.SaveTextureMaps() .
The options
#HighSkin has been removed from the
.DisplayType property of the
pop Interface.
Two new methods have been added to the existing
particleFlow Global Interface:
setNodeEditorDisplayFlags() and
forceRedrawParticleView()
A new property has been added to the existing
Test_Icon object:
.Enable_By_Switch .
The property
.Disable_By_Dependency has been removed from the existing
Test_Icon object.
The
Viewport_Render : Helper class, which was exposed to MAXScript in previous versions but was for internally
use only, has been removed.
The existing
RetimerMan Interface's property
.numRetimers has been changed from index to integer type.
Several new methods have been added to the existing
RetimerMan Interface:
IsGlobalRetimerActive() ,
ApplyGlobalRetimer() ,
RemoveGlobalRetimer() ,
GetActiveRetimerCtrl() ,
AddToRetimer() ,
SetUpRetimers() ,
RemoveRetimers() ,
BakeRetimers() ,
FindNodesDependentOnRetimer() and
GetGlobalRetimerControl()
The new method
layerPropDialog() in the existing
LayerManager Interface allows the opening of the Layer Properties dialogs of any number of layers.
Several new methods have been added to the existing
LayerProperties Mixin Interface:
getParent() ,
setParent() ,
getChild() and
getNumChildren() to support nested layers.
Two new properties have been added to the existing
NitrousGraphicsManager Interface:
.HardwareHitTestEnabled and
.AntialiasingQuality
Two new texture control methods have been added to the existing
NitrousGraphicsManager Interface:
SetProceduralTextureSizeLimit() and
ForceDisableMipMapGeneration()
New view graph methods added to the existing
NitrousGraphicsManager Interface:
SaveViewGraph() ,
LoadViewGraph() and
UnloadViewGraph()
Several new methods have been added to the existing
SceneExplorerManager Interface:
GetExplorer() ,
CreateLayerManager() ,
GetActiveExplorer() ,
IsDefaultLayer() and
SetActiveExplorer()
Two new methods -
skinOps.GetBoneIDByListID() and
skinOps.GetListIDByBoneID() - have been added to the existing
SkinOps Struct.
The method
skinOps.GetBoneNameByListID() has been removed from the
SkinOps Struct.
The existing
setNormal() Mesh Vertex method has been changed to set the normal to explicit in order to retain the custom data
on mesh updates.
A new property
.isSceneXRefNode has been added to the existing
INode Interface.
A new
.version property has been added to the MSPluginClass.
MSCustAttribDef derives from it, effectively exposing the
.version property of
Custom Attribute definitions.
A new method has been added to the existing
windows Struct:
windows.snapshot() to create a snapshot image of the specified window including the Windows Desktop,
3ds Max Main Window, Viewports or any other window by its HWND.
A new method has been added to the existing
viewport Struct:
viewport.getHWnd() to acquire the windows handle of the viewport.
Enhanced the existing
viewport.getViewportDIB() method in the
viewport Struct to allow for optional viewport index, viewPanel index, Alpha channel support and
Gamma correction.
Enhanced the existing
gw.getViewportDIB() method in the existing
gw Struct to allow for optional Alpha channel support and Gamma correction.
Improved the existing
gw.text() ,
gw.htext() and
gw.wtext() methods in the existing
gw Struct to support multi-line text where new lines are introduced using the \n escape sequence.
The new
on isIndeterminate do handler can return True to display the
MacroScript menu item as a horizontal dash (representing an indeterminate checkmark) in Menus
and QuadMenus.
The new
pickAnimatable() function is
similar to the existing pickObject() function, but it lets you pick an Animatable from a 3D viewport, Explorer, Schematic
View, or Track View.
The new function
forceReloadBitmapFile() lets you reload the file of a
Bitmap Value.
The new function
registerFileChangedFunction() lets you register a callback to run a function when the bitmap file of a
Bitmap Value changes on disk.
A new optional keyword argument
caption: has been added to the existing
display() function related to
Bitmap Values, allowing the display of a custom caption string in the VFB's title bar.
A new
index: by-reference optional keyword has been added to the existing
bsearch() function to access the index of the found item.
Added support for
IntegerPtr saving and loading as
persistent global variable value. When saving to previous 3ds Max version, the
IntegerPtr value will be stored as an
Integer64 . See also
Documentation Fixes below.
Pressing the
ESC key while editing the text in an
editText control will switch focus to the control's parent window.
Pressing the
ESC key while in a modal dialog created using
createDialog() will close the dialog if the
escapeEnable: keyword argument is set to False. This was documented, but was not implemented in
previous versions.
Removed the
OldBoolean : GeometryClass class which was hidden and only used for loading ancient .MAX scene files saved in
the mid-90s.
Removed the
Material_XML_Exporter: UtilityPlugin which was used to manually export a material to an XML format for use in Architectural
Desktop 2004 with VIZrender.
Removed the
Interface: XMLMaterial which was used to export a material to an XML format for use in Architectural Desktop
2004 with VIZrender using MAXScript.
The list of value types supported by
persistent global variables has been updated to include all new value types introduced since the original implementation
of MAXScript, including Integer64, IntegerPtr, Double, Point4 etc.
Also, the list is now sorted alphabetically for easier search at a glance.
The function
getMaxFileVersionData() was originally introduced in
3ds Max 2013. It provides
access the .MAX scene file version including the version of
3ds Max
that produced the file. The actual version information is available in files saved
by
3ds Max 2010 and higher.