Maya Mel

From Antoine Vienne | Wiki
Revision as of 15:55, 12 December 2019 by Walter (talk | contribs)
Jump to navigation Jump to search

Maya Mels Scripts

Octane Render Baking group id - Assign id to multiple objects shapes

// 0 is for Red, 2 for Green, 4 for Blue
// 3, 5 and 6 for Cyan, Magenta and Yellow
// Replace the number "0" by the number of your choice
// Baking group id is also avalaible in Attribute Spreadsheet Editor

for ( $object in `ls -sl -l` ) {
    print($object+"\n");
    setAttr ($object + ".octBakGrId") (0);
}

Maxwell Render - Particles sequence - Force .abc file

//This expression force Maya to reload an Alembic particles file at each frame - there is no other way in Maxwell Render to read a particles sequence in .abc

global int $current_frame;
$current_frame = `currentTime -query`;
print $current_frame;
{
setAttr -type "string" maxwellRFRKParticles1.file ("/YOUR_PATH/YOUR_FILE" + $current_frame + ".abc");
}

Maxwell Render - Specify object ID color

// Specify object ID color

for ( $object in `ls -sl -l` ) {
    print($object+"\n");
    setAttr ($object + ".mxSpecifyObjIdColor") (1);
    setAttr ($object + ".mxObjIdColor") -type "double3" 1 0 0;
}

Redshift - Add blend attribute and set random value for objects selection

// Useful for blending between colors with RedshiftUserDataScalar

for ( $object in `ls -sl -l` ) {
    print($object);
    addAttr -ln "blend" -at double  -min 0 -max 1 -dv 0 $object;
    setAttr ($object + ".blend") (rand(1));
}

Redshift - Set Primary visibility off for selection (layer override)

// Go in right render layer and select objects

for ( $object in `ls -sl -l` ) {
    print($object+"\n");
    setAttr ($object + ".rsEnableVisibilityOverrides") (1);
    editRenderLayerAdjustment ($object + ".rsPrimaryRayVisible");
    setAttr ($object + ".rsPrimaryRayVisible") (0);
}

Convert Motion trail to curve

// Select the motion trail first

{
$selected=`ls -dag -et snapshotShape`;
for ($obj in $selected){
$pts=(getAttr($obj+".pts"));
$size=size($pts);
$curve=`curve -d 1 -p $pts[0] $pts[1] $pts[2] -p $pts[4] $pts[5] $pts[6] -k 0 -k 1`;
for($i=8;$i<$size;$i+=4)
curve -os -a -p $pts[$i] $pts[$i+1] $pts[$i+2] $curve ;
}
}

Quantize keyframes for selection

// Snap keys on frames for objects selection

for ( $object in `ls -sl -l` ) {
    print($object+"\n");
    snapKey $object;
}

Loop image sequence for texture

// On File texture, check Image sequence, and edit expression

file1.frameExtension=((frame%8)+1);

Symmetrize - Duplicate & merge object

// Select half object first

for ( $object in `ls -sl -l` ) {
    print($object+"\n");
    xform -piv 0 0 0 $object;
    duplicate -rr;
    setAttr ($object + ".scaleX") (-1);
    select -add $object ;
    polyPerformAction polyUnite o 0;
    polyMergeVertex  -d 0.0001 -am 1 -ch 1;
    DeleteHistory;
    rename ($object);
}

Mirror object

// Select object first

for ( $object in `ls -sl -l` ) {
    print($object+"\n");
    DeleteHistory;
    makeIdentity -apply true -t 1 -r 1 -s 1 -n 0 -pn 1;
    xform -piv 0 0 0 $object;
    duplicate -rr;
    setAttr ($object + ".scaleX") (-1);
    DeleteHistory;
}

Group each object and rename

// Select objects first

for ( $object in `ls -sl -l` ) {
    print($object+"\n");
    select $object ;
    doGroup 0 1 1;
    rename ($object + "_GRP");
}

Change path in an Attribute

// Here the Attribute is ".filePrefix" - Select objects first

for ( $object in `ls -sl -l` ) {
    string $path = getAttr ($object+".filePrefix");
    $path = `substitute "//OLD/PATH/" $path "//NEW/PATH/"`;
    setAttr -type "string" ($object+".filePrefix") ($path);
}