Skin - superclass: modifier; super-superclass:MAXWrapper - 91:0 - classID: #(9815843, 87654)
Constructor
Skin ...
Properties
<Skin>.enableDQ BooleanClass default: true -- boolean
Get/Set the state of the "Dual Quaternion" > "DQ Skinning Toggle" checkbox.
Available in 3ds Max 2016 and higher.
<Skin>.Effect Float default: 0.0
Absolute weight of selected vertices.
<Skin>.filter_vertices Boolean default: false
Turn vertex selection on/off.
<Skin>.filter_cross_sections Boolean default: true
Turn cross-section selection on/off.
<Skin>.filter_envelopes Boolean default: true
Turn envelope selection on/off.
<Skin>.draw_all_envelopes Boolean default: false
When turned on, displays all envelopes. When off, only the selected envelopes are displayed.
<Skin>.draw_vertices Boolean default: true
Turn on/off the display of weighted vertices.
<Skin>.ref_frame Integer default: 0
Sets the frame where the bones and the mesh are in a reference position.
<Skin>.paint_radius Float default: 24.0
Sets the brush radius.
<Skin>.paint_feather Float default: 0.7
Sets the brush falloff.
<Skin>.cross_radius Float default: 10.0
Scales the selected envelope cross-section.
<Skin>.always_deform Boolean default: true
Always deforms the skin when the bones are moved. The Animate button does not have to be turned on to move bones and deform the skin.
<Skin>.paint_str Float default: 0.1
Sets the brush strength.
<Skin>.localSquash Array default: #() -- float array
Amount of squash applied to each bone.
<Skin>.initialSquash Array default: #() -- float array
Array containing initial squash values for a bone.
<Skin>.initialStaticEnvelope Boolean default: false
When turned on, an initial static envelope size is used when a bone is added. When off, the initial envelope size is determined by the object bounding box.
<Skin>.initialInnerEnvelopePercent Float default: 0.75
The multiplier used to find the inner cross-section size when initialStaticEnvelope
is false
.
<Skin>.initialOuterEnvelopePercent Float default: 3.5
The multiplier used to find the outer cross-section size when initialStaticEnvelope
is false
.
<Skin>.initialEnvelopeInner Float default: 10.0
The inner cross-section size when initialStaticEnvelope
is true
.
<Skin>.initialEnvelopeOuter Float default: 50.0
The outer cross-section size when initialStaticEnvelope
is true
.
<Skin>.draw_all_gizmos Boolean default: true
Turn on/off the display off all gizmos.
<Skin>.draw_all_vertices Boolean default: false
Turns on/off the display of all vertices as small dots.
<Skin>.shadeweights Boolean default: true
Turn on/off display of weighted vertices using vertex colors.
<Skin>.envelopesAlwaysOnTop Boolean default: true
Turn on/off display of envelopes on top of the mesh.
<Skin>.crossSectionsAlwaysOnTop Boolean default: true
Turn on/off display of cross-sections on top of the mesh.
<Skin>.rigid_vertices Boolean default: false
When turned on, a single vertex can only be affected by one bone.
<Skin>.rigid_handles Boolean default: false
When turned on, all handles have the same weights as the knot that owns them.
<Skin>.fast_update Boolean default: false
When turned on, the system uses only rigid vertices for the viewport display.
<Skin>.gizmos Array default: #() -- max object array
Array containing all gizmos assigned to skin.
The following properties have been added to the skin modifier in 3ds Max 5
<Skin>.backTransform Boolean default: true -- boolean; Back_Transform_Verts
Get/Set the state of the "Back Transform Vertices" checkbox in the Advanced Parameters rollout
<Skin>.bone_Limit Integer default: 20 -- integer
Get/Set the value of the "Bone Affect Limit" control in the Advanced Parameters rollout
<Skin>.debugMode Boolean default: true -- boolean
Get/Set the Debug mode for the modifier.
Not exposed to the UI, for internal use only.
When enabled, data will be output to the Listener window which may be useful for tracking bugs.
<Skin>.shortenBoneNames Boolean default: true -- boolean; Shorten_Bone_Names
Get/Set the Shorten Bone Names mode state.
When set to true, bone names longer than the width of the bone list will be shortened by adding "..." in the middle of the name and displaying only the start and end characters.
<Skin>.showNoEnvelopes Boolean default: false -- boolean; Shade_Weights
Get/Set the state of the "Show No Envelopes" checkbox in the Display rollout
<Skin>.updateOnMouseUp Boolean default: false -- boolean; Update_On_Mouse_Up
Get/Set the state of the "Update on mouse up" checkbox in the Advanced Parameters rollout
<Skin>.wt_activeVertexSet Integer default: 0 -- integer; Active_Vertex_Set
Get/Set the index of the Active Vertex Set drop-down list in the Weight Table dialog.
0 - All Vertices
1 - Selected Vertices
2 - Selected Bone
<Skin>.wt_affectSelected Boolean default: false -- boolean; Affect_Selected
Get/Set the Weight Table Affect Selected mode.
When set to true, the "Affect Selected" option will be selected in the drop-down list in the Weight Table dialog.
When false, "Affect All Verts" will be selected instead.
To see the drop-down list, Options>Show Global should be checked.
<Skin>.wt_attribLabelHeight Integer default: 1 -- integer; Attrib_Label_Height
Get/Set the Weight Table Height of the attribute labels.
<Skin>.wt_dragLeftRightMode Boolean default: true -- boolean; Drag_Left_Right_Mode
Get/Set the Weight Table Drag direction mode.
When set to true, dragging the mouse left-right will increase/decrease the value.
When false, dragging up/down will change the value.
<Skin>.wt_flipUI Boolean default: false -- boolean; Flip_UI
Get/Set the Weight Table UI Flip mode.
When set to true, the bone names will be displayed at the left side.
When false, the bone names will be displayed on top.
<Skin>.wt_fontSize Integer default: 14 -- integer; FontSize
Get/Set the Weight Table font size.
<Skin>.wt_markerColor Color default: (color 255 0 255) -- Marker_Color
Get/Set the Weight Table marker color.
<Skin>.wt_markerType Integer default: 6 -- integer; Marker_Type
Get/Set the Weight Table marker type.
<Skin>.wt_precision Float default: 0.01 -- float; Precision
Get/Set the Weight Table precision when dragging a field.
<Skin>.wt_shortenLabels Boolean default: true -- boolean; Shortern_Labels
When set to true, the Weight Table labels will be shortened.
<Skin>.wt_showAffectedBones Boolean default: false -- boolean; Show_Affected_Bones
Get/Set the Show Affected Bones mode state.
When enabled, it will filter out any bones that do not have any influence on the currently displayed vertices.
<Skin>.wt_showAttributes Boolean default: true -- boolean; Show_Attributes
Get/Set the Show Attributes mode state.
Corresponds to the item in the Weight Table’s Options menu.
When set to true will show the vertex attribute in the window, when set to false will remove the vertex attribute from the window.
<Skin>.wt_showCopyPasteUI Boolean default: true -- boolean; Show_Copy_and_Paste_UI
Controls the visibility of the Copy and Paste buttons in the Weight Table UI.
<Skin>.wt_showExclusions Boolean default: false -- boolean; Show_Exclusions
Gets/Sets the visibility of the exclusion toggle boxes.
Corresponds to the item in the Weight Table’s Options menu.
<Skin>.wt_showGlobal Boolean default: false -- boolean; Show_Global
Get/Set the Show Global mode state.
Corresponds to the item in the Weight Table’s Options menu.
When set to true the global fields will be shown.
When set to false, the global fields will be hidden.
<Skin>.wt_showLocks Boolean default: false -- boolean; Show_Locks
Gets/Sets the visibility of the Locks toggle boxes.
Corresponds to the item in the Weight Table’s Options menu.
<Skin>.wt_showMarker Boolean default: true -- boolean; Show_Weight_Table_Marker
Controls the marker visibility in the viewport for the selected vertices in the Weight Table.
<Skin>.wt_showMenu Boolean default: true -- boolean; Show_Menu
Controls the menu visibility. Takes effect after re-opening the Weight Table.
<Skin>.wt_showOptionsUI Boolean default: false -- boolean; Show_Options_UI
Controls the Options panel visibility of the Weight Table dialog.
This is not exposed to the standard UI.
<Skin>.wt_showSetUI Boolean default: false -- boolean; Show_Set_Sets_UI
Controls the Vertex Selection sets panel visibility of the Weight Table dialog.
<Skin>.wt_tableY Integer default: 10 -- integer; Top_Border
Controls the Y position of the top of the Weight Table.
In other words it defines the height of the additional options panel on top of the Weight Table dialog.
<Skin>.wt_updateOnMouseUp Boolean default: false -- boolean; Update_On_Mouse_Up
Controls the state of the "Update On Mouse Up" item the Weight Table’s Options menu.
When set to true, the viewport and stack will be updated only when the mouse is released.
<Skin>.wt_winHeight Integer default: 500 -- integer; Height
Get/set the Weight Table’s window height.
Setting takes effect after re-opening the Weight Table.
<Skin>.wt_winWidth Integer default: 800 -- integer; Width
Get/set the Weight Table’s window width. Setting takes effect after re-opening the Weight Table.
<Skin>.wt_winXPos Integer default: 0 -- integer; Xpos
Get/set the Weight Table’s window horizontal position in pixels relatively to the upper left corner of the Windows desktop. Setting takes effect after re-opening the Weight Table.
<Skin>.wt_winYPos Integer default: 0 -- integer; YPos
Get/set the Weight Table’s window vertical position in pixels relatively to the upper left corner of the Windows desktop. Setting takes effect after re-opening the Weight Table.
The following properties have been added to the Skin modifier in 3ds Max 6
<Skin>.mirrorPlane Integer default: 0 -- integer; Mirror_Plane
Get/Set the mirror plane axis. Possible values are:
0 - X (default)
1 - Y
2 - Z
<Skin>.mirrorOffset Float default: 0.0 -- float; Mirror_Offset
Get/Set the mirror offset value.
<Skin>.mirrorUseInitialTM BooleanClass default: true -- boolean; Use_Initial_TM
When set to true
, the mirror will use the initial transformation matrix.
<Skin>.mirrorEnabled BooleanClass default: false -- boolean; Mirror_Enabled
When set to true
, mirror mode will be enabled. Corresponds to the "Mirror Mode" checkbutton in the Skin Modifier's UI.
<Skin>.mirrorThreshold Float default: 0.5 -- float; Mirror_Threshold
Get/Set the mirror threshold value.
<Skin>.mirrorProjection Integer default: 0 -- integer; Mirror_Projection
Get/Set the mirror projection mode. Possible values are:
0 - Default Display
1 - Positive Direction
2 - Negative Direction
3 - None
<Skin>.manualUpdate BooleanClass default: false -- boolean; Manual_Update
Controls the state of the "Manual Update" checkbox in the Skin Modifier's UI, "Mirror Parameters" rollout.
<Skin>.mirrorFast BooleanClass default: true -- boolean; Fast_Engine
When set to false
, disables the fast mirror mode.
<Skin>.ignoreBoneScale BooleanClass default: false -- boolean; Ignore_Bone_Scale
Controls the state of the "Ignore Bone Scale" checkbox in the "Advanced Parameters" rollout of the Skin Modifier's UI.
<Skin>.rightJustifyBoneText BooleanClass default: true -- boolean; Right_Justify_Bone_Names
When set to true
(default), bone text in the Weight Table dialog will be right-justified.
The following property has been added to 3ds Max 6 but is not officially supported.
Use at your own risk:
<Skin>.paintBlendMode BooleanClass default:false
Lets you paint Skin weights in Blend mode when set to true.
The following properties have been added to the Skin modifier in 3ds Max 8
<Skin>.selectElement BooleanClass default: false -- boolean; Select_Element
Get/Set the state of the Select Element checkbox in the Select group of controls in the Parameters rollout.
<Skin>.backFaceCull BooleanClass default: true -- boolean; Backface_Cull
Get/Set the state of the Backface Cull Vertices checkbox in the Select group of controls in the Parameters rollout.
<Skin>.colorAllWeights BooleanClass default: false -- boolean; Shade_Weights
Get/Set the state of the Color All Weights checkbox in the Display rollout.
<Skin>.showHiddenVertices BooleanClass default: false -- boolean; Show_Hidden_Vertices
Get/Set the state of the Show Hidden vertices checkbox in the Display rollout.
<Skin>.animatableEnvelopes BooleanClass default: false -- boolean; Animatable_Envelopes
Get/Set the state of the Animatable Envelopes checkbox in the Advanced Parameters rollout.
<Skin>.weightAllVertices BooleanClass default: true -- boolean; Weight_All_Vertices
Get/Set the state of the Weight All vertices checkbox in the Advanced Parameters rollout.
<Skin>.clearZeroLimit Float default: 0.0 -- float; Clear_Zero_Weights_Limit
Get/Set the Remove Zero Limit value in the Advanced Parameters rollout.
<Skin>.weightColors ArrayParameter default: #([0.9,0,0], [0,0.9,0], [0,0,0.9], [0.9,0.9,0], [0,0.9,0.9], [0.9,0,0.9], [0.49,0,0], [0,0.49,0], [0,0,0.49], [0.49,0.49,0], [0,0.49,0.49], [0.9,0.49,0], [0,0.49,0.9], [0.49,0.9,0], [0,0.9,0.49], [0.49,0,0.49], [0.9,0,0.49], [0.49,0,0.9], [0.49,0.49,0.9], [0.9,0.49,0.49], [0.9,0.49,0.9], ...) -- point3 array; Weight_Colors
Get/Set the colors to be used to display the weights.
<Skin>.weightTool_scale Float default: 0.95 -- float; Scale
Get/Set the Weight Tool's scale value.
<Skin>.weightTool_tolerance Float default: 0.1 -- float; Tolerance
Get/Set the Weight Tool's tolerance value.
<Skin>.weightTool_weight Float default: 0.5 -- float; Weight
Get/Set the Weight Tool's weight value.
Methods
In previous versions, some of these methods required the target object be selected, and that the Skin modifier be active in the Modify panel. Available in 3ds Max 2019.2 Update and higher. These methods now take an optional node:<node>
or name:<string>
argument, and are applied to that node or named node. These arguments may be a single node or name, or an array of nodes or names. If no node is specified, the methods require that the Skin modifier be the displayed modifier in the Modify panel, and that the Modify panel is active.
In previous versions these methods always required that the target object is selected, the Skin modifier be the displayed modifier in the Modify panel, and that the Modify panel is active.
skinOps.addbone <Skin> <Bone_node> <Update_integer> [(node:<node> | name:<string>)]
Adds a bone to the current system.
For Update_integer
, - 1 forces a complete update and redraw, 0 does not update the system.
This allows you to add a bunch of bones to a system and then update once at the end.
skinOps.addBoneFromViewEnd <Skin>
Ends the addBoneFromViewStart
command mode.
skinOps.addBoneFromViewStart <Skin>
Puts you in a command mode where you can select bones from the viewport by clicking on them.
You can exit this mode by right clicking or calling addBoneFromViewEnd
.
skinOps.addCrossSection <Skin> <BoneID_integer> <U_float> <InnerRadius_float> <OuterRadius_float> \
[node:<node>]
Adds a cross section to the bone whose index matches BoneID_integer.U_float
, which ranges from 0.0-1.0, defines where along the bone to add the cross-section.
skinOps.addCrossSection <Skin> <U_float>
Adds a cross section to the current selected bone.
The inner and outer radii are computed based on the neighboring cross sections .U_float
, which ranges from 0.0-1.0, defines where along the bone to add the cross-section.
skinOps.addCrossSection <Skin> <U_float> <InnerRadius_float> <OuterRadius_float>
Adds a cross section to the current selected bone.U_float
, which ranges from 0.0-1.0, defines where along the bone to add the cross-section.
skinOps.growSelection <Skin>
Grows the current vertex selection of the specified Skin modifier.
Equivalent to pressing the Grow button in the Parameters rollout > Select group of controls in the modifier's UI.
skinOps.shrinkSelection <Skin>
Shrinks the current vertex selection of the specified Skin modifier.
Equivalent to pressing the Shrink button in the Parameters rollout > Select group of controls in the modifier's UI.
skinOps.loopSelection <Skin>
Performs Loop Selection using the current vertex selection of the specified Skin modifier as base.
Equivalent to pressing the Loop button in the Parameters rollout > Select group of controls in the modifier's UI.
skinOps.ringSelection <Skin>
Performs Ring Selection using the current vertex selection of the specified Skin modifier as base.
Equivalent to pressing the Ring button in the Parameters rollout > Select group of controls in the modifier's UI.
skinOps.bakeSelectedVerts <Skin>
Bake the selected vertices.
skinOps.blendSelected <Skin>
Blends the selected vertices.
skinOps.getSelectedVertices <Skin> [(node:<node> | name:<string>)]
Gets an array of selected vertices.
skinOps.buttonAdd <Skin>
Presses the add bone button.
skinOps.buttonAddCrossSection <Skin>
Presses the add cross section button.
skinOps.buttonAddGizmo <Skin>
Presses the add gizmo button in the gizmo rollout.
skinOps.buttonCopyGizmo <Skin>
Presses the copy gizmo button in the gizmo rollout.
skinOps.buttonExclude <Skin>
Presses the exclude vertices button.
skinOps.buttonInclude <Skin>
Presses the include vertices button.
skinOps.buttonPaint <Skin>
Presses the paint button.
skinOps.buttonPasteGizmo <Skin>
Presses the paste gizmo button in the gizmo rollout.
skinOps.buttonRemove <Skin>
Presses the remove bone button.
skinOps.buttonRemoveGizmo <Skin>
Presses the remove gizmo button in the gizmo rollout.
skinOps.buttonSelectExcluded <Skin>
Presses the select excluded vertices button.
skinOps.paintOptionsButton <Skin>
Presses the Paint Options button and opens the Paint Options dialog.
EXAMPLE
skinOps.paintOptionsButton $.skin
skinOps.paintWeightsButton <Skin>
Presses the Weights button and enters the Paint Weights mode.
skinOps.buttonWeightTable <Skin>
Brings up the Skin Weight Table for the specified modifier.
skinOps.isWeightTableOpen <Skin>
Returns 1 if the Skin Weight Table is open for the specified modifier, 0 if it is closed.
skinOps.closeWeightTable <Skin>
Closes the Skin Weight Table of the specified modifier.
skinOps.WeightTool <Skin>
Opens the Weight Tool of the specified Skin modifier.
skinOps.isWeightToolOpen <Skin>
Returns 1 if the Weight Tool of the specified Skin modifier is open, 0 if it is closed.
skinOps.closeWeightTool <Skin>
Closes the Weight Tool of the specified Skin modifier if it is already open.
skinOps.removebone <Skin>
Removes the current selected bone from the bones system.
skinOps.removebone <Skin> <BoneID_integer> [(node:<node> | name:<string>)]
Removes the BoneID from the bones system.
skinOps.multiRemove <Skin>
Brings up a list box where the user can delete multiple bones instead of one at a time.
skinOps.replaceBone <Skin> <BoneID_integer> [(node:<node> | name:<string>)] vertices:<list>
Replaces the specified bone with a bone defined by the vertices list.
skinOps.removeUnusedBones <Skin> threshold:<float> [(node:<node> | name:<string>)]
Removes bones with weights below the specified threshold.
skinOps.copySelectedBone <Skin <Skin>
Copies current selected bone properties to the copy buffer.
skinOps.pasteAllBones <SkinModifier> <boolean>
This method will paste all bones across the mirror plane going in the direction defined by the Bool parameter - if true
, it pastes from blue to green, otherwise from green to blue.
skinOps.pasteToAllBones <Skin>
Pastes the copy buffer to all the bones.
skinOps.pasteToBone <Skin> <BoneID_int>
Pastes the copy buffer to bone id supplied.
skinOps.pasteToSelectedBone <Skin>
Pastes the copy buffer to the current selected bone.
skinOps.copyWeights <Skin>
Copies the weights table for the specified skin into the copy buffer.
skinOps.pasteWeights <Skin>
Pastes the copied in the weights table copy buffer to the specified skin.
skinOps.pasteWeightsByPos <Skin>
Assigns the weight values currently in the copy buffer to the selected vertices based on the distance between them and the copied vertices, which is determined by the Paste-Pos Tolerance value in the UI. This is useful when you need to match weights between two superimposed skinned meshes sharing a common bone.
skinOps.pasteAllVerts <SkinModifier> <boolean>
This method will paste all vertices across the mirror plane going in the direction defined by the Bool parameter - if true
, it pastes from blue to green, otherwise from green to blue.
skinOps.enableDQOverrideWeighting <SkinModifier> <boolean>
Specifies whether to enable Dual Quaternion override weighting for the specified SkinModifer. When The second argument is true, Dual Quaternion override weighting is enabled.
skinOps.getVertexDQWeight <SkinModifier> <integer>
Returns the dual quaternion weighting for the specified SkinModifier for the vertex at the index indicated by the second argument.
skinOps.setVertexDQWeight <SkinModifier> <integer> <float>
Sets the dual quaternion weight for the specified SkinModifier, on the vertex at the index indicated by the second argument, to the value specified by the third argument.
For example:
skinOps.setVertexDQWeight $.modifiers[1] 1 0.5
skinOps.GetSelectedBone <Skin>
Returns the index of the current selected bone in the Bone list.
skinOps.GetNumberBones <Skin>
Returns the number of bones in the system.
skinOps.GetBoneName <Skin> <bone_index> <nameflag_index>
Returns the bone name or node name of a bone specified by ID.
bone_index
is the bone system ID for the bone.
nameflag_index
can be 0 or 1:
If a Bones system is used for the Skin bones, the transform for a bone is held by its parent.
skinOps.GetBoneIDByListID <Skin> <ListID_integer>
Returns the BoneID index given the ListID index value.
The ListID index is the index into the name-sorted bone listbox.
The BoneID index is the non-sorted index, and is the index used by other methods that require a bone index.
Available in 3ds Max 2015 and higher.
skinOps.GetListIDByBoneID <Skin> <BoneID_integer>
Returns the ListID index given the BoneID index value.
The ListID index is the index into the name-sorted bone listbox.
The BoneID index is the non-sorted index, and is the index used by other methods that require a bone index.
Available in 3ds Max 2015 and higher.
skinOps.GetBoneNodes <Skin>
Returns an array of bone nodes in the same order they exist in the skin modifier.
skinOps.GetBoneNode <Skin> <BoneIndex_integer>
Returns the bone node specified by index.
skinOps.getBonePropFalloff <Skin> <BoneID_integer>
Returns the falloff parameter of the bone.
1 - linear
2 - sinual
3 - fast out
4 - slow out
skinOps.setBonePropFalloff <Skin> <BoneID_integer> <Falloff_integer>
Sets the falloff parameter of the bone.
For Faloff_integer
, the fall off of the bone is:
1 - linear
2 - sinual
3 - fast out
4 - slow out
skinOps.getBonePropRelative <Skin> <BoneID_integer>
Gets the relative property of the bone. It returns 1 if relative, or 0 if absolute.
skinOps.setBonePropRelative <Skin> <BoneID_integer> <Relative_integer>
Sets the relative property of the bone whose index matches BoneID_integer
.
For Relative_integer, 0 is absolute and 1 is relative.
skinOps.getBonePropEnvelopeVisible <Skin> <BoneID_integer>
Returns the bone visibility parameter of the bone. 0 is invisible, 1 is visible.
skinOps.setBonePropEnvelopeVisible <Skin> <BoneID_integer> <Visible_integer>
Sets the bone visibility parameter of the bone whose index matches BoneID_integer
.
For Visible_integer
, 0 is visible, 1 is invisible when not selected.
skinOps.getSelectedBonePropEnvelopeVisible <Skin>
Returns the bone visibility parameter of the current selected bone. 0 is invisible, 1 is visible.
skinOps.setSelectedBonePropEnvelopeVisible <Skin> <Visible_integer>
Sets the bone visibility parameter of the current selected bone.
For Visible_integer
, 0 = visible, 1 = invisible when not selected
skinOps.GetStartPoint <Skin> <BoneID_integer>
Returns a point3 which is the start point of the bone.
skinOps.SetStartPoint <Skin> <BoneID_integer> <EndPointPos_point3>
Sets the start point of the specified bone
skinOps.GetEndPoint <Skin> <BoneID_integer>
Returns a point3 which is the end point of the bone.
skinOps.SetEndPoint <Skin> <BoneID_integer> <EndPointPos_point3>
Sets the end point of the specified bone.
skinOps.GetInnerRadius <Skin> <bone_integer> <CrossSectionID_integer>
Returns the inner cross section radius for the specified bone and cross section.
skinOps.SetInnerRadius <Skin> \ <bone_integer> <CrossSectionID_integer> <Radius_float>
Sets the inner cross section radius for the specified bone and cross section.
skinOps.GetOuterRadius <Skin> <bone_integer> <CrossSectionID_integer>
Returns the outer cross section radius for the specified bone and cross section.
skinOps.SetOuterRadius <Skin> \ <bone_integer> <CrossSectionID_integer> <Radius_float>
Sets the outer cross section radius for the specified bone and cross section.
skinOps.GetCrossSectionU <Skin> <BoneID_integer> <CrossSectionID_integer>
Gets the U value from the specified bone and cross section
skinOps.SetCrossSectionU <Skin> <BoneID_integer> <CrossSectionID_integer> <U_float>
Sets the U value from the specified bone and cross section.
skinOps.enableGizmo <Skin> <GizmoID_integer> <Enable_bool>
Enables/disables the gizmo type whose index equals GizmoID_integer
.
skinOps.getNumberOfGizmos <Skin>
Returns the number of gizmos.
skinOps.getNumberOfGizmoTypes <Skin>
Returns the number of gizmo types.
skinOps.getSelectedBonePropFalloff <Skin>
Returns the falloff parameter of the current selected bone:
1 - linear
2 - sinual
3 - fast out
4 - slow out
skinOps.setSelectedBonePropFalloff <Skin> <Falloff_integer>
Sets the falloff parameter of the current selected bone.
The falloff_integer
sets the fall off of the bone:
1 - linear
2 - sinual
3 - fast out
4 - slow out
skinOps.getSelectedBonePropRelative <Skin>
Gets the relative property of the current selected bone. It returns 1 if relative or 0 is absolute.
skinOps.getNumberCrossSections <Skin> <bone_integer>
Returns the number of cross sections for the specified bone.
skinOps.getSelectedCrossSectionIndex <Skin>
Returns the index of the currently selected cross section.
skinOps.getSelectedCrossSectionIsInner <Skin>
Returns 1 if the selected cross section is an inner cross section.
skinOps.getSelectedGizmo <Skin>
Returns the current selected gizmo.
skinOps.getSelectedGizmoType <Skin>
Returns the current gizmo type in the specified SkinModifier.
skinOps.GetNumberVertices <Skin>
Returns the number of vertices for the object the Skin modifier is applied to.
skinOps.RemoveCrossSection$ <Skin>
Removes the current selected cross section from the current selected bone.
skinOps.RemoveCrossSection <Skin> <BoneID_integer> <CrossSectionID_integer>
Removes a particular cross-section from a particular bone.
skinOps.setSelectedBonePropRelative <Skin> <Relative_integer>
Sets the relative property of the current selected bone.
For relative_integer
, 0 is relative mode, 1 is absolute mode.
skinOps.addWeight <SkinModifier> <float>
Adds weight indicated by the second parameter to the current vertex selection for the specified SkinModifier. Note that the final weight value is clamped to [0.0,1.0].
skinOps.SetWeight <Skin> <weight_float>
Sets the weight of the selected vertices in the specified Skin modifier to the given floating point weight value.
If deferred plug-in loading is enabled, an instance of the Skin modifier must be created before these methods will be visible.
This is because these methods are defined in the Skin modifier plug-in.
skinOps.scaleWeight <SkinModifier> <float>
Scales the weight of the currently selected vertices in the specified SkinModifier by the value in the second argument. Note that the final weight value is clamped to [0.0,1.0].
skinOps.GetVertexWeight <Skin> <vertex_integer> <vertex_bone_integer>
Returns the influence of the Nth bone affecting the specified vertex.
skinOps.SetVertexWeights <Skin> <vertex_integer> \ ( <vertex_bone_integer> | <vertex_bone_array> ) \
( <weight_float> | <weight_array> ) [(node:<node> | name:<string>)]
Sets the influence of the specified bone(s) to the specified vertex.
Any influence weights for the bone(s) that are not specified are retained.
If the bones and weights are specified as arrays, the arrays must be of the same size.
skinOps.GetVertexWeightBoneID <Skin> <vertex_integer> <vertex_bone_integer>
Returns the system bone index of the Nth bone affecting the specified vertex.
skinOps.GetVertexWeightCount <Skin> <vertex_integer>
Returns the number of bones influencing the specified vertex.
skinOps.ReplaceVertexWeights <Skin> <vertex_integer> \ ( <vertex_bone_integer> | <vertex_bone_array> ) \
( <weight_float> | <weight_array> ) [(node:<node> | name:<string>)]
Sets the influence of the specified bone(s) to the specified vertex.
Any influence weights for the bone(s) that are not specified are erased.
If the bones and weights are specified as arrays, the arrays must be of the same size.
skinOps.RemoveZeroWeights <Skin>
Available in 3ds Max 2017 and higher: Removes the influence of bones that have a weight on a vertex that is less than the threshold value specified by the .clearZeroLimit
. property of the modifier.
Equivalent to pressing the "Remove Zero Weights" button in the "Advanced Parameters" rollout of the modifier's UI.
skinOps.voxelWeighting <Skin> <mode_integer> <falloff_float> <max_influence_integer> \
<max_res_integer> <winding_bool> <envelope_off_bool> [(node:<node> | name:<string>)]
Available in 3ds Max 2017 and higher: Performs voxel weighting of the specified Skin modifier.
The <mode_integer>
argument defines the Weight Solver to use, where 0 = Voxel, 1 = Heat Map
The <falloff_float>
argument defines the Falloff, UI default is 0.2.
The <max_influence_integer>
argument defines the maximum number of bones that can influence a vertex. UI default is 0 which means no limit.
The <max_res_integer>
argument defines the Maximum resolution of the voxel grid. The UI default is 256. Only used by the Voxel mode, but must be specified even when performing Heat Map Weighting.
The <winding_bool>
argument corresponds to the "Use Winding Numbers" checkbox in the UI which is unchecked by default. Only used by the Voxel mode, but must be specified even when performing Heat Map Weighting.
The <envelope_off_bool>
argument corresponds to the "Turn Off Envelope Gizmos" checkbox in the UI which is checked by default.
skinOps.SetBoneWeights <Skin> <boneIds> <weights> [(node:<node> | name:<string>)]
Sets all vertex influence weights for a specified bone, erasing all previous weights for the bone. Available in 3ds Max 2019.2 Update and higher.
The <boneIds>
argument can be a bone ID, or an array of bone IDs.
The <weights>
argument can be an array of floats, in the case of a single bone ID, or an array of arrays of floats, when the <boneId>
argument is an array. There needs to be one float weight for each vertex.
skinOps.Hammer <Skin> <vertices> [(node:<node> | name:<string>)]
Performs a vertex weight "hammer" operation on the specified vertices. Available in 3ds Max 2019.2 Update and higher. This resets the bone vertex weights to an average of all adjacent vertices.
The <vertices>
argument can be a single vertex number, an array of vertices, or a bitarray.
skinOps.isBoneSelected <Skin> <BoneID_integer> [(node:<node> | name:<string>)]
Returns 1 if the bone is selected, otherwise 0.
skinOps.isRigidHandle <Skin> <handle_integer> [(node:<node> | name:<string>)]
Returns true
if the handle is rigid, false otherwise.
skinOps.isRigidVertex <Skin> <vertex_integer> [(node:<node> | name:<string>)]
Returns true
if the vertex is rigid, false otherwise.
A rigid vertex will only be weighted to one bone.
skinOps.IsVertexModified <Skin> <vertex_integer>
Returns 1 if the vertex has been modified, 0 if it has not been modified.
A modified vertex is vertex that has been weighted by hand or painting, an unmodified vertex weight depends solely on the envelopes.
skinOps.IsVertexSelected <Skin> <vertex_integer> [(node:<node> | name:<string>)]
Returns 1 if the vertex is selected, 0 if it is not selected.
skinOps.isUnNormalizeVertex <Skin> <vertex_integer> [(node:<node> | name:<string>)]
Returns true
if the vertex is unnormalized, false
if it is normalized.
A normalized vertex’ weights will sum up to 1.
skinOps.unNormalizeVertex <Skin> <vertex_integer> <boolean> [(node:<node> | name:<string>)]
Unnormalizes the specified vertex. A normalized vertex’ weights will sum up to 1.
skinOps.loadEnvelope <Skin> [<filename_string>]
If the optional filename_string is supplied, loads the envelopes from the file supplied.
If not, opens the load envelopes dialog.
skinOps.saveEnvelope <Skin> [<filename_string>]
If the optional filename_string is not supplied, opens the save envelopes dialog. If the optional filename_string is supplied, saves the envelopes to the file supplied.
skinOps.loadEnvelopeAsASCII <Skin>
Loads the envelopes to the file supplied
skinOps.saveEnvelopeAsASCII <Skin> [<filename_string>]
If the optional filename_string is not supplied, opens the save envelopes dialog.
If the optional filename_string is supplied, saves the envelopes to the file supplied as ASCII text file.
skinOps.SetSelectedCrossSection <SkinModifier> <float>
Sets the radius of the selected cross section for the specified SkinModifier.
skinOps.buttonRemoveCrossSection <Skin>
Presses the remove cross section button.
skinOps.resetAllBones <Skin>
Resets all bones.
skinOps.resetSelectedBone <Skin>
Resets the current selected bone.
skinOps.resetSelectedVerts <Skin>
Resets the current selected vertices.
skinOps.rigidHandle <Skin> <handle_integer> [(node:<node> | name:<string>)]
Sets the specified handle as rigid. A rigid handle vertex will have the same weight as the knot that owns it.
skinOps.rigidVertex <Skin> <vertex_integer> [(node:<node> | name:<string>)]
Sets the specified vertex as rigid. A rigid vertex will only be weighted to one bone.
skinOps.SelectBone <Skin> <bone_integer> [(node:<node> | name:<string>)]
Selects the specified bone in the Bone list.
skinOps.selectBoneByNode <SkinModifier> <INode>
Selects the bone that corresponds to the specified node in the specified SkinModifier.
skinOps.selectNextBone <Skin>
Selects the next bone in the bone list.
skinOps.selectPreviousBone <Skin>
Selects the previous bone in the bone list.
skinOps.selectParent
Selects the parent bone in the bone list.
skinOps.selectChild
Selects the child bone in the bone list.
skinOps.selectPreviousSibling
Selects the previous sibling bone in the list.
skinOps.selectNextSibling
Selects the next sibling bone in the list.
skinOps.selectMirrorBones <SkinModifier> (<integer> | <arrayOfIntegers>)
Selects the mirror bone(s) from the index or array of indices provided on the specified SkinModifier.
For example:
skinOps.selectMirrorBones $.modifiers[1] 5
indices = #(1,2,5,6,9,10)
skinOps.selectCrossSection <Skin> <CrossSectionID_integer> <Inner_Outer_integer>
Selects a cross section on the current selected bone.
For Inner_Outer_integer
, 0 is the inner envelope 1 is the outer envelope.
skinOps.selectStartPoint <Skin>
Selects the end point of the envelope of the current selected bone.
skinOps.selectEndPoint <Skin>
Selects the start point of the envelope the current selected bone.
skinOps.selectGizmo <Skin> <gizmoID_int>
Selects the gizmo whose index equals gizmoID_int
.
skinOps.selectGizmoType <Skin> <gizmoTypeID_int>
Selects the gizmo type whose index equals gizmoTypeID_int
.
skinOps.SelectVertices <Skin> \ ( <vertex_integer> | <vertex_array > | <<vertex_bitarray> )
Selects the specified vertices.
skinOps.selectVerticesByBone <bone_index>
Selects the vertices associated with the specified bone index.
skinOps.setMirrorTM <SkinModifier> <Matrix3>
If mirror mode is enabled, this method sets the initial TM of the mirror data to the provided Matrix3.
skinOps.updateMirror <SkinModifier>
Build the mirror bone connections and set the vertex mirror data, if mirror data is enabled.
skinOps.mirrorPaste <SkinModifier>
Performs a mirror paste of the mirror data for the specified SKinModifier, using the current selection, if mirror mode is enabled.
For example:
skinOps.mirrorPaste $.modifiers[1]
skinOps.mirrorPasteBone <SkinModifier> <source_bone_integer> <dest_bone_integer>
Pastes the mirror data from the source bone to the destination bone, using the current mirror plane TM.
skinOps.ZoomToBone <Skin> <All_boolean>
Zooms the active or all views to the selected bone. If All_boolean
is true
, then all views are zoomed.
skinOps.ZoomToGizmo <Skin> <All_boolean>
Zooms the active or all views to the selected gizmo. If All_boolean
is true
, then all views are zoomed.
skinOps.gizmoResetRotationPlane <SkinModifier>
Resets the rotation plane for the currently selected gizmo using the current bone orientation to define the plane.
skinOps.Invalidate <Skin> <integer>
Invalidates the Skin’s internal cache, forcing it to recompute all the data.
The integer parameter is not used, but should be passed when calling the method.
Related Interfaces