Look at Me! Mel Script

!!! Updated, now even more stupid !!!

proc camSave (string $actCam) 
{
    global string $keyAtts[];
    global float $atVals[];
    string $getAtts[];
    int $sizeAtts;
    clear $keyAtts;
    // create a list of keyable attributes
    clear $getAtts;
    $getAtts = `listAttr -k -u $actCam`;
    for ($i=0; $i<(size($getAtts)); $i++)
        {
            $keyAtts[(size ($keyAtts))] = ($actCam + "." + $getAtts[$i]);
            $atVals[$i] = `getAttr $keyAtts[$i]`;
        }
}
 
 
proc buildIt(string $actCam) {
global int $k;
global string $shaders[];
//assign names to new palette
$shaders = {
    "flesh", "black", "white", "tongue", "gums", "brown"
};
//assign rgba values to the new palette
float $r[] = {float(0.8),(0.05),(1.0),(0.95),(0.96),(0.5)};
float $g[] = {float(0.65),(0.05),(1.0),(0.3),(0.5),(0.3)};
float $b[] = {float(0.5),(0.05),(1.0),(0.25),(0.5),(0.15)};
//create the shaders 
$i = 0;
for ($one in $shaders)
{
shadingNode -n $one -asShader lambert;
sets -renderable true -noSurfaceShader true -empty -name ($one + "SG");
connectAttr -f ($one + ".outColor") ($one + "SG.surfaceShader");
setAttr ($one+".colorR") ($r[$i]) ;
setAttr ($one+".colorG") ($g[$i]) ;
setAttr ($one+".colorB") ($b[$i]) ;
$i++ ;
};
 
spaceLocator -p 0 0 0 -n pointer;
setAttr "pointer.visibility" 0;
sphere  -ch on -o on -po 0 -ax 0 1 0 -r 1.9 -nsp 4 -n eyeBallL;
sets -e -forceElement whiteSG;
duplicate -n pupil;
scale -r 0.43 0.43 0.43 ;
move -r -os -wd 0 1.2 0 ;
sets -e -forceElement blackSG;
parent pupil eyeBallL;
duplicate -n eyeBallR eyeBallL;
move -r 3.9 0 0 eyeBallR;
string $lnr[] = {"L", "R"};
for ($one in $lnr){
aimConstraint -offset 0 0 0 -weight 1 -aimVector 0 1 0 -upVector 1 0 0 -worldUpType "vector" -worldUpVector 0 0 -1 pointer ("eyeBall"+$one);
setAttr ("eyeBall"+$one+".translateY") -6;
 
}
 
string $sph[] = `sphere -ssw 0 -esw 351 -ch on -o on -po 0 -ax 0 1 0 -r 4.339298 -nsp 4 -n "face"`;
rename $sph[1] "makeFace";
setAttr ($sph[0]+".translateX") 2.079;
setAttr ($sph[0]+".translateY") -12.749;
setAttr ($sph[0]+".translateZ") 0.814;
setAttr ($sph[0]+".rotateY") -29.276;
setAttr ($sph[0]+".rotateZ") 90;
for ($xyz in {"X", "Y", "Z"}){
setAttr ($sph[0]+".scale"+$xyz) 1.361;
}
sets -e -forceElement fleshSG;
string $butes[] = {".translateX",".translateY",".translateZ",".rotateX",".rotateY",".rotateZ",".scaleX",".scaleY"};
float $vals[] = {float (0),(60),(-2),(-90),(0),(0),(1),(1)};
for ($i=0;$i<8;$i++){
    setAttr ($actCam+$butes[$i]) $vals[$i];
    }
select -cl;
 
}
 
proc lookAtMe()
    {
    float $return[];
    global string $keyAtts[];
    global float $atVals[];
    global int $lookAtMeIndex;
    string $actCam;
    $actCam = `lookThru -q`;
    if ($lookAtMeIndex == 0)
        {
            $lookAtMeIndex = -1;  
        }  
    if (!`scriptJob -ex $lookAtMeIndex`)
        {
            $lookAtMeIndex = `scriptJob -kws -ie lookAtMeScriptJob`;
            camSave($actCam);
            buildIt($actCam);
        }
    else
        {
        scriptJob -k $lookAtMeIndex -f;
        for ($one in {"face", "pointer", "eyeBallL", "eyeBallR", "black", "brown", "flesh", "gums", "tongue", "white"})
            {
                delete $one;
            }
        for ($i=0;$i<(size($keyAtts));$i++)
            {
            setAttr ($keyAtts[$i]) $atVals[$i];
            }
        }
    }
 
 
global proc lookAtMeScriptJob()
{
float $pos[] = `autoPlace -useMouse`;
move $pos[0] $pos[1] $pos[2] pointer;
}
 
lookAtMe;

Hahaha that's fun! Neat script.