The following pages will give you a quick overview of the MAXScript language changes and improvements in 3ds Max 9. For details on each feature, please follow the links to the respective documentation pages.
Exposes methods to create and manage the ProBoolean Compound Object
Exposes methods to create and manage the ProCutter Compound Object
Logarithmic_Exposure_Control : ToneOperator
A
new tone mapping algorithm has been implemented for this exposure control. The old algorithm is still available
for backwards compatibility.A new property .useLegacyAlgorithm has been added to allow the switching between the old and the new behavior.
New SceneEffectLoader Interface exposes the Scene Effect Loader Utility to MAXScript.
Newmethodgw.setDirectXDisplayAllTriangle() lets the user change the
Display All Triangle Edges option available in the UI as a checkbox in the
Customize > Preferences > Viewports > Configure Driver dialog of the Direct3D driver.
New mental ray properties in 3ds Max 9
Two new read-only properties were added to the mental ray renderer:
.LastTotalNonRenderTime_ms and
.LastTotalGeomTranslationTime_ms. They will contain details about the translation time.
New Arch and Design Material added to
3ds Max 9 provides advanced functionality like shader presets, glossy reflections, custom BRDF
reflectivity functions, built-in environment occlusion and edge rounding effects etc.
New Photometric Lights added to
3ds Max 9. Provides physically correct sky light and sun light when rendering with mental ray.
New mental ray shader added to
3ds Max 9. Provides visual representation of the physical sky as an environment map.
New property added to the Asset Tracking System:
CheckNetworkPaths
New methods added to the Asset Tracking System to allow the querying of a file's status: GetFileStatus(), GetFileSystemStatus(), TestFileSystemStatus().
New methods added to the Asset Tracking System to allow the conversion of selected paths to UNC, relative
or absolute paths:
ResolveSelectionToUNC(), ResolveSelectionRelativeToProjectFolder() and
ResolveSelectionToAbsolute() .
Return value for
checkin(), checkout(), undocheckout(), addfiles() and
getlatest() changed from <void> to <bool>.
New methods added to the Asset Tracking System:
IsInputFile(), SetWorkingFolder(), GetWorkingFolder(), IsFileShareLocked()
The new PathConfig Struct exposes advanced methods for dealing with relative and absolute paths and provides
access to System and Profile Paths.
New path names have been added as options to the
GetDir(), SetDir() and some
pathConfig struct methods expecting a system directory name value:
#animations, #archives, #downloads, #maxData, #Photometric, #proxies, #renderassets,
#renderPresets, #renderoutput, #temp, #userMacros, #userScripts, #userStartupScripts,
#userIcons
New method has been added to MAXScript:
ConvertDirIDToInt() - returns an integer corresponding to the system directory name ID.
New method has been added to the
mapPaths struct:
getFullFilePath() . It resolvesthefilename using map paths, returning fully qualified filename if the
file is found.
The new plugin Paths struct provides two methods:
count() and
get() . The former method returns the number of defined plugin paths, the latter returns
the indexed plugin path.
New method has been added to the
mapPaths struct: getFullFilePath() . It resolvesthefilename using xref paths, returning fully qualified filename if the
file is found.
The new symbolicPaths Struct exposes advanced methods for accessing system symbolic paths and managing user-defined
symbolic paths.
New method
logName added to
logsystem struct. It lets you define the log file name and path.
The type of the Properties
.fileName and
.fileType in all Bake Elements has been changed from String to Filename.
The type of the Properties
.fileName and
.dirName has been changed from String to Filename.
The type of the Property
.fileName has been changed from String to Filename.
The type of the preset name argument in the
SavePreset() and
LoadPreset() methods of the Hair Interface has been changed from String to Filename.
Particle_Cache : SpacewarpModifier
Point_CacheSpacewarpModifier : SpacewarpModifier
The type of the Property
.cache_name has been changed from String to Filename.
The type of the Properties
.bitmapName and .outputName has been changed from StringsArray res. String to FilenameArray resp. Filename.
The types of the filename arguments in the
SetCombustionOutputPath() and SetRenderElementFilename() methods as well as the type of the return values of the
GetCombustionOutputPath() and
GetRenderElementFilename() methods have been changed from String to Filename.
The type of the filename argument to the method
renderUV() has been changed from String to Filename.
ViewportManagerCustAttrib interfaces: viewportmanager
The type of the filename argument to the method
saveFXFile() has been changed from String to Filename.
The types of the filename arguments to the methods
loadColorFile(), saveColorFile(), setIconFolder() as well as the return value types of the methods
getColorFile(), getFileName(), getIconFolder() have been changed from String to Filename.
The type of the filename arguments to the methods
fileInPackage() and
unloadPackage()
has been changed from String to Filename.
The types of the filename arguments to the methods
loadMenuFile() and
saveMenuFile() as well as the return value type of the method
getMenuFile() have been changed from String to Filename.
The types of the filename arguments to the methods
loadKeyboardFile() and
saveKeyboardFile() as well as the return value type of the method
getKeyboardFile() have been changed from String to Filename.
The types of the filename arguments to the methods
dropPackage(), downloadPackage() and
DownloadUrlToDisk() as well as the return value type of the method
getDownloadDirectory() have been changed from String to Filename.
The return type of the methods
getAnimFileDirectory() and
getAnimMapFile() has been changed from String to Filename.
The type of the filename arguments to the methods
getLayerCount() and
getLayerName() and
LoadLayer() has been changed from String to Filename.
The type of the filename arguments to the methods
canImportBitmap() and
loadCUIFile() has been changed from String to Filename.
The type of the filename arguments to the methods
LoadPresetFile() and
SavePresetFile() has been changed from String to Filename.
The type of the filename argument to the method
createFormFromFile() has been changed from String to Filename.
The type of the filename arguments to the methods
export() and
exportArray() has been changed from String to Filename.
The type of the filename argument to the method
ExportDRA() has been changed from String to Filename.
The type of the filename arguments to the methods
LoadAnalysisFile() and
SaveAnalysisFile() has been changed from String to Filename.
The type of the filename arguments to the methods
GetFiles(), AddFile(), SetFile() and
RemoveFileByName() has been changed from String to Filename.
The type of the filename argument to the method
openFile() has been changed from String to Filename.
Mixin Interface: maxOps.GetCurRenderElementMgr(...) : Interface: RenderElementMgr
The types of the filename arguments to the methods
SetCombustionOutputPath() and SetRenderElementFilename() as well as the return value types of the methods
GetCombustionOutputPath() and
GetRenderElementFilename() have been changed from String to Filename.
Mixin Interface: memStreamMgr.openString(...) : Interface: memStream
The return value type of the method
getFileName() has been changed from String to Filename.
Mixin Interface: netRender.getManager(...) : Interface: NetManager
The type of the file: keyword argument to the method
NewJob() has been changed from String to Filename.
Mixin Interface: (schematicviews.open "A";schematicviews.current) : Interface: SchematicView
The return value type of the method
getBackgroundImageName() as well as the type of the filename argument to the method
setBackgroundImageName() has been changed from String to Filename.
Mixin Interface: batchRenderMgr.createView(...) : Interface: batchRenderViewOps
The value type of the properties . presetFile and . outputFilename has been changed from String to Filename.
New autosave Interface exposes the Auto-Backup feature and lets the user enable and disable it, change the
backup interval, the number and the name of auto-backup files, reset the timer and
check whether the system is currently active. The Auto-Backup system has been refactored
and will now respect the scene dirty flag (scene needs saving). In addition, the timer
will be reset after the saving has finished, leaving the user enough time to work
on the scene before the next auto-save.
New AnimLayerManager Interface exposes the Animation Layer system to MAXScript.
New Float_Layercontroller created and used by the Animation Layer system to manage layered Float controllers.
Point3_Layer : Point3Controller
NewPoint3_Layercontroller created and used by the Animation Layer system to manage layered Point3 controllers.
Point4_Layer : Point4Controller
NewPoint4_Layercontroller created and used by the Animation Layer system to manage layered Point4 controllers.
Position_Layer : PositionController
New Position_Layercontroller created and used by the Animation Layer system to manage layered Position controllers.
Rotation_Layer : RotationController
New Rotation_Layercontroller created and used by the Animation Layer system to manage layered Rotation controllers.
New Scale_Layercontroller created and used by the Animation Layer system to manage layered Scale controllers.
Layer_Output : FloatController
New Layer_Outputcontroller created and used by the Animation Layer system to manage the output of the Layer
controllers.
All Animation Layer Controllers except the Layer_Output controller expose the
Layer Interface.
Calling layermanger.newlayerfromname() triggers a
new layer created callback. In previous versions, when polling the callback notification parameter,
it would report the wrong name - the same default name that
layermanager.newlayer() would report. This error has been fixed.
The following properties are now writable:
srcFileName, srcItemName
The following properties are now writable:
proxyFileName, proxyItemName
The
new
.name
property of named selection sets can be both get and set. This allows the direct renaming
of existing named selection sets without the need to delete the old set and recreate
a new one with a new name.
The
isDeleted() method is now valid for named selection sets.
The
deleteItem() method for named selection sets can now accept the selection set value instead of the name
of the selection set as the second argument.
The PointCache Modifier has been replaced with the previously available as free plug-in
PointCache2 modifier. It provides advanced controls over the cache playback and can
now be used to share deformation and animation data with Autodesk Maya which implements
a new cache using the same data format.
The same modifier defines the PointCacheMan struct exposing a method to get the current
memory usage by PointCache modifiers:
pointCacheMan.GetMemoryUsed()
The same modifier defines the CacheOps struct exposing methods to enable and disable
modifiers below the Cache, Record, Reload and Unload the cache via MAXScript : CacheOps.DisableBelow(), cacheOps.EnableBelow(), cacheOps.RecordCache(), cacheOps.Reload,
cacheOps.Unload()
New Per-Face Data storage exposed to MAXScript via the
simpleFaceManager Interface and the
simpleFaceChannel MixinInterface returned by some of its methods. Enables the storage of integer, index, float, boolean,
point2 and point3 values in each face.
The DialogMonitorOPS Interface provides a system to register custom callbacks to be triggered by UI activities and
handle dialogs and popups automatically using the methods exposed by the
UIAccessor Interface.
RefTargMonitor : ReferenceTarget
This classicality an indirect reference to any ReferenceTarget. It was added mainly
for internal testing, but was left accessible as someone could find it useful in a
script.
The
RingArrayinterface exposes a creation method for the RingArray System. This interface was created mainly
for test and debugging purposes as the RingArray has no real function in 3ds Max.
It is only an System example.
New methods added to the Biped Struct to allow MAXScript access to the twisty nodes and links in a
character studio Biped:
biped.maxTwistNodes(), biped.maxTwistLinks() and
biped.getTwistStartID() .
New method added to the viewport Struct to allow MAXScript access to the frame rate measurement of
the current viewport provided by the Show Statistics option.
CommCenterGUP : GlobalUtilityPlugin
New Global Utility Plugin added but does not expose any properties, methods or interfaces.