Accueil » Tutoriel : déformer des personnages riggés pour l'animation

Tutoriel : déformer des personnages riggés pour l'animation

Jason Fittipaldi propose un tutoriel Maya d’un peu moins d’une heure et demi sur la modification de l’aspect d’un personnage riggé/skinné sans faire appel aux wrap deformers ou à nCloth. L’objectif, obtenir un rig aussi léger que celui de départ.

Description détaillée et précisions sur le script freshSkin utilisé :

Maya tutorial on modifying the look of rigged/skinned characters without the need for wrap deformers or nCloth. This will result in rigs that are just as lightweight (or really close!) to the original rig.

The character used in this tutorial is just one example and the freshSkin script and ideas should work on nearly any rig.

You may find that the script will allow you to modify other characters face geometry too, but due to the way the face controls were setup for this character, I could not modify the number of vertices on the face.

The « sculpts » face that I re-sculpted to change the look of the face was the root blendshape for this head. This technique may not work on some rigs, but I believe blendShapes are a valid way to alter a rigs look without adding or taking away geometry. I’m still new to some of this, so there’s a lot of guesstimating going on here! 🙂

The freshSkin script used in this video was created by Tyler Hurd, and found at:
tech-artists.org/forum/showthread.php?t=664

// freshSkin Script
// Created By: Tyler Hurd
// Found at: tech-artists.org/forum/showthread.php?t=664

// TO USE:
// Run this script to load the procedure, and then type out the function name in the MEL command line or
// the script editor:
// freshSkin(« name_of_your_gemoetry_goes_here »);
// and hit enter (or cntrl-enter) to run it!

global proc freshSkin( string $obj )
{
string $bodyA = $obj;

// first delete bind pose //
string $bindPoses[] = `ls -type « dagPose »`;
if( `size $bindPoses` > 0 ) {

}

// get orig skin cluster and influences //
string $clusterA = `findRelatedSkinCluster $bodyA`;
if( $clusterA == «  » ) return;

// duplicate //
string $dupe[] = `duplicate -rr $bodyA`;
$bodyB = $dupe[0];

// use same influences to bind dupe geom //
string $influences[] = `skinCluster -q -inf $bodyA`;
string $clusterB[] = `skinCluster -ibp -tsb -omi 0 $influences $bodyB`;
select -cl;

// now copy wieghts to new geom //
copySkinWeights -nm -ss $clusterA -ds $clusterB[0] -surfaceAssociation closestPoint -influenceAssociation oneToOne -influenceAssociation name ;

// clean up //
delete $bodyA;
rename $bodyB $bodyA;
}

Via Spungella.

A Lire également