Thứ Sáu, 6 tháng 1, 2017

This simple scriptlet unlocks and unhides the default transform attributes (translate, rotate, scale)
CODE
global proc msAttrUnlockUnhide_all()
{
string $selectedObj[] = ls -sl;
for($obj in $selectedObj)
{
string $attrList[] = listAttr -v -l;                // Get attributes that are visibily locked
for($attribute in $attrList)
{
setAttr -k 1 -l 0 ($obj + "." + $attribute);    // Unhide and unlock attribute
}
/*
Set Default trans, rot, and scale attribute to unhidden and unlocked
*/
setAttr -k 1 ($obj + ".tx");
setAttr -l 0 ($obj + ".tx");
setAttr -k 1 ($obj + ".ty");
setAttr -l 0 ($obj + ".ty");
setAttr -k 1 ($obj + ".tz");
setAttr -l 0 ($obj + ".tz");
setAttr -k 1 ($obj + ".sx");
setAttr -l 0 ($obj + ".sx");
setAttr -k 1 ($obj + ".sy");
setAttr -l 0 ($obj + ".sy");
setAttr -k 1 ($obj + ".sz");
setAttr -l 0 ($obj + ".sz");
setAttr -k 1 ($obj + ".rx");
setAttr -l 0 ($obj + ".rx");
setAttr -k 1 ($obj + ".ry");
setAttr -l 0 ($obj + ".ry");
setAttr -k 1 ($obj + ".rz");
setAttr -l 0 ($obj + ".rz");
clear $attrList;
$attrList = listAttr -ud;                // Get attributes that are userdefined, hidden or not
for($attribute in $attrList)
{
setAttr -k 1 -l 0 ($obj + "." + $attribute);    // Unhide and unlock attribute
}
clear $attrList;
}    
clear  $selectedObj;
}
msAttrUnlockUnhide_all;

Thứ Năm, 5 tháng 1, 2017

crowd

//creation
 
//seed to get repeatable results
 
seed(particleShape1.particleId * 5);
 
//decide which character will be born
 
particleShape1.character = trunc(rand(0,5));
 
//store each particle's birth position in U
 
particleShape1.initUPlacePP = rand(0,1);
 
//set birth positions in U and V
 
particleShape1.parentU  = particleShape1.initUPlacePP;
 
particleShape1.parentV = rand(0,.1);
 
//set goals to equal parent values to stay on surface
 
particleShape1.goalU = particleShape1.parentU;
 
particleShape1.goalV = particleShape1.parentV;
 
//girl
 
if(particleShape1.character == 0){
 
particleShape1.customIndex = rand(0,15);
 
particleShape1.customSpeed = .005;
 
}
 
//guy
 
if(particleShape1.character == 1){
 
particleShape1.customIndex = rand(16,31);
 
particleShape1.customSpeed = .005;
 
}
 
//Soldier
 
if(particleShape1.character == 2){
 
particleShape1.customIndex = rand(32,47);
 
particleShape1.customSpeed = .005;
 
}
 
//Dog
 
if(particleShape1.character == 3){
 
particleShape1.customIndex = rand(48,66);
 
particleShape1.customSpeed = .0025;
 
}
 
//Zombie
 
if(particleShape1.character == 4){
 
particleShape1.customIndex = rand(67,101);
 
particleShape1.customSpeed = .0009;
 
}
 
//this particle was being weird, kill it
 
if(particleShape1.particleId == 48){
 
particleShape1.lifespanPP = 0;
 
}
 
//Runtime
 
//add a predetermined value to parentV every frame to move particle forward
 
particleShape1.parentV += particleShape1.customSpeed;
 
particleShape1.goalV= particleShape1.parentV;
 
//first obstacle
 
particleShape1.obstruction_01 = mag(particleShape1.inputForce[0]);
 
//separate the position vector so individual channels can be changed
 
vector $particlePos = particleShape1.position;
 
//all particles on the left of obstacle
 
if(particleShape1.obstruction_01 > 0 && $particlePos.x < radialField1.translateX){
 
    //yet to pass obstacle
 
    if($particlePos.z > radialField1.translateZ){
 
        particleShape1.parentU -= .001;
 
        particleShape1.goalU = particleShape1.parentU;
 
    }
 
    //already passed obstacle
 
    if($particlePos.z < radialField1.translateZ){
 
        particleShape1.parentU += .001;
 
        particleShape1.goalU = particleShape1.parentU;
 
            //if particle ever reaches it's birth U position, stop moving left/right
 
            if(particleShape1.parentU == particleShape1.initUPlacePP)
 
            particleShape1.goalU += 0;
 
    }
 
}
 
//all particles on the right of obstacle
 
if(particleShape1.obstruction_01 > 0 && $particlePos.x > radialField1.translateX){
 
    //yet to pass obstacle
 
    if($particlePos.z > radialField1.translateZ){
 
        particleShape1.parentU += .001;
 
        particleShape1.goalU = particleShape1.parentU;
 
    }
 
    //already passed obstacle
 
    if($particlePos.z < radialField1.translateZ){
 
        particleShape1.parentU -= .001;
 
        particleShape1.goalU = particleShape1.parentU;
 
            //if particle reaches its birth U postion, stop moving left/right
 
            if(particleShape1.parentU == particleShape1.initUPlacePP)
 
            particleShape1.goalU += 0;
 
    }
 
    
 
}
 
//character behavior
 
//girl
 
if (particleShape1.character == 0){
 
    particleShape1.customIndex += 1;
 
        if(particleShape1.customIndex >= 15){
 
        particleShape1.customIndex = 0;
 
        }
 
}//guy
 
if (particleShape1.character == 1){
 
    particleShape1.customIndex += 1;
 
        if(particleShape1.customIndex >= 31){
 
        particleShape1.customIndex =16;
 
        }
 
}
 
//soldier
 
if (particleShape1.character == 2){
 
    particleShape1.customIndex += 1;
 
        if(particleShape1.customIndex >= 47){
 
        particleShape1.customIndex =32;
 
        }
 
}
 
//dog
 
if (particleShape1.character == 3){
 
    particleShape1.customIndex += 1;
 
        if(particleShape1.customIndex >= 66){
 
        particleShape1.customIndex =48;
 
        }
 
}
 
//zombie
 
if (particleShape1.character == 4){
 
    particleShape1.customIndex += 1;
 
        if(particleShape1.customIndex >= 101){
 
        particleShape1.customIndex =67;
 
        }
 
}
 
//if character reaches end of surface, kill it
 
if(particleShape1.parentV >=1){
 
particleShape1.lifespanPP = 0;
 
}