Go to: Synopsis. Return value. Keywords. Related. Flags. MEL examples.


copySkinWeights [-destinationSkin string] [-influenceAssociation string] [-mirrorInverse] [-mirrorMode string] [-noBlendWeight] [-noMirror] [-normalize] [-sampleSpace uint] [-smooth] [-sourceSkin string] [-surfaceAssociation string] [-uvSpace string string]

copySkinWeights is undoable, queryable, and editable.

Command to copy or mirror the skinCluster weights accross one of the three major axes. The command can be used to mirror weights either from one surface to another or within the same surface.

Return value


In query mode, return type is based on queried flag.


skinCluster, duplicate, mirror


skinCluster, skinPercent


destinationSkin, influenceAssociation, mirrorInverse, mirrorMode, noBlendWeight, noMirror, normalize, sampleSpace, smooth, sourceSkin, surfaceAssociation, uvSpace
Long name (short name) Argument types Properties
-sourceSkin(-ss) string createqueryedit
Specify the source skin shape
-destinationSkin(-ds) string createqueryedit
Specify the destination skin shape
-normalize(-nr) createqueryedit
Normalize the skin weights.
-noMirror(-nm) createqueryedit
When the no mirror flag is used, the weights are copied instead of mirrored.
-mirrorInverse(-mi) createqueryedit
Values are mirrored from the positive side to the negative. If this flag is used then the direction is inverted.
-smooth(-sm) createqueryedit
When the smooth flag is used, the weights are smoothly interpolated between the closest vertices, instead of assigned from the single closest.
-mirrorMode(-mm) string createqueryedit
The mirrorMode flag defines the plane of mirroring (XY, YZ, or XZ) when the mirror flag is used. The default plane is XY.
-surfaceAssociation(-sa) string createqueryedit
The surfaceAssociation flag controls how the weights are transferred between the surfaces: "closestPoint", "rayCast", or "closestComponent". The default is closestComponent.
-influenceAssociation(-ia) string createqueryeditmultiuse
The influenceAssociation flag controls how the influences on the source and target skins are matched up. The flag can be included multiple times to specify multiple association schemes that will be invoked one after the other until all influences have been matched up. Supported values are "closestJoint", "closestBone", "label", "name", "oneToOne". The default is closestJoint.
-sampleSpace(-spa) uint createqueryedit
Selects which space the attribute transfer is performed in. 0 is world space, 1 is model space. The default is world space.
-uvSpace(-uv) string string createqueryedit
The uvSpace flag indicates that the weight transfer should occur in UV space, based on the source and destination UV sets specified.
-noBlendWeight(-nbw) createqueryedit
When the no blend flag is used, the blend weights on the skin cluster will not be copied across to the destination.

Flag can appear in Create mode of command Flag can appear in Edit mode of command
Flag can appear in Query mode of command Flag can be used more than once in a command.

MEL examples

// Create plane and a skeleton. Bind the skin.
file -f -new;
polyPlane -w 10 -h 10 -sx 5 -sy 5 -ax 0 1 0 -ch 1;
select -d pPlane1 ;
select -d;
joint -p 0 0 -6 ;
joint -p 0 0 -4 ; joint -e -zso -oj xyz joint1;
joint -p 2 0 -4 ; joint -e -zso -oj xyz joint2;
joint -p 5 0 -3 ; joint -e -zso -oj xyz joint3;
select -r joint2;
joint -p -2 0 -4 ; joint -e -zso -oj xyz joint2;
joint -p -5 0 -3 ; joint -e -zso -oj xyz joint5;
select -r joint2;
joint -p 0 0 3 ; joint -e -zso -oj xyz joint2;
joint -p 5 0 5 ; joint -e -zso -oj xyz joint7;
select -r joint7;
joint -p -5 0 5 ; joint -e -zso -oj xyz joint7;
select -r joint1 pPlane1 ;
createSkinCluster "-mi 5 -dr 4";
// Modify some weights on the -x side of the character
skinPercent -tv joint2  0.200000 skinCluster1 pPlane1.vtx[30];
skinPercent -tv joint2  0.200000 skinCluster1 pPlane1.vtx[31];
skinPercent -tv joint5  0.550000 skinCluster1 pPlane1.vtx[24];
skinPercent -tv joint5  0.550000 skinCluster1 pPlane1.vtx[25];
// Mirror the skin weights to the other side of the character
// Mirror inverse is chosen since we want to go from -x to +x, not +x to -x.
copySkinWeights -ss skinCluster1 -ds skinCluster1 -mirrorMode YZ -mirrorInverse;
// Now create a second plane and bind it as skin
polyPlane -w 10 -h 10 -sx 5 -sy 5 -ax 0 1 0 -tx 1 -ch 1;
select -r joint1 pPlane2 ;
createSkinCluster "-mi 5 -dr 4";
// Copy the skin weights from the first plane onto the new plane.
// The -noMirror flag is used since we want to copy directly, not mirror.
copySkinWeights -ss skinCluster1 -ds skinCluster2 -noMirror;