Keep up-to-date with Free tutorials!!


Sign up to our twice-monthly newsletter today for the latest tutorials, interviews and product information.

Sign me up to receive third-party emails from 3dtotal's partners, too!

- Latest news
- Exclusive Shop Offers
- Preview early content
- Plus much more


Not Ready to take that step? OK, Why not just Subscribe to the RSS Feed

submit tutorial
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
Painting Weights and Skinning: A Straightforward Approach

| Your Rating:
rating star fullrating star fullrating star fullrating star fullrating star half
(Score 4.73 out of 5 after 11 Votes)
| Comments 1
Date Added: 10th April 2013
Software used:

Merge the meshes together, then weld the Border edges back together. Here are the results in a single mesh (Fig.20).

Fig. 20 - Single final mesh

Transferring the Weights Back

Here is a MEL script that will transfer the weights from one mesh and apply them to other meshes.
To run this script, do the following:

• Select all of the code below and paste it into the Script Editor
• Select all the meshes you'd like to paste weights to
• Shift + select the mesh that has proper weighting
• Select all the code in the Script Editor
• Hit Enter

//Select meshes to transfer weight to, then shift-select the mesh with weights, then run this script

string $userSel[] = `ls -sl`;

if(`size($userSel)` > 1)

select $userSel[((`size($userSel)`) - 1)];
string $cageMesh[] = `ls -sl`;

select $userSel;
select -tgl $cageMesh;
string $pieces[] = `ls -sl`;

//get inputs of weights in skin
string $theJoints[] = `skinCluster -q -wi $cageMesh`;

if(`size($theJoints)` > 0 && $cageMesh[0] != "")

int $counter;
int $sizer = size($pieces);

for ($counter = 0; $counter < $sizer; $counter++)

//Determine if skinCluster exists on piece
string $skins[] ;
clear $skins ;

string $hist[] = `listHistory -pdo 1 -il 2 $pieces[$counter]` ;
string $h ;

for ($h in $hist)
if (nodeType($h) == "skinCluster")
$skins[size($skins)] = $h ;
}//end of if skinCluster type exists
}//end of for loop through history

//If skinCluster Doesn't exist, add skinCluster
if(`size($skins)` == 0)
select $pieces[$counter] $theJoints;
newSkinCluster "-tsb -mi 10 -dr 10" ;
}//end of apply skinCluster if none found

//Add all influences from cageMesh
int $counterInf;
int $sizerInf = size($theJoints);
string $pieceJoints[] = `skinCluster -q -wi $pieces[$counter]`;

for ($counterInf = 0; $counterInf < $sizerInf; $counterInf++)
int $found = stringArrayContains($theJoints[$counterInf], $pieceJoints);
if($found == 0){skinCluster -e -ai $theJoints[$counterInf] $skins[0];}
}//end of for loop through adding all cageJoints

//Remove extra joints that don't match those in cageMesh skinCluster
string $theJoints[] = `skinCluster -q -wi $cageMesh`;
string $pieceJoints[] = `skinCluster -q -wi $pieces[$counter]`;
string $diffJoints[] = stringArrayRemove($theJoints, $pieceJoints);

int $counterInf;
int $sizerInf = size($diffJoints);

if(`size($diffJoints)` > 0)
for ($counterInf = 0; $counterInf < $sizerInf; $counterInf++)
skinCluster -e -ri $diffJoints[$counterInf] $skins[0];
}//end of for loop through removing extra joints
}//end of if any joints are different

//Transfer the Weights
select $cageMesh $pieces[$counter];
copySkinWeights -noMirror -surfaceAssociation closestPoint -influenceAssociation closestJoint -influenceAssociation oneToOne -influenceAssociation name -normalize;

print ("\nSkin Applied/Weights Transferred: " + ($counter + 1) + "/" + $sizer);

}//end of loop through pieces

select $userSel;

}//end of if there is a skinCluster to copy from

}//end of if user has selected enough items

< previous page continued on next page >

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8
Related Tutorials

Crafting character animation

by Kiel Figgins
published on 2015-02-06

Keywords: animation, 3d, character, pose

rating star fullrating star fullrating star fullrating star fullrating star half (8)
Comments 0 Views 30137

Making of 'Decepticon Truck Crawl'

by Kiel Figgins
published on 2014-03-31

Keywords: Animation, Rigging, Transformer, Decepticon, Modeling, Lighting

rating star fullrating star fullrating star fullrating star fullrating star half (9)
Comments 1 Views 42777

Calculating Wheel Rotation

by Kiel Figgins
published on 2013-03-26

Keywords: wheel, rotation, car, vehicle,

rating star fullrating star fullrating star fullrating star fullrating star none (7)
Comments 2 Views 73298

Design a vampire

by Richard Tilbury
published on 2015-09-14

Keywords: vampire, character, creature,

rating star nonerating star nonerating star nonerating star nonerating star none (0)
Comments 0 Views 12248
Readers Comments (Newest on Top)
Joshua R. Dodson on Sun, 26 October 2014 8:20pm
Thank you this has helped to improve my understanding of Weight painting. In my own personal work I have found that the combination of Basic skin cluster, maya muscle and corrective blend shapes yield highly satisfactory results. It's always a great idea to have a low poly version of your model for animation and simulation testing aside from the full resolution detail model.
Add Your Comment..