Hi,
Here is MEL script I wrote to set some automatic toon outline values to render a mesh with wireframe in Maya. It still needs some work, and I'm guessing a Python implementation may be more usable (optional crease line width parameters etc). I show an application of this script on a character I designed and modeled.
The script needs the geometry name, geometry shape name, and the toon outline shape name.
na_makeToonOutline("polySurface37", "polySurfaceShape44", "pfxToonShape1");
Cheers
Nate
/**Given geometry its shape and toon shape set some defaults so can preview character with outlines
*@pre toon created already for your character. ( RENDERING > Toon > assign outline )
*@note change creaseLineWidth and creaseColor according to character
*@note no error checking on types etcs transform, mesh, pfxToon, object existence
*/
global proc
na_makeToonOutline(string $geoName, string $geoShapeName, string $toonShapeName)
{
//MEL making toon outline
if( `objectType $geoName` != "transform"){ error("Require Geometry param 1");}
if( `objectType $geoShapeName` != "mesh" && `objectType $geoShapeName` != "nurbsSurface" ){ error("Require Shape param 2");}
if( `objectType $toonShapeName` != "pfxToon"){ error("Require pfxToon Shape param 3 --RENDERING > Toon > assign outline");}
//PUT LINE WIDTH HERE
//
float $lineWidth = 0.30;
//PUT LINE COLOR HERE
//
float $creaseRGB[] = {0.0,0.618,0.618};
//PUT GEO HERE
//
string $geo = $geoName;
string $geoShape = $geoShapeName;
//PUT TOON SHAPE HERE
//
string $toonShape = $toonShapeName;
setAttr ($toonShape+".profileLines") 0;
setAttr ($toonShape+".borderLines") 0;
setAttr ($toonShape+".hardCreasesOnly") 0;
setAttr ($toonShape+".creaseAngleMin") 0;
setAttr ($toonShape+".creaseAngleMax") 0;
setAttr ($toonShape+".creaseLineWidth") $lineWidth;
setAttr ($toonShape+".creaseColor") -type double3 $creaseRGB[0] $creaseRGB[1] $creaseRGB[2] ;
}
Inspired by Savio Fernandes (artbycrunk dot com), Where I first learned about using toon outline to render a mesh in wireframe.






