Morpher - superclass: modifier; super-superclass:MAXWrapper - classID: #(398157908, -1513381213) 
Constructor
Morpher ... Properties
<Morpher>.Spinner_Minimum Float default: 0.0 The minimum limit.
<Morpher>.Spinner_Maximum Float default: 100.0 The maximum limit.
<Morpher>.Use_Limits Integer default: 1 -- Integer Enable/disable limits.
<Morpher>.Use_Selection Integer default: 0 Turn on to limit morphing to vertices selected in a modifier below the Morpher modifier in the modifier stack.
<Morpher>.Value_Increments Integer default: 1 <Morpher>.Autoload_of_targets Integer default: 0 Turn this on to allow animated targets to be updated dynamically by the Morpher modifier.
The following methods provide enhanced access to the Morpher modifier.
Methods
<boolean> IsValidMorpherMod <Modifier_class> Modifier Returns true when the supplied modifier is a valid Morpher modifier, false otherwise.
<boolean>WM3_MC_BuildFromNode <Morpher_Class>Morpher <integer>channel_index <geometry_class>target_object Adds the object as target to the specified channel of the specified morpher modifier.
Returns true on success.
EXAMPLE
WM3_MC_BuildFromNode$Teapot01.morpher 1 $Teapot02 -->true
<boolean>WM3_MC_Delete <Morpher_Class>Morpher <integer>channel_index Deletes the target from the specified channel of the specified morpher modifier.
Returns true on success.
EXAMPLE
WM3_MC_Delete$Teapot01.morpher 1 -->true
<float>WM3_MC_GetLimitMAX <Morpher_Class>Morpher <integer>channel_index Returns the max. limit of the specified channel of the specified morpher modifier.
EXAMPLE
WM3_MC_GetLimitMAX$Teapot01.morpher 1 -->100.0
<float>WM3_MC_GetLimitMIN <Morpher_Class>Morpher <integer>channel_index Returns the min. limit of the specified channel of the specified morpher modifier.
EXAMPLE
WM3_MC_GetLimitMIN$Teapot01.morpher 1 -->0.0
<float>WM3_MC_GetMemUse <Morpher_Class>Morpher <integer>channel_index Returns the memory usage in bytes of the specified channel of the specified morpher modifier.
EXAMPLE
WM3_MC_GetMemUse$Teapot01.morpher 1 -->10600.0
<Point3>WM3_MC_GetMorphPoint <Morpher_Class>Morpher <integer>channel_index <integer>index Returns the position of the indexed morph point (vertex) of the specified channel in the specified morpher modifier.
<float>WM3_MC_GetMorphWeight <Morpher_Class>Morpher <integer>channel_index <integer>index Returns the weight of the indexed morph point (vertex) of the specified channel in the specified morpher modifier.
<string>WM3_MC_GetName <Morpher_Class>Morpher <integer>channel_index [localizedName:<bool>]Returns the name of the specified channel of the specified morpher modifier.
When the localizedName keyword parameter is true (the default), the localized name as it appears in the UI is returned. Otherwise the non-localized name is returned. Available in in 3ds Max 2022 and later
<node>WM3_MC_GetTarget <Morpher_Class>Morpher <integer>channel_index Returns the target object of the specified channel of the specified morpher modifier.
<boolean>WM3_MC_GetUseLimits <Morpher_Class>Morpher <integer>channel_index Returns true if the specified channel of the specified morpher modifier uses the limits, false otherwise.
<boolean>WM3_MC_GetUseVertexSel <Morpher_Class>Morpher <integer>channel_index Returns true if the specified channel of the specified morpher modifier uses the vertex selection, false otherwise.
<float>WM3_MC_GetValue <Morpher_Class>Morpher <integer>channel_index Returns the value of the specified channel of the specified morpher modifier.
<boolean>WM3_MC_HasData <Morpher_Class>Morpher <integer>channel_index Returns true when the specified channel of the specified morpher modifier has target data, false otherwise.
<boolean>WM3_MC_HasTarget <Morpher_Class>Morpher <integer>channel_index Returns true when the specified channel of the specified morpher modifier has a target object assigned, false otherwise.
<boolean>WM3_MC_IsActive <Morpher_Class>Morpher <integer>channel_index Returns true when the specified channel of the specified morpher modifier is active, false otherwise.
<boolean>WM3_MC_IsValid <Morpher_Class>Morpher <integer>channel_index Returns true when the specified channel of the specified morpher modifier is valid, false otherwise.
<integer>WM3_MC_NumMPts <Morpher_Class>Morpher <integer>channel_index Returns the number of morph points (vertices) in the specified channel of the specified morpher modifier.
<integer>WM3_MC_NumPts <Morpher_Class>Morpher <integer>channel_index Returns the total number of points (vertices) in the specified channel of the specified morpher modifier.
<boolean>WM3_MC_Rebuild <Morpher_Class>Morpher <integer>channel_index Rebuilds the target in the specified channel of the specified morpher modifier. Returns true on success.
<boolean>WM3_MC_SetActive <Morpher_Class>Morpher <integer>channel_index <boolean>active_state Activates/Deactivates the specified channel of the specified morpher modifier. Returns true on success.
<boolean>WM3_MC_SetLimitMAX <Morpher_Class>Morpher <integer>channel_index <float>max_limit Sets the max. limit for the specified channel of the specified morpher modifier. Returns true on success.
<boolean>WM3_MC_SetLimitMIN <Morpher_Class>Morpher <integer>channel_index <float>min_limit Sets the min. limit for the specified channel of the specified morpher modifier. Returns true on success.
<boolean>WM3_MC_SetName <Morpher_Class>Morpher <integer>channel_index <string>new_name [localizedName:<bool>] Sets the name of the specified channel of the specified morpher modifier. Returns true on success.
When the localizedName keyword parameter is true (the default), the localized name as it appears in the UI is set. Otherwise the non-localized name is set. Available in in 3ds Max 2022 and later
<boolean>WM3_MC_SetUseLimits <Morpher_Class>Morpher <integer>channel_index <boolean>use_limits Activates limit usage for the specified channel of the specified morpher modifier. Returns true on success.
<boolean>WM3_MC_SetUseVertexSel <Morpher_Class>Morpher <integer>channel_index <boolean>use_vert_sel Activates vertex selection usage for the specified channel of the specified morpher modifier. Returns true on success.
<boolean>WM3_MC_SetValue <Morpher_Class>Morpher <integer>channel_index <float>new_value Sets the value of the specified channel of the specified morpher modifier. Returns true on success.
<integer>WM3_NumberOfChannels <Morpher_Class>Morpher Returns the number of available channels for the specified morpher modifier.
<boolean>WM3_RebuildInternalCache <Morpher_Class>Morpher Rebuilds the internal cache of the specified morpher modifier. Returns true on success.
<boolean>WM3_RefreshChannelListUI <Morpher_Class>Morpher Refreshes the channel list of the specified morpher modifier. Returns true on success.
<boolean>WM3_RefreshChannelParamsUI <Morpher_Class>Morpher Refreshes the channel parameters of the specified morpher modifier. Returns true on success.
<boolean>WM3_SetChannelPos<Morpher_Class>Morpher <Integer>new_pos Scrolls the morpher UI to the specified channel. Returns true on success.
<boolean>WM3_SetChannelSel <Morpher_Class>Morpher <Integer>new_sel Selects the specified channel of the specified morpher modifier. Returns true on success.
The following methods were added in 3ds Max 8:
WM3_MoveMorph <Morpher_Class>Morpher <Integer>old_pos <Integer>new_pos Moves the indexed morph channel to the specified channel, leaving the old channel Empty and overwriting the new channel if not empty.
Available in 3ds Max 8 and higher.
EXAMPLE
WM3_MoveMorph$Teapot01.morpher 1 10--moves channel 1 to channel 10.OK
WM3_SwapMorph <Morpher_Class>Morpher <Integer>first_pos <Integer>second_pos Swaps the morph channels, preserving both channels.
Either of the two channels can be empty.
Available in 3ds Max 8 and higher.
EXAMPLE
WM3_SwapMorph$Teapot01.morpher 1 10--moves channel 1 to channel 10and channel 10 to channel 1.OK
WM3_DeleteProgressiveMorphNode <Morpher_Class>Morpher <Integer>morph_channel <Integer>prog_morph_index Deletes the specified progressive morphfrom the given morph channel.
Available in 3ds Max 8 and higher.
EXAMPLE
--Deletes the second progressive morph of channel one. WM3_DeleteProgressiveMorphNode$Teapot01.morpher 1 2 -->OK --if the channel is empty, returns false: WM3_DeleteProgressiveMorphNode$Teapot01.morpher 100 1 -->false
WM3_AddProgressiveMorphNode <Morpher_Class>Morpher <Integer>morph_channel <Node>morph_target Adds a progressive morph to the given morph channel.
Available in3ds Max 8 and higher.
EXAMPLE
--Adds the node Teapot02 as progressive morph target of channel one. WM3_AddProgressiveMorphNode $Teapot01.morpher 1 $Teapot02 -->OK--if the node is invalid, returns false - in this case, cannot add itself: WM3_AddProgressiveMorphNode$Teapot01.morpher 1 $Teapot01 -->false
WM3_GetProgressiveMorphNode <Morpher_Class>Morpher <Integer>morph_channel <Integer>prog_morph_index Returns the progressive morph node with the given index from the specified morph channel.
Available in 3ds Max 8 and higher.
EXAMPLE
--Gets the second progressive morph target from channel one: WM3_GetProgressiveMorphNode $Teapot01.morpher 1 2 -->$Ediable_Mesh:Teapot01 @ [0.0,0.0,0.0] --if there is no such index or the channel is empty, returns undefined WM3_GetProgressiveMorphNode$Teapot01.morpher 1 10 -->undefined
WM3_SetProgressiveMorphWeight <Morpher_Class>Morpher <Integer>morph_channel <Node>prog_morph_node<Float>weight Sets the progressive morph weight for the targetnodein the specified morph channelto the supplied floating point value.
Available in 3ds Max 8 and higher.
The value will NOT be converted implicitly from Integer to Float if supplied as Integer. Always provide a floating point value!
EXAMPLE
--Sets the weight of Teapot02 in channel one to 25.0: WM3_GetProgressiveMorphNode$Teapot01.morpher 1 $Teapot02 25.0 -->OK
WM3_GetProgressiveMorphWeight <Morpher_Class>Morpher <Integer>morph_channel <Node>prog_morph_node Gets the progressive morph weight for the target node in the specified morph channel.
Available in 3ds Max 8 and higher.
WM3_SetProgressiveMorphTension <Morpher_Class>Morpher <Integer>morph_channel <Float>tension Sets the progressive morph tension of the specified morph channel to the supplied floating point value.
Available in 3ds Max 8 and higher.
EXAMPLE
--Sets the progressive morph tension of channel one to 0.3: WM3_GetProgressiveMorphNode $Teapot01.morpher 1 0.3 -->OK
WM3_GetProgressiveMorphTension <Morpher_Class>Morpher <Integer>morph_channel Gets the progressive morph tension of the specified morph channel as floating point value.
Available in 3ds Max 8 and higher.
EXAMPLE
--Gets the progressive morph tension of channel one: WM3_GetProgressiveMorphNode $Teapot01.morpher 1 -->0.3
WM3_NumberOfProgressiveMorphs <Morpher_Class>Morpher <Integer>morph_channel Returns the number of progressive morphs in the specified morph channel as integer.
Available in 3ds Max 8 and higher.
WM3_CreateMarker <Morpher_Class>Morpher <Integer>morph_channel <String>marker_name Creates a new marker with the given name in the specified morph channel.
Available in 3ds Max 8 and higher.
WM3_NumberOfMarkers <Morpher_Class>Morpher Returns the number of markers in the morph modifier as integer.
Available in 3ds Max 8 and higher.
WM3_SetMarkerData <Morpher_Class>Morpher <Integer>marker_index <Integer>morph_channel <String>marker_name Sets the marker data.
Available in 3ds Max 8 and higher.
WM3_GetMarkerName <Morpher_Class>Morpher <Integer>marker_index Returns the name of the indexed marker.
Available in 3ds Max 8 and higher.
WM3_GetMarkerIndex <Morpher_Class>Morpher <Integer>marker_index Returns the index of the indexed marker.
Returns false if the index is out of range. Available in 3ds Max 8 and higher.
WM3_SetCurrentMarker <Morpher_Class>Morpher <Integer>marker_index Sets the current marker to the indexed marker.
Available in 3ds Max 8 and higher.
WM3_GetCurrentMarker <Morpher_Class>Morpher Returns the index of the current marker.
Available in 3ds Max 8 and higher.
WM3_DeleteMarker <Morpher_Class>Morpher <Integer>marker_index Deletes the indexed marker.
Available in 3ds Max 8 and higher.
WM3_NumberOfChannels <Morpher_Class>Morpher Returns the number of channels displayed in the UI for the Morpher. Note that channels are added in batches of 100, so this method will return multiples of 100. Your script should determine whether the channel is active using WM3_MC_IsActive() before working with the channel.