What is New in MAXScript > What was New in MAXScript in Previous Versions > What was New in MAXScript in 3ds Max 5 >

# What was New in MAXScript in 3ds Max 5

The following pages will give you a quick overview of the MAXScript language changes and improvements in 3ds Max 5. For details on each feature, please follow the links to the respective documentation pages.

## Modifiers

Edit_Normals

Edit_Normals modifier provides control over face and vertex normals for realtime display.

HSDS_Modifier

Support for the new features of the modifier has been added.

Morpher_Modifier

Access to the Morpher Modifier channels has been added.

MultiRes_Modifier

The MultiRes modifier MAXScript access has been updated in 3ds Max 5.

Skin Modifier

New properties have been added to the Skin modifier class in MAXScript to provide access to the new features in 3ds Max 5 like Weight Table, BackTransform vertices etc.

Spline_IK_Control Modifier

The Spline_IK_Control adds Helpers to any spline for control over the vertex animation.

Subdivide Modifier

The new Subdivide Modifier allows for mesh refinements to enhance radiosity processing.

Symmetry Modifier

The new Symmetry modifier allows modeling on one half of an object while procedurally mirroring and welding the other half.

Unwrap_UVW Modifier

The Unwrap_UVW modifier has been greatly enhanced. A new unwrap2 Interface provides access to the new features of the Unwrap_UVW modifier.

Vertex_Weld Modifier

Vertex Weld is a procedural welding modifier.

## Space Warps and WSMs

MapScaler

MapScaler has been rewritten to use PB2. Enhanced property access.

subdivideSpacewarpModifier

New Subdivide SpacewarpModifier added

## Editable Poly

Editable_Poly Properties

Access to most properties of the enhanced Editable_poly has been added.

EditablePoly Interface

This interface provides access to the new Editable Poly functions.

## Advanced Lights and Shadows

Free_Area Light

The Free Area light is a Photometric light simulating lighting from a larger area source with two possible types of distribution. It is aimed using transforms.

Free_Linear Light

The Free Linear light is a Photometric light simulating lighting from long sources and supporting two types of distribution. It is aimed using transforms.

Free_Point Light

The Free Point light is a Photometric light with 3 distribution types. It is aimed using transforms.

Target_Area Light

The Target Area light is a Photometric light simulating lighting from a larger area. It is aimed at its target.

Target_Linear Light

The Target Linear light is a Photometric light simulating lighting from long sources and supporting two types of distribution. It is aimed at its target.

Target_Point Light

The target Point light is a Photometric light with 3 distribution types. It is aimed at its target.

IES_Sky Light

The IES_Sky light is a Photometric light simulating outdoor skylight.

IES_Sun Light

The FreeIesSun light is a Photometric light simulating sunlight.

Daylight System

The Daylight system combines an IES_Sun and IES_Sky light to a single system controlled by a Daylight controller.

Skylight Light

The Skylight light can be used to simulate skylight illumination.

Adv__Ray_traced

The Adv__Ray_Traced Shadows generator provides enhanced raytraced shadows for complex scenes.

Area_Shadows

The Area Shadows generator generates shadows typically cast by area light sources.

A new property .twoSidedShadows has been added to all shadow generators:

ShadowMap,RaytraceShadow,Area_Shadows,Adv__Ray_traced

## Advanced Lighting (Radiosity)

Radiosity RadiosityEffect

The RadiosityEffect used by Autodesk VIZ has been added to 3ds Max 5.

Light Tracer RadiosityEffect

Light Tracer is a Global Illumination RadiosityEffect solver.

Lighting Units Interface

This Core interface provides access to the Lighting Units settings.

RadiosityPreferences

New Radiosity Preferences interface provides access to the Customize>Preferences>Adv.Lighting tab settings

INodeGIProperties

New Node Interface gives access to object-specific Advanced Lighting preferences.

## Materials and Shading

Advanced_Lighting_Override_Material

A material class to control the Material’s Physical Properties when used in conjunction with Advanced Lighting.

InkNPaint

Provides access to the InkNPaint Cartoon Shading material.

Lightscape_Mtl

A material class used mainly by the Lightscape importer to control the radiosity mapping of materials imported from Lightscape solutions.

Raytrace_Material additions

Some additional Raytrace Material properties have been exposed.

Shell_Material

Provides a top-level material for the Render To Texture utility with the ability to control separate materials for viewport and rendering.

Translucent_shader

A new Translucent shader has been added to the Standard Material.

## Hardware Shaders

Cubemap

Reference target for rendering cubic reflection maps in the viewports using D3D hardware shading. Unsupported sample.

Lightmap

Reference target for displaying the Render To Texture lighting map in the viewports using D3D hardware shading.

Membrane_Shader

Direct3D Membrane shader for viewport display. Unsupported sample.

Metal_Bump

Reference target for rendering Metal Bump maps in the viewports using D3D hardware shading. Unsupported sample.

## Renderer

Default_Scanline_Renderer

The Default_Scanline_Renderer class allows creation of a renderer class instance to be assigned as the Current, Production or Draft Renderer. A new Interface provides access to the Default Scanline Renderer settings.

getLastRenderedImage

This new function returns a bitmap value containing the last rendered image.

renderers

This new structure gives access to the current, draft and production renderers.

RendererClass.classes

Returns an array of the available renderer classes.

renderSceneDialog

This new structure gives control over the renderer dialog window like opening, closing, updating, canceling etc.

Render Scene Dialog

The scanlineRender structure has been enhanced to give access to most settings of the default scanline renderer.

SetRendApertureWidth

A new global function to set the Render Aperture Width value.

Sub-frame Rendering

The MAXScript render() method now accepts time values for the frame, fromframe and toframe parameters which allows for sub-frame rendering.

VUE_File_Renderer

The VUE_File_Renderer class allows creation of class instance to be assigned as the Current, Production or Draft Renderer.

## RenderElements

Ink RenderElement

New Ink RenderElement for rendering the InkNPaint Ink component.

Paint RenderElement

New Paint RenderElement for rendering the InkNPaint Paint component.

## Render To Texture - BakeElements

Bake Elements

8 Bake Elements have been added to 3ds Max 5.

BlendMap BakeElement

Allows baking of a selection of lighting components.

CompleteMap BakeElement

Allows a lit, or lit & shadowed full material to be baked.

DiffuseMap BakeElement

Allows a raw, lit, or lit & shadowed diffuse channel to be baked.

LightingMap BakeElement

Allows a light map of incoming illumination to be baked with or without shadows.

NormalsMap BakeElement

Allows a light map of incoming illumination to be baked with or without shadows.

ShadowsMap BakeElement

Allows a shadow map to be baked.

SpecularMap BakeElement

Allows a raw, lit, or lit & shadowed specular channel to be baked.

INodeBakeProperties Interface

An interface to the Texture-Baking-related node properties

## Exposure Controls

Linear_Exposure_Control

The Linear Exposure Control samples the rendered image and uses the average brightness of the scene to map physical values to RGB values.

Logarithmic_Exposure_Control

Logarithmic Exposure Control uses brightness, contrast, and whether the scene is outdoors in daylight to map physical values to RGB values. Logarithmic Exposure Control is better for scenes with a very high dynamic range.

Pseudo_Color_Exposure_Control

Pseudo Color Exposure Control is a lighting analysis tool that provides an intuitive way of visualizing and evaluating the lighting levels in the scene. It maps luminance or illuminance values to pseudo colors that show the brightness of the values being converted

## Lightscape Integration

Lightscape_Mtl

A material class used mainly by the Lightscape importer to control the radiosity mapping of materials imported from Lightscape solutions.

Lightscape_Materials&nbsp;UtilityPlugin

The Lightscape Material utility allows mass-changes of Lightscape Materials, usually of objects imported using the Lightscape Importer.

LS_Colors SpacewarpModifier

This SpaceWarp modifier is only visible when a LightscapeMesh object is selected. It provides control over Lightscape Radiosity colors imported using the Lightscape Importer.

LS_Mesh Modifier

This Modifier is only visible when a LightscapeMesh object is selected. It provides control over the meshing of objects imported using the Lightscape Importer.

## Layers

LayerManager interface and LayerProperties Interface

The LayerManager Interface provides access to the Layer Manager. The LayerProperties Mixin Interface gives access to a single layer’s properties.

.displayByLayer, .motionByLayer, .renderByLayer

These properties control the node’s Layer-related options.

INodeLayerProperties

Provides access to the layer-related node properties.

## Assemblies

AssemblyMgr interface

The Assembly Manager Interface lets you put objects together to Assemblies, test and manipulate the Assemblies

Interface: IAssembly

IAssembly is a MixinInterface providing access to the assembly’s head and members

Character Helper

The Character helper is used as the head of Character Assemblies

CharacterAssembly Helper

The CharacterAssembly helper provides the controls, UI and icon for the Character Assembly creation.

Luminaire Helper

The Luminaire Helper is not creatable by MAXScript in 3ds Max 5, but can be accessed when loading Autodesk VIZ files.

## Controllers and TrackView

Boolean_Float

New Float controller

List Controllers

New Weight and Average properties have been added to the List Controller for real layered animation capabilities including Pose To Pose interpolation.

Lookat Interface

New ILookatControl Interface has been added to the LookAt Controller.

Interface: trackviews

TrackView has been rewritten in 3ds Max 5. The Trackviews Core Interface provides new properties and two MixinInterfaces that give access to the advanced features of the Function Curve Editor and its UI.

SplineIKChain : Matrix3Controller

Not creatable by MAXScript, but the SplineIKChain properties are accessible.

Interface: TrackSelectionSets

This Core Interface provides means to create and manage track selection sets.

## Bitmap I/O

TIF BitmapIO

Provides a function published interface to allow access to the TIFF file format I/O settings.

## Skin Modifier Enhancements

New Skin Properties in 3ds Max 5

New properties have been added to the Skin modifier, incl. access to the Weight Table.

SkinOps Methods

The following new methods have been added to the skinOps structure:

bakeSelectedVerts, buttonWeightTable, Invalidate, isRigidHandle, isRigidVertex, isUnNormalizeVertex, loadEnvelopeAsText, paintOptionsButton, paintWeightsButton, rigidHandle, rigidVertex, SaveEnvelopesAsASCII, unNormalizeVertex

## Painter Interface

PainterInterface

The Painter Interface is a general painting API which is used for example by the Skin Modifier for painting weights.

Defining Custom Paint Tools Using the Painter Interface

The Painter Interface can be used for creating custom scripted painting tools.

## String Parsing and Manipulation

String Parser Methods

New string parsing methods.

MemStream and MemStreamMgr Interfaces

New interfaces for fast parsing by loading into memory.

Append String

This new method lets you append to a string in place without creating intermediate string copies in memory, thus reducing memory usage when building incremental strings, for example for dynamic rollouts.

## Viewports

viewport.setCamera

This method can now be used to set the active viewport to a Light View using a free, target or direct light node.

viewport.CanSetToViewport

New method added to viewport structure - returns true for cameras and lights that can be used as a viewport camera.

gw.dualPlane

New member added to the gw structure.

getMAXWindowSize

Returns the 3ds Max window size in pixels.

cui.setAppTitle

Lets you set the title bar string of 3ds Max.

Interface: StatusPanel

This Core Interface provides control over the visibility of the status panel. Now, a Super-Expert-Mode with just viewports and main menu can be achieved through MAXScript!

Interface: tmGizmos

This Core Interface provides control over the transform gizmo.

## Dockable MAXScript dialogs

cui.registerDialogBar and cui.unRegisterDialogBar

Register / Unregister a scripted dialog as a dockable dialog bar.

cui.dockDialogBar and cui.floatDialogBar

Docks / Floats a floating registered dialog bar.

cui.getDockState

Returns the docking state of a registered dialog bar.

## MAXScript UI Elements and Handlers

UI Elements .visible UI_Item_Visible_Property

A new general property lets you hide and disable UI Elements.

SubRollout Class

A subclass of Rollout class, this is a UI item which you can place rollouts into.

Checkbox Tristate Property

Tristate Parameter and Property added to the checkbox UI Element

Spinner Indeterminate Parameter

Indeterminate Parameter and Property have been added to the spinner UI Element.

Radiobuttons default 0

When default parameter is set to 0, none of the radio buttons will be selected.

MacroScript "on AltExecute type do" handler

Lets you specify an alternative execution option for a MacroScript.

CreateDialog modal and escapeEnable

New optional keywords added to CreateDialog.

## Max Commands Additions

New max commands

New Set Key-related commands have been added to the Max Commands.

## ActiveX

loadPicture

New method returns a IPictureDisp, an MSDispatch object to be used by activeX controls accepting IPictureDisp.

updateWindow

New method lets you force a refresh of ActiveX controls.

## Key Functions

appendKey

Function for appending keys to controllers added to the controller common functions.

assignKey

Functions for assigning keys to controllers added to the controller common functions.

## Misc. Additions

getFileSize

Get the external file size in bytes.

GetInterfaces Interface Inspector

Returns an array of all interfaces exposed by the specified MAXWapper or MAXClass.

GetPropNames and Interfaces

The GetPropNames method now works with interfaces and returns the names of interface properties.

loadmaxfile useFileUnits option

New option has been added to control the use of the file’s units.

manipulateMode access

New global variable: manipulateMode

#manipulateModeOn and #manipulateModeOff

New manipulate mode related events added to the callback events.

okToCreate

New method added to the Create Panel methods to check whether a class is creatable in the UI.

.productAppID

New property added to existing maxOps interface to determine the application MAXScript is running in.

RolloutCreator Functions

This is a structure of scripted functions that simplifies the creation of dynamic rollouts.

#systemPreNew NotificationParam

A new #systemPreNew Notification Parameter returns the option selected in the New Scene dialog.

toolmode.coordSysNode

Reflects which node, if any, is the current reference coordinate system node

UsedMaps()

This new method returns an array of all bitmapTexture maps’ filenames.

UtilityPanel interface

Lets you open and close Utility Plug-ins in the Utilities Tab

## Other New Sections in the MAXScript Online Help

MAXScript for New and Casual Users

The section gives some basic knowledge about installing and using scripts in the daily work without knowing much about programming.

How To - Tutorials

The new "How To" Tutorials provide practical MAXScript examples with detailed explanations for beginners.

Online Help Script Examples

An index pointing at some of the useful example scripts found inside the Online Help.

MAXScript Questions and Answers

An index providing task-oriented links and some general concept explanations.

#### See Also

- MAXScript Changes in 3ds Max 5.1
- MAXScript Documentation Changes in 3ds Max 5.1.1 (Particle Flow Update)
- Particle Flow and MAXScript