Saturday, 26 February 2011

Today I gave myself a headache, but fix'd an issue that came about when I added in a couple IF statements, in short;

currentTime -edit $currentFrame;
$currentFrame = ($currentFrame + $randGen);
setKeyframe `textFieldButtonGrp -query -text selObj`;

is wrong, it should be;

currentTime -edit $currentFrame;
$currentFrame = ($currentFrame + $randGen);
IF()
SETATTR
setKeyframe `textFieldButtonGrp -query -text selObj`;

what it was doing was cycling through the FOR loop and not applying anything but keyframing it none the less,  took me ages to notice what it was doing =/

Next I'll need to go in and change the INT's to FLOAT's as I switched them around during debugging.
but it now has a properly random function, inwhich it will randomly keyframe random movements along the different axis, or randomly keyframe a set movement along the different axis. Next piece of functionality will be to make the min max for the axis affect the sliders, then i'll work on origin lock.

GUI;




CODE;

proc sc_gui()
{
if (`window -exists "sc_gui"`) deleteUI "sc_gui";
window -w 150 -h 300 -t "Locator Randomiser" -
maximizeButton false -minimizeButton false sc_gui;
columnLayout;
string $sel[] = (`ls -sl`);
separator;
separator;
textFieldButtonGrp -label "Object:"
-text $sel
-buttonLabel "<<<"
-cw3 50 165 10
-ct3 "left" "both" "left"
-buttonCommand "sc_getObj()" selObj;
separator;
separator;
separator -style "double" -w 260;
separator;
separator;
rowColumnLayout -numberOfColumns 1
-columnWidth 1 260;
text -al "left" " Frame Settings:";
setParent ..;
separator;
separator;
textFieldGrp -l "Start:"
-cw2 50 165 -text 1 start;
textFieldGrp -l "Finish:"
-cw2 50 165 -text 100 finish;
separator;
separator;
textFieldGrp -l "Min:"
-cw2 50 165 -text 1 minFrame;
textFieldGrp -l "Max:"
-cw2 50 165 -text 10 maxFrame;
separator;
separator;separator;
separator;
separator -style "double" -w 260;
rowColumnLayout -numberOfColumns 11
-columnWidth 1 5
-columnWidth 2 10
-columnWidth 3 5
-columnWidth 4 45
-columnWidth 5 5
-columnWidth 6 130
-columnWidth 7 5
-columnWidth 8 45
-columnWidth 9 5
-columnWidth 10 5
-columnWidth 11 5
;
button -vis 0;
button -vis 0;
button -vis 0;
text "Min";
button -vis 0;
text "Movement Parameters";
button -vis 0;
text "Max";
button -vis 0;
button -vis 0;
setParent ..;
rowColumnLayout -numberOfColumns 11
-columnWidth 1 5
-columnWidth 2 10
-columnWidth 3 5
-columnWidth 4 45
-columnWidth 5 5
-columnWidth 6 130
-columnWidth 7 5
-columnWidth 8 45
-columnWidth 9 5
-columnWidth 10 5
-columnWidth 11 5
;
button -vis 0; //1
text "X:"; //2
button -vis 0; //3
textField -text -10 minFltSldX;//4
button -vis 0;//5
floatSlider -min -10 -max 10 tranX;//6
button -vis 0;//7
textField -text 10 maxFltSldX;//8
button -vis 0 ;//9
button -vis 0;//10
button -vis 0;//11
setParent..;
rowColumnLayout -numberOfColumns 9
-columnWidth 1 5
-columnWidth 2 50
-columnWidth 3 5
-columnWidth 4 20
-columnWidth 5 45
-columnWidth 6 75
-columnWidth 7 5
-columnWidth 8 45
-columnWidth 9 5
;
button -vis 0;//1
text "Random:";//2
button -vis 0;//3
checkBox -l " x" randChkX;//4
button -vis 0;//5
button -vis 0;//6
button -vis 0;//7
button -l "Apply";//8
button -vis 0;//9
setParent..;
separator;
separator;
separator -style "single" -w 260;
separator;
separator;
rowColumnLayout -numberOfColumns 11
-columnWidth 1 5
-columnWidth 2 10
-columnWidth 3 5
-columnWidth 4 45
-columnWidth 5 5
-columnWidth 6 130
-columnWidth 7 5
-columnWidth 8 45
-columnWidth 9 5
-columnWidth 10 5
-columnWidth 11 5
;
button -vis 0; //1
text "Y:"; //2
button -vis 0; //3
textField -text -10 minFltSldY;//4
button -vis 0;//5
floatSlider -min -10 -max 10 tranY;//6
button -vis 0;//7
textField -text 10 maxFltSldY;//8
button -vis 0 ;//9
button -vis 0;//10
button -vis 0;//11
setParent..;
rowColumnLayout -numberOfColumns 9
-columnWidth 1 5
-columnWidth 2 50
-columnWidth 3 5
-columnWidth 4 20
-columnWidth 5 45
-columnWidth 6 75
-columnWidth 7 5
-columnWidth 8 45
-columnWidth 9 5
;
button -vis 0;//1
text "Random:";//2
button -vis 0;//3
checkBox -l " Y" randChkY;//4
button -vis 0;//5
button -vis 0;//6
button -vis 0;//7
button -l "Apply";//8
button -vis 0;//9
setParent..;
separator;
separator;
separator -style "single" -w 260;
separator;
separator;
rowColumnLayout -numberOfColumns 11
-columnWidth 1 5
-columnWidth 2 10
-columnWidth 3 5
-columnWidth 4 45
-columnWidth 5 5
-columnWidth 6 130
-columnWidth 7 5
-columnWidth 8 45
-columnWidth 9 5
-columnWidth 10 5
-columnWidth 11 5
;
button -vis 0; //1
text "Z:"; //2
button -vis 0; //3
textField -text -10 minFltSldZ;//4
button -vis 0;//5
floatSlider -min -10 -max 10 tranZ;//6
button -vis 0;//7
textField -text 10 maxFltSldZ;//8
button -vis 0 ;//9
button -vis 0;//10
button -vis 0;//11
setParent..;
rowColumnLayout -numberOfColumns 9
-columnWidth 1 5
-columnWidth 2 50
-columnWidth 3 5
-columnWidth 4 20
-columnWidth 5 45
-columnWidth 6 75
-columnWidth 7 5
-columnWidth 8 45
-columnWidth 9 5
;
button -vis 0;//1
text "Random:";//2
button -vis 0;//3
checkBox -l " Z" randChkZ;//4
button -vis 0;//5
button -vis 0;//6
button -vis 0;//7
button -l "Apply";//8
button -vis 0;//9
setParent..;
separator;
separator;
separator -style "single" -w 260;
separator;
separator;
rowColumnLayout -numberOfColumns 3;
button -vis 0 -w 160;
button -l "Key" -c sc_frameCount;
button -vis 0;
setParent ..;
separator;
separator;
showWindow "sc_gui";
}
proc sc_getObj()
{
string $sel[] = (`ls -sl`);
string $firstObj = $sel[0];
textFieldButtonGrp -edit -text $firstObj selObj;
print $firstObj;
}
proc sc_frameCount()
{
int $start = (`textFieldGrp -query -text start`);
int $end = (`textFieldGrp -query -text finish`);
int $min = (`textFieldGrp -query -text minFrame`);
int $max = (`textFieldGrp -query -text maxFrame`);
int $randMoveX;
int $randMoveY;
int $randMoveZ;
string $objAttrX;
string $objAttrY;
string $objAttrZ;
int $finalMoveX;
int $finalMoveY;
int $finalMoveZ;
int $objAttrGetX;
int $objAttrGetY;
int $objAttrGetZ;
string $sel[] = (`select`);
string $Ty = "ty";
int $currentFrame = $start;
for ($currentFrame > $start; $currentFrame < $end;)
{
int $randGen = rand($min,$max);
string $selObj = (`textFieldButtonGrp -query -text selObj`);
int $minFltSldX = (`textField -q -text minFltSldX`);
int $minFltSldY = (`textField -q -text minFltSldY`);
int $minFltSldZ = (`textField -q -text minFltSldZ`);
int $maxFltSldX = (`textField -q -text maxFltSldX`);
int $maxFltSldY = (`textField -q -text maxFltSldY`);
int $maxFltSldZ = (`textField -q -text maxFltSldZ`);
currentTime -edit $currentFrame;
$currentFrame = ($currentFrame + $randGen);
//~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~X
//~~~~~~~~~~~~~~~~~~~~~
if (`checkBox -q -v randChkX`)
{
$randMoveX = rand($minFltSldX,$maxFltSldX);
}
else
{
$randMoveX = (`floatSlider -query -value tranX`);
}
$objAttrX = $selObj + ".translateX";
$objAttrGetX = `getAttr $objAttrX`;
$finalMoveX = ($objAttrGetX + $randMoveX);
setAttr $objAttrX $finalMoveX;
//~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~Y
//~~~~~~~~~~~~~~~~~~~~~
if (`checkBox -q -v randChkY`)
{
$randMoveY = rand($minFltSldY,$maxFltSldY);
}
else
{
$randMoveY = (`floatSlider -query -value tranY`);
}
$objAttrY = $selObj + ".translateY";
$objAttrGetY = `getAttr $objAttrY`;
$finalMoveY = ($objAttrGetY + $randMoveY);
setAttr $objAttrY $finalMoveY;
//~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~~~Z
//~~~~~~~~~~~~~~~~~~~~~
if (`checkBox -q -v randChkZ`)
{
$randMoveZ = rand($minFltSldZ,$maxFltSldZ);
}
else
{
$randMoveZ = (`floatSlider -query -value tranZ`);
}
$objAttrZ = $selObj + ".translateZ";
$objAttrGetZ = `getAttr $objAttrZ`;
$finalMoveZ = ($objAttrGetZ + $randMoveZ);
setAttr $objAttrZ $finalMoveZ;
//~~~~~~~~~~~~~~~~~~~~~
//~~~~~~~~~~~~~~~~~~End
//~~~~~~~~~~~~~~~~~~~~~
setKeyframe `textFieldButtonGrp -query -text selObj`;
}
}
sc_gui()

Thursday, 24 February 2011

Today we dine in MEL Cont.

So today I set about adding some extra functionality, mainly a way to choose wheather or not to have the amount an object moves random or not, i've got as far as the GUI and a rough IF statement, that basicly reads, IF the box is checked then print "test"; else do what your sposed to, im undecided if the code for this should check all the boxes at once, or one by one, it would probably better to break the main FOR loop down into the the three main sections (x,y and z), that way it can differinciate between the 3 different values, were as if I make the check outside the FOR loop in the form of a IF statement, i'll still have to break them appart later. probably better logic to do it seperatly.


Heres the GUI;


 And the code (most of this is GUI orientated);
sc_gui();
proc sc_gui()
{
if (`window -exists "sc_gui"`) deleteUI "sc_gui";
window -w 150 -h 300 -t "Locator Randomiser" -

maximizeButton false -minimizeButton false sc_gui;
columnLayout;
string $sel[] = (`ls -sl`);
separator;
separator;
textFieldButtonGrp -label  "Object:"
-text $sel
-buttonLabel "<<<"
-cw3 50 165 10
-ct3 "left" "both" "left"
-buttonCommand "sc_getObj()" selObj;
separator;
separator;
separator -style "double" -w 260;
separator;
separator;
    rowColumnLayout -numberOfColumns 1
            -columnWidth 1 260;
        text -al "left" "      Frame Settings:";

    setParent ..;
separator;
separator;
textFieldGrp -l "Start:"
-cw2 50 165 -text 1 start;
textFieldGrp -l "Finish:"
-cw2 50 165 -text 100 finish;
separator;
separator;
textFieldGrp -l "Min:"
-cw2 50 165 -text 1 minFrame;
textFieldGrp -l "Max:"
-cw2 50 165 -text 10 maxFrame;
separator;
separator;separator;
separator;
separator -style "double" -w 260;

    rowColumnLayout -numberOfColumns 11
        -columnWidth 1 5
        -columnWidth 2 10
        -columnWidth 3 5
        -columnWidth 4 45      
        -columnWidth 5 5
        -columnWidth 6 130
        -columnWidth 7 5
        -columnWidth 8 45
        -columnWidth 9 5
        -columnWidth 10 5
        -columnWidth 11 5
        ;
            button -vis 0;
            button -vis 0;
            button -vis 0;
            text "Min";
            button -vis 0;
            text "Movement Parameters";
            button -vis 0;
            text "Max";
            button -vis 0;
            button -vis 0;
           
           
           
                       
            setParent ..;
    rowColumnLayout -numberOfColumns 11
        -columnWidth 1 5
        -columnWidth 2 10
        -columnWidth 3 5
        -columnWidth 4 45      
        -columnWidth 5 5
        -columnWidth 6 130
        -columnWidth 7 5
        -columnWidth 8 45
        -columnWidth 9 5
        -columnWidth 10 5
        -columnWidth 11 5
        ;
            button -vis 0; //1
            text "X:"; //2
            button -vis 0;    //3
            textField;//4
            button -vis 0;//5
        floatSlider   -min -10 -max 10 tranX;//6
            button -vis 0;//7
            textField;//8
            button -vis 0 ;//9
            button -vis 0;//10
            button -vis 0;//11
        setParent..;



            rowColumnLayout -numberOfColumns 9
                -columnWidth 1 5
                -columnWidth 2 50
                -columnWidth 3 5
                -columnWidth 4 20      
                -columnWidth 5 45
                -columnWidth 6 75
                -columnWidth 7 5
                -columnWidth 8 45
                -columnWidth 9 5
                ;
               
            button -vis 0;//1
            text "Random:";//2
            button -vis 0;//3
            checkBox  -l " x" randChkX;//4
            button -vis 0;//5
            button -vis 0;//6
            button -vis 0;//7
            button -l "Apply";//8
            button -vis 0;//9
           
        setParent..;
separator;
separator;
separator -style "single" -w 260;
separator;
separator;



    rowColumnLayout -numberOfColumns 11
        -columnWidth 1 5
        -columnWidth 2 10
        -columnWidth 3 5
        -columnWidth 4 45      
        -columnWidth 5 5
        -columnWidth 6 130
        -columnWidth 7 5
        -columnWidth 8 45
        -columnWidth 9 5
        -columnWidth 10 5
        -columnWidth 11 5
        ;
            button -vis 0; //1
            text "Y:"; //2
            button -vis 0;    //3
            textField;//4
            button -vis 0;//5
        floatSlider   -min -10 -max 10 tranY;//6
            button -vis 0;//7
            textField;//8
            button -vis 0 ;//9
            button -vis 0;//10
            button -vis 0;//11
        setParent..;


            rowColumnLayout -numberOfColumns 9
                -columnWidth 1 5
                -columnWidth 2 50
                -columnWidth 3 5
                -columnWidth 4 20      
                -columnWidth 5 45
                -columnWidth 6 75
                -columnWidth 7 5
                -columnWidth 8 45
                -columnWidth 9 5
                ;
               
            button -vis 0;//1
            text "Random:";//2
            button -vis 0;//3
            checkBox  -l " Y" randChkY;//4
            button -vis 0;//5
            button -vis 0;//6
            button -vis 0;//7
            button -l "Apply";//8
            button -vis 0;//9
           
        setParent..;
separator;
separator;
separator -style "single" -w 260;
separator;
separator;
          
           
    rowColumnLayout -numberOfColumns 11
        -columnWidth 1 5
        -columnWidth 2 10
        -columnWidth 3 5
        -columnWidth 4 45      
        -columnWidth 5 5
        -columnWidth 6 130
        -columnWidth 7 5
        -columnWidth 8 45
        -columnWidth 9 5
        -columnWidth 10 5
        -columnWidth 11 5
        ;
            button -vis 0; //1
            text "Z:"; //2
            button -vis 0;    //3
            textField;//4
            button -vis 0;//5
        floatSlider   -min -10 -max 10 tranZ;//6
            button -vis 0;//7
            textField;//8
            button -vis 0 ;//9
            button -vis 0;//10
            button -vis 0;//11
        setParent..;


            rowColumnLayout -numberOfColumns 9
                -columnWidth 1 5
                -columnWidth 2 50
                -columnWidth 3 5
                -columnWidth 4 20      
                -columnWidth 5 45
                -columnWidth 6 75
                -columnWidth 7 5
                -columnWidth 8 45
                -columnWidth 9 5
                ;
               
            button -vis 0;//1
            text "Random:";//2
            button -vis 0;//3
            checkBox  -l " Z" randChkZ;//4
            button -vis 0;//5
            button -vis 0;//6
            button -vis 0;//7
            button -l "Apply";//8
            button -vis 0;//9
           
        setParent..;
separator;
separator;
separator -style "single" -w 260;
separator;
separator;



 rowColumnLayout -numberOfColumns 3;
        button -vis 0 -w 160;
        button -l "Key" -c sc_frameCount;
        button -vis 0;

    setParent ..;
   
separator;
separator;
showWindow "sc_gui";

}

proc sc_getObj()
{
string $sel[] = (`ls -sl`);
string $firstObj = $sel[0];
textFieldButtonGrp -edit -text $firstObj selObj;
print $firstObj;
}

proc sc_frameCount()

{
int $start = (`textFieldGrp -query -text start`);
int $end = (`textFieldGrp -query -text finish`);
int $min = (`textFieldGrp -query -text minFrame`);
int $max = (`textFieldGrp -query -text maxFrame`);
string $sel[] = (`select`);
string $Ty = "ty";
int $randX = (`checkBox -query -v randChkX`);
int $randY = (`checkBox -query -v randChkY`);
int $randZ = (`checkBox -query -v randChkZ`);
$currentFrame = $start;

if($randX == 1 || $randY == 1 || $randZ == 1)
    {
    print "test";
    }
else{
    for ($currentFrame > $start; $currentFrame <

$end;)
    {   
    int $randGen = rand($min,$max);
    string $selObj = (`textFieldButtonGrp -query -text

selObj`);
    float $randMoveX = (`floatSlider -query -value

tranX`);
    float $randMoveY = (`floatSlider -query -value

tranY`);
    float $randMoveZ = (`floatSlider -query -value

tranZ`);
   
    string $objAttrX = $selObj + ".translateX";
    string $objAttrY = $selObj + ".translateY";
    string $objAttrZ = $selObj + ".translateZ";
   
    int $objAttrGetX = `getAttr $objAttrX`;
    int $objAttrGetY = `getAttr $objAttrY`;
    int $objAttrGetZ = `getAttr $objAttrZ`;
   
    int $finalMoveX = ($objAttrGetX + $randMoveX);
    int $finalMoveY = ($objAttrGetY + $randMoveY);
    int $finalMoveZ = ($objAttrGetZ + $randMoveZ);
   
   
   
    $currentFrame = ($currentFrame + $randGen);
        currentTime -edit $currentFrame;
        setAttr $objAttrX $finalMoveX;
        setAttr $objAttrY $finalMoveY;
        setAttr $objAttrZ $finalMoveZ;
        print ($currentFrame + "\n");       
        print ($randMoveX + "\n");
        print ($randMoveY + "\n");
        print ($randMoveZ + "\n");
        setKeyframe `textFieldButtonGrp -query

-text selObj`;
    }       
    }
} 

sc_gui();

Wednesday, 23 February 2011

Today we dine in MEL

So today I hit a checkpoint with my script, and HAVE A VIDEO!

VIDEO;
Awesome, so what does it do, why is it a checkpoint etc. at the moment, all it does is move things along different axis, at random points between a user input time range. it mimics speed by changing the space between the keyframes. i'll figure out how to alter the distance automaticaly later on. It's a checkpoint because the sliders now work, the object select button works and the range is input by the user, plus the GUI looks perty, it will be rearranged to look better and the sections more logical. but other than that not a bad start.

GUI;






CODE;

proc sc_gui()

{
if (`window -exists "sc_gui"`) deleteUI "sc_gui";
window -w 150 -h 300 -t "Randomizer" -maximizeButton false -minimizeButton false sc_gui;
columnLayout;
separator;
separator;
textFieldButtonGrp -label "Object:"
-text ""
-buttonLabel "<<<"
-cw3 50 165 10
-ct3 "left" "both" "left"
-buttonCommand "sc_getObj()" selObj;
textFieldGrp -l "Start:"
-cw2 50 165 start;
textFieldGrp -l "Finish:"
-cw2 50 165 finish;
separator;
separator;
separator -style "double" -w 260;
separator;
separator;
checkBoxGrp -l "Random: "
-cw2 50 165;
separator;
separator;
floatSliderGrp -l "x "
-cw2 40 165 -min -10 -max 10 tranX;
floatSliderGrp -l "y "
-cw2 40 165 -min -10 -max 10 tranY;
floatSliderGrp -l "z "
-cw2 40 165 -min -10 -max 10 tranZ;
separator;
separator;
separator -style "double" -w 260;
separator;
separator;
button -l "Frame" -c sc_frameCount;
showWindow "sc_gui";
separator;
separator;
}
proc sc_getObj()
{
string $sel[] = (`ls -sl`);
string $firstObj = $sel[0];
textFieldButtonGrp -edit -text $firstObj selObj;
print $firstObj;
}
proc sc_frameCount()
{
int $start = (`textFieldGrp -query -text start`);
int $end = (`textFieldGrp -query -text finish`);
int $min = 1;
int $max = 10;
string $sel[] = (`select`);
string $Ty = "ty";
$currentFrame = $start;
for ($currentFrame > $start; $currentFrame < $end;)
{
int $randGen = rand($min,$max);
string $selObj = (`textFieldButtonGrp -query -text selObj`);
float $randMoveX = (`floatSliderGrp -query -value tranX`);
float $randMoveY = (`floatSliderGrp -query -value tranY`);
float $randMoveZ = (`floatSliderGrp -query -value tranZ`);
string $objAttrX = $selObj + ".translateX";
string $objAttrY = $selObj + ".translateY";
string $objAttrZ = $selObj + ".translateZ";
int $objAttrGetX = `getAttr $objAttrX`;
int $objAttrGetY = `getAttr $objAttrY`;
int $objAttrGetZ = `getAttr $objAttrZ`;
int $finalMoveX = ($objAttrGetX + $randMoveX);
int $finalMoveY = ($objAttrGetY + $randMoveY);
int $finalMoveZ = ($objAttrGetZ + $randMoveZ);
$currentFrame = ($currentFrame + $randGen);
currentTime -edit $currentFrame;
setAttr $objAttrX $finalMoveX;
setAttr $objAttrY $finalMoveY;
setAttr $objAttrZ $finalMoveZ;
print ($currentFrame + "\n");
print ($randMoveX + "\n");
print ($randMoveY + "\n");
print ($randMoveZ + "\n");
setKeyframe `textFieldButtonGrp -query -text selObj`;
}
}
sc_gui()

Thursday, 20 January 2011

Shared Attributes amoung controls

Today me and georg looked at the g_male rig, specifically at a unique aspect in the control points, it has this ability to control one aspect from differnt locations, the main application of this that we where after was the ik/fk blend, the rig allows us to change the blend from anywhere along the arms controls. after some poking and proding we established it was a shape node with added atrributes, the special thing about it was that it was an instance, this fact stops the ik and fk from concatonating the two switches i.e. if both switches are set at 1 then the way I initially approached the solution it would be 2, this errors the rig's arms, but with the shared attributes being an instance its the same accross all the different nodes, so if its 0.5 in one place its 0.5 in all.

brief description out the way heres how to do it;

decide what it is you want, my arms shared attributes will be divided between hand and arm [arm is the ik/fk switch, hand is the grip, indexCurl spread, indexSpread etc.]

make a shape, I quite like singe vert curves as there tiny and can easily be hidden in the scene.

rename the transoform node appropriatly for the section its going to be shared accross i.e. sharedAttr_lf_arm_master_01

select the shape not the transform

add attr [modify > add attr] and edit parameters parameters [channel box]

duplicate special the shape node as an instance.

select the shape then the object you wish to impart the new attributes.

run the command "parent -r -s" [no quotes] or make a button in the shelf that does this command.

And done, the object will now have the shared attr.

Tuesday, 21 December 2010

ZOMG SAUCE PLOX!!!!!1!!!!111!!

proc sc_gui()
{
string $selection[] = (`ls -selection`);
if (`window -exists "sc_gui"`) deleteUI "sc_gui";
window -w 150 -h 300 -t "My Tool Set" -maximizeButton false -minimizeButton false sc_gui;
print "Selected: ";
print ($selection);
columnLayout;
button -l "Select Hierachy" -w 150 -c "sc_hi";
separator -style "double" -w 150;
button -l "Create Locator" -w 150 -c "sc_locator";
separator -style "double" -w 150;
button -l "Toggle Rotation Axes" -w 150 -c "sc_axes";
separator -style "double" -w 150;
button -l "Rename Selected" -w 150 -c "sc_Rename";
separator -style "double" -w 150;
button -label "Convention" -w 150 -command "sc_Convention";
separator -style "double" -w 150;
button -label "Create Box Curve" -w 150 -command "sc_curveBox";
separator -style "double" -w 150;
button -label "Create Joint Curve" -w 150 -command "sc_curveJoint";
separator -style "double" -w 150;
button -label "Character Nodes" -w 150 -command "sc_grpNodes";
separator -style "double" -w 150;
button -label "Vertex Joints" -w 150 -command "sc_vertJoint";
separator -style "double" -w 150;
button -label "Hyper Shader" -w 150 -command "sc_hypershader_gui";
showWindow "sc_gui";
}
proc sc_Convention()
{
if (`window -exists "sc_Convention"`) deleteUI "sc_Convention";
window -w 150 -h 300 -t "GUI" -maximizeButton false -minimizeButton false sc_Convention;
columnLayout -adj 1;
text -w 150 -al "left" -fn "boldLabelFont" -l "Prefix";
textField -width 150 sc_preffix;
text -w 150 -al "left" -fn "boldLabelFont" -l "Sufix";
textField -width 150 -text `date -format "DDMMYY"` sc_suffix;
button -l "Apply" -w 150 -c "sc_Convention_win";
showWindow "sc_Convention";
}
proc sc_Convention_win()
{
string $marker = "nc_";
string $prefix = `textField -q -text sc_preffix`;
string $sufix = `textField -q -text sc_suffix`;
string $selection[] = (`ls -selection`);
if (size($prefix) == 0 || size($prefix) < 1 )
{
print "\nNo Prefix defined\n";
}
else
{
print "\nPREFIX: ";
print ($prefix + "\n");
}
if (size($selection) == 0 || size($selection) < 1 )
{
print "No Objest selected\n";
}
else
{
for ($items in $selection)
{
print ($items + "\n");
string $matches = (`match $marker $items`);
print ($matches + "\n");
if ( $matches == $marker)
{
print "false \n ";
}
else
{
rename $items ("nc_" + $prefix + "_" + $items + "_" + $sufix);
}
}
}
string $selection[] = (`ls -selection`);
print "Selected:\n";
print $selection "\n";
}
proc sc_Rename()
{
if (`window -exists "rnm_win"`) deleteUI "rnm_win";
window -w 600 -h 300 -t "Rename" -maximizeButton false -minimizeButton false rnm_win;
columnLayout -adj 1;
string $sel[] = `ls -sl`;
for ($each in $sel)
{
nameField -o $each;
}
showWindow rnm_win;
}
proc sc_locator()
{
string $locator[] = `spaceLocator`;
string $Rename = `rename $locator "loc"`;
}
proc sc_hi()
{
select -hi;
}
proc sc_axes()
{
ToggleLocalRotationAxes;
}
proc sc_curveBox()
{
string $boxCurve = `curve -d 1 -p -4.810877 4.810877 4.810877 -p 4.810877 4.810877 4.810877 -p 4.810877 4.810877 -4.810877 -p -4.810877 4.810877 -4.810877 -p -4.810877 4.810877 4.810877 -p -4.810877 -4.810877 4.810877 -p 4.810877 -4.810877 4.810877 -p 4.810877 -4.810877 -4.810877 -p 4.810877 4.810877 -4.810877 -p 4.810877 4.810877 4.810877 -p 4.810877 -4.810877 4.810877 -p 4.810877 -4.810877 -4.810877 -p -4.810877 -4.810877 -4.810877 -p -4.810877 4.810877 -4.810877 -p -4.810877 -4.810877 -4.810877 -p -4.810877 -4.810877 4.810877 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -k 9 -k 10 -k 11 -k 12 -k 13 -k 14 -k 15` ;
select $boxCurve;
string $RenameCurve = `rename $boxCurve "boxCurve01"`;
}
proc sc_curveJoint()
{
string $circleCurve1[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -tol 0.01 -s 8 -ch 1`;
string $circleCurve2[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -tol 0.01 -s 8 -ch 1`;
string $circleCurve3[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -tol 0.01 -s 8 -ch 1`;
rotate -r -os 90 0 0 $circleCurve2[0];
rotate -r -os 0 0 90 $circleCurve3[0];
select $circleCurve2[0];
select -add $circleCurve3[0];
makeIdentity -apply 1 -t 1 -r 1 -s 1;
string $relativeCurve2[] = `listRelatives -shapes $circleCurve2[0]`;
string $relativeCurve3[] = `listRelatives -shapes $circleCurve3[0]`;
parent -r -s $relativeCurve2[0] $circleCurve1[0];
parent -r -shape $relativeCurve3[0] $circleCurve1[0];
select $circleCurve2[0];
select -add $circleCurve3[0];
doDelete;
string $RenameCurve = `rename $circleCurve1[0] "jointCurve01"`;
select $RenameCurve;
}
proc sc_vertJoint()
{
string $selVert[] = `ls -sl -fl`;
for ($verts in $selVert)
{
select $verts;
//cluster on each vert
string $cluster[] = `newCluster "-relative -envelope 1"`;
//clear selection
select -cl;
//create joint
string $newJoint = `joint`;
//point constrain
string $pointConstrain[] = `pointConstraint -offset 0 0 0 -weight 1 $cluster $newJoint`;
//query the constraint
string $findConstraint[] = `listRelatives -typ pointConstraint $newJoint`;
//select and delete constraint
select $findConstraint[0];
doDelete;
//delete the cluster
select -replace $cluster;
doDelete;
}
}
proc sc_grpNodes()
{
group -em -w -n charNode01;
group -em -w -n globalMove01;
group -em -w -n joints01;
group -em -w -n iks01;
group -em -w -n controlObjects01;
group -em -w -n to_transform01;
group -em -w -n trns_toShow01;
group -em -w -n trns_toHide01;
group -em -w -n model01;
group -em -w -n blendShapes01;
group -em -w -n extraNodes01;
group -em -w -n xtra_toShow01;
group -em -w -n xtra_toHide01;
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.tx";
setAttr -lock true -keyable false -channelBox false "charNode01.tx";
setAttr -lock true -keyable false -channelBox false "joints01.tx";
setAttr -lock true -keyable false -channelBox false "iks01.tx";
setAttr -lock true -keyable false -channelBox false "controlObjects01.tx";
setAttr -lock true -keyable false -channelBox false "to_transform01.tx";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.tx";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.tx";
setAttr -lock true -keyable false -channelBox false "model01.tx";
setAttr -lock true -keyable false -channelBox false "blendShapes01.tx";
setAttr -lock true -keyable false -channelBox false "extraNodes01.tx";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.tx";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.ty";
setAttr -lock true -keyable false -channelBox false "charNode01.ty";
setAttr -lock true -keyable false -channelBox false "joints01.ty";
setAttr -lock true -keyable false -channelBox false "iks01.ty";
setAttr -lock true -keyable false -channelBox false "controlObjects01.ty";
setAttr -lock true -keyable false -channelBox false "to_transform01.ty";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.ty";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.ty";
setAttr -lock true -keyable false -channelBox false "model01.ty";
setAttr -lock true -keyable false -channelBox false "blendShapes01.ty";
setAttr -lock true -keyable false -channelBox false "extraNodes01.ty";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.ty";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.tz";
setAttr -lock true -keyable false -channelBox false "charNode01.tz";
setAttr -lock true -keyable false -channelBox false "joints01.tz";
setAttr -lock true -keyable false -channelBox false "iks01.tz";
setAttr -lock true -keyable false -channelBox false "controlObjects01.tz";
setAttr -lock true -keyable false -channelBox false "to_transform01.tz";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.tz";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.tz";
setAttr -lock true -keyable false -channelBox false "model01.tz";
setAttr -lock true -keyable false -channelBox false "blendShapes01.tz";
setAttr -lock true -keyable false -channelBox false "extraNodes01.tz";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.tz";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.rx";
setAttr -lock true -keyable false -channelBox false "charNode01.rx";
setAttr -lock true -keyable false -channelBox false "joints01.rx";
setAttr -lock true -keyable false -channelBox false "iks01.rx";
setAttr -lock true -keyable false -channelBox false "controlObjects01.rx";
setAttr -lock true -keyable false -channelBox false "to_transform01.rx";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.rx";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.rx";
setAttr -lock true -keyable false -channelBox false "model01.rx";
setAttr -lock true -keyable false -channelBox false "blendShapes01.rx";
setAttr -lock true -keyable false -channelBox false "extraNodes01.rx";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.rx";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.ry";
setAttr -lock true -keyable false -channelBox false "charNode01.ry";
setAttr -lock true -keyable false -channelBox false "joints01.ry";
setAttr -lock true -keyable false -channelBox false "iks01.ry";
setAttr -lock true -keyable false -channelBox false "controlObjects01.ry";
setAttr -lock true -keyable false -channelBox false "to_transform01.ry";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.ry";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.ry";
setAttr -lock true -keyable false -channelBox false "model01.ry";
setAttr -lock true -keyable false -channelBox false "blendShapes01.ry";
setAttr -lock true -keyable false -channelBox false "extraNodes01.ry";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.ry";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.rz";
setAttr -lock true -keyable false -channelBox false "charNode01.rz";
setAttr -lock true -keyable false -channelBox false "joints01.rz";
setAttr -lock true -keyable false -channelBox false "iks01.rz";
setAttr -lock true -keyable false -channelBox false "controlObjects01.rz";
setAttr -lock true -keyable false -channelBox false "to_transform01.rz";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.rz";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.rz";
setAttr -lock true -keyable false -channelBox false "model01.rz";
setAttr -lock true -keyable false -channelBox false "blendShapes01.rz";
setAttr -lock true -keyable false -channelBox false "extraNodes01.rz";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.rz";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.sx";
setAttr -lock true -keyable false -channelBox false "charNode01.sx";
setAttr -lock true -keyable false -channelBox false "joints01.sx";
setAttr -lock true -keyable false -channelBox false "iks01.sx";
setAttr -lock true -keyable false -channelBox false "controlObjects01.sx";
setAttr -lock true -keyable false -channelBox false "to_transform01.sx";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.sx";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.sx";
setAttr -lock true -keyable false -channelBox false "model01.sx";
setAttr -lock true -keyable false -channelBox false "blendShapes01.sx";
setAttr -lock true -keyable false -channelBox false "extraNodes01.sx";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.sx";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.sy";
setAttr -lock true -keyable false -channelBox false "charNode01.sy";
setAttr -lock true -keyable false -channelBox false "joints01.sy";
setAttr -lock true -keyable false -channelBox false "iks01.sy";
setAttr -lock true -keyable false -channelBox false "controlObjects01.sy";
setAttr -lock true -keyable false -channelBox false "to_transform01.sy";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.sy";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.sy";
setAttr -lock true -keyable false -channelBox false "model01.sy";
setAttr -lock true -keyable false -channelBox false "blendShapes01.sy";
setAttr -lock true -keyable false -channelBox false "extraNodes01.sy";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.sy";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.sz";
setAttr -lock true -keyable false -channelBox false "charNode01.sz";
setAttr -lock true -keyable false -channelBox false "joints01.sz";
setAttr -lock true -keyable false -channelBox false "iks01.sz";
setAttr -lock true -keyable false -channelBox false "controlObjects01.sz";
setAttr -lock true -keyable false -channelBox false "to_transform01.sz";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.sz";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.sz";
setAttr -lock true -keyable false -channelBox false "model01.sz";
setAttr -lock true -keyable false -channelBox false "blendShapes01.sz";
setAttr -lock true -keyable false -channelBox false "extraNodes01.sz";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.sz";
setAttr -lock true -keyable false -channelBox false "globalMove01.visibility";
select -r trns_toShow01;
select -tgl trns_toHide01;
select -tgl to_transform01;
parent;
select -r joints01;
select -tgl iks01;
select -tgl controlObjects01;
select -tgl to_transform01;
select -tgl globalMove01;
parent;
select -r xtra_toShow01;
select -tgl xtra_toHide01;
select -tgl extraNodes01;
parent;
select -r globalMove01;
select -tgl model01;
select -tgl blendShapes01;
select -tgl extraNodes01;
select -tgl charNode01;
parent;
select -cl;
}
proc sc_hypershader_gui()
{
string $selection[] = (`ls -selection`);
if (`window -exists "sc_hyper"`) deleteUI "sc_hyper";
window -w 150 -h 300 -t "Hyper shade tools" -maximizeButton false -minimizeButton true sc_hyper;
columnLayout;
button -l "Clear Graph" -w 150 -c "sc_hyperClear";
separator -style "double" -w 150;
button -l "Add Selected" -w 150 -c "sc_hyperAdd";
separator -style "double" -w 150;
button -l "Remove Selected" -w 150 -c "sc_hyperRemove";
separator -style "double" -w 150;
showWindow "sc_hyper";
HypershadeWindow;
hyperShadePanelMenuCommand("hyperShadePanel1", "toggleRenderCreateBar");
hyperShadePanelMenuCommand("hyperShadePanel1", "showBottomTabsOnly");
}
proc sc_hyperClear()
{
hyperShadePanelGraphCommand("hyperShadePanel1", "clearGraph");
}
proc sc_hyperAdd()
{
hyperShadePanelGraphCommand("hyperShadePanel1", "addSelected");
}
proc sc_hyperRemove()
{
hyperShadePanelGraphCommand("hyperShadePanel1", "removeSelected");
}
sc_gui()

Friday, 10 December 2010

An Endless Rig

So now with both feet's roll complete;

I began working on the controls for the foot;


Then cleaned up the attribute editor by locking and hidding some options;

Thursday, 9 December 2010

Rig country

Today I'll primarily be working on setting up the foot roll structure, and looking at creating a joint curve tool.

So I started with creating some new joints;


Next I roughly aligned the new joints to the main foot joints by holding v and snaping the new joints along x;


Then  to make things easier, I wrote a little script to select hierachies easier;

proc sc_hi()

{
      select -hi;
}
sc_hi()

and added it as a shelf button, building up quite a nice little collection of scripts here, hierachy selection, rename, locator creation, local rotation axes display, and the node script (need to add that one back).



After finding out that the foot was twisted out slightly and the joints need realigning and zero'ing back out, I continued forward and renamed the revers lock joints;


Then I needed to mirror them over for the other leg and check the alignment was correct;


Now I need to setup the rev. lock so its functional in the foot roll;

all that needs doing is constraining the rev. lock and parenting the locators, essentially, the locators are orientated and constrained too there respective counter part (one for each the ankle and ball joint) on the main driver skeleton, then the rev. lock joints are parented to the locators, so the locators are directly connected to the rev. lock but not the driver skeleton, there just a reference for the driver, the locators are also point constrained to the IK so it can alter the rev. lock joint section. complicated. but heres my outliner with it all done on the left foot;


Heel pivot;


Ball roll;


Side roll;


And finally a toe pivot;



Thats the toe joints pretty much sorted, I just need to do the same for the right foot then its onwards and upwards.

Got slightly distracted and put all my currently used scripts all into one conveniant window;


SAUCE;

proc sc_gui()
{
string $selection[] = (`ls -selection`);
if (`window -exists "sc_gui"`) deleteUI "sc_gui";
window -w 150 -h 300 -t "My Tool Set" -maximizeButton false -minimizeButton false sc_gui;
print "Selected: ";
print ($selection);
columnLayout;
button -l "Select Hierachy" -w 150 -c "sc_hi";
separator -style "double" -w 150;
button -l "Create Locator" -w 150 -c "sc_locator";
separator -style "double" -w 150;
button -l "Toggle Rotation Axes" -w 150 -c "sc_axes";
separator -style "double" -w 150;
button -l "Rename Selected" -w 150 -c "sc_Rename";
separator -style "double" -w 150;
button -label "Convention" -w 150 -command "sc_Convention";
separator -style "double" -w 150;
button -label "Create Box Curve" -w 150 -command "sc_curveBox";
separator -style "double" -w 150;
button -label "Create Joint Curve" -w 150 -command "sc_curveJoint";
separator -style "double" -w 150;
button -label "Character Nodes" -w 150 -command "sc_grpNodes";
showWindow "sc_gui";
}
proc sc_Convention()
{
if (`window -exists "sc_Convention"`) deleteUI "sc_Convention";
window -w 150 -h 300 -t "GUI" -maximizeButton false -minimizeButton false sc_Convention;
columnLayout -adj 1;
text -w 150 -al "left" -fn "boldLabelFont" -l "Prefix";
textField -width 150 sc_preffix;
text -w 150 -al "left" -fn "boldLabelFont" -l "Sufix";
textField -width 150 -text `date -format "DDMMYY"` sc_suffix;
button -l "Apply" -w 150 -c "sc_Convention_win";
showWindow "sc_Convention";
}
proc sc_Convention_win()
{
string $marker = "nc_";
string $prefix = `textField -q -text sc_preffix`;
string $sufix = `textField -q -text sc_suffix`;
string $selection[] = (`ls -selection`);
if (size($prefix) == 0 || size($prefix) < 1 )
{
print "\nNo Prefix defined\n";
}
else
{
print "\nPREFIX: ";
print ($prefix + "\n");
}
if (size($selection) == 0 || size($selection) < 1 )
{
print "No Objest selected\n";
}
else
{
for ($items in $selection)
{
print ($items + "\n");
string $matches = (`match $marker $items`);
print ($matches + "\n");
if ( $matches == $marker)
{
print "false \n ";
}
else
{
rename $items ("nc_" + $prefix + "_" + $items + "_" + $sufix);
}
}
}
string $selection[] = (`ls -selection`);
print "Selected:\n";
print $selection "\n";
}
proc sc_Rename()
{
if (`window -exists "rnm_win"`) deleteUI "rnm_win";
window -w 600 -h 300 -t "Rename" -maximizeButton false -minimizeButton false rnm_win;
columnLayout -adj 1;
string $sel[] = `ls -sl`;
for ($each in $sel)
{
nameField -o $each;
}
showWindow rnm_win;
}
proc sc_locator()
{
string $locator[] = `spaceLocator`;
string $Rename = `rename $locator "loc"`;
}
proc sc_hi()
{
select -hi;
}
proc sc_axes()
{
ToggleLocalRotationAxes;
}
proc sc_curveBox()
{
string $curveLoc[] = `spaceLocator`;
string $nameLocator = `rename $curveLoc "curveLoc"`;
string $boxCurve = `curve -d 1 -p -4.810877 4.810877 4.810877 -p 4.810877 4.810877 4.810877 -p 4.810877 4.810877 -4.810877 -p -4.810877 4.810877 -4.810877 -p -4.810877 4.810877 4.810877 -p -4.810877 -4.810877 4.810877 -p 4.810877 -4.810877 4.810877 -p 4.810877 -4.810877 -4.810877 -p 4.810877 4.810877 -4.810877 -p 4.810877 4.810877 4.810877 -p 4.810877 -4.810877 4.810877 -p 4.810877 -4.810877 -4.810877 -p -4.810877 -4.810877 -4.810877 -p -4.810877 4.810877 -4.810877 -p -4.810877 -4.810877 -4.810877 -p -4.810877 -4.810877 4.810877 -k 0 -k 1 -k 2 -k 3 -k 4 -k 5 -k 6 -k 7 -k 8 -k 9 -k 10 -k 11 -k 12 -k 13 -k 14 -k 15` ;
select $boxCurve;
string $RenameCurve = `rename $boxCurve "boxCurve01"`;
}
proc sc_curveJoint()
{
string $circleCurve1[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -tol 0.01 -s 8 -ch 1`;
string $circleCurve2[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -tol 0.01 -s 8 -ch 1`;
string $circleCurve3[] = `circle -c 0 0 0 -nr 0 1 0 -sw 360 -r 1 -d 3 -ut 0 -tol 0.01 -s 8 -ch 1`;
rotate -r -os 90 0 0 $circleCurve2[0];
rotate -r -os 0 0 90 $circleCurve3[0];
select $circleCurve2[0];
select -add $circleCurve3[0];
makeIdentity -apply 1 -t 1 -r 1 -s 1;
string $relativeCurve2[] = `listRelatives -shapes $circleCurve2[0]`;
string $relativeCurve3[] = `listRelatives -shapes $circleCurve3[0]`;
parent -r -s $relativeCurve2[0] $circleCurve1[0];
parent -r -shape $relativeCurve3[0] $circleCurve1[0];
select $circleCurve2[0];
select -add $circleCurve3[0];
doDelete;
string $RenameCurve = `rename $circleCurve1[0] "jointCurve01"`;
select $RenameCurve;
}
proc sc_grpNodes()
{
group -em -w -n charNode01;
group -em -w -n globalMove01;
group -em -w -n joints01;
group -em -w -n iks01;
group -em -w -n controlObjects01;
group -em -w -n to_transform01;
group -em -w -n trns_toShow01;
group -em -w -n trns_toHide01;
group -em -w -n model01;
group -em -w -n blendShapes01;
group -em -w -n extraNodes01;
group -em -w -n xtra_toShow01;
group -em -w -n xtra_toHide01;
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.tx";
setAttr -lock true -keyable false -channelBox false "charNode01.tx";
setAttr -lock true -keyable false -channelBox false "joints01.tx";
setAttr -lock true -keyable false -channelBox false "iks01.tx";
setAttr -lock true -keyable false -channelBox false "controlObjects01.tx";
setAttr -lock true -keyable false -channelBox false "to_transform01.tx";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.tx";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.tx";
setAttr -lock true -keyable false -channelBox false "model01.tx";
setAttr -lock true -keyable false -channelBox false "blendShapes01.tx";
setAttr -lock true -keyable false -channelBox false "extraNodes01.tx";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.tx";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.ty";
setAttr -lock true -keyable false -channelBox false "charNode01.ty";
setAttr -lock true -keyable false -channelBox false "joints01.ty";
setAttr -lock true -keyable false -channelBox false "iks01.ty";
setAttr -lock true -keyable false -channelBox false "controlObjects01.ty";
setAttr -lock true -keyable false -channelBox false "to_transform01.ty";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.ty";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.ty";
setAttr -lock true -keyable false -channelBox false "model01.ty";
setAttr -lock true -keyable false -channelBox false "blendShapes01.ty";
setAttr -lock true -keyable false -channelBox false "extraNodes01.ty";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.ty";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.tz";
setAttr -lock true -keyable false -channelBox false "charNode01.tz";
setAttr -lock true -keyable false -channelBox false "joints01.tz";
setAttr -lock true -keyable false -channelBox false "iks01.tz";
setAttr -lock true -keyable false -channelBox false "controlObjects01.tz";
setAttr -lock true -keyable false -channelBox false "to_transform01.tz";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.tz";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.tz";
setAttr -lock true -keyable false -channelBox false "model01.tz";
setAttr -lock true -keyable false -channelBox false "blendShapes01.tz";
setAttr -lock true -keyable false -channelBox false "extraNodes01.tz";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.tz";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.rx";
setAttr -lock true -keyable false -channelBox false "charNode01.rx";
setAttr -lock true -keyable false -channelBox false "joints01.rx";
setAttr -lock true -keyable false -channelBox false "iks01.rx";
setAttr -lock true -keyable false -channelBox false "controlObjects01.rx";
setAttr -lock true -keyable false -channelBox false "to_transform01.rx";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.rx";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.rx";
setAttr -lock true -keyable false -channelBox false "model01.rx";
setAttr -lock true -keyable false -channelBox false "blendShapes01.rx";
setAttr -lock true -keyable false -channelBox false "extraNodes01.rx";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.rx";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.ry";
setAttr -lock true -keyable false -channelBox false "charNode01.ry";
setAttr -lock true -keyable false -channelBox false "joints01.ry";
setAttr -lock true -keyable false -channelBox false "iks01.ry";
setAttr -lock true -keyable false -channelBox false "controlObjects01.ry";
setAttr -lock true -keyable false -channelBox false "to_transform01.ry";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.ry";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.ry";
setAttr -lock true -keyable false -channelBox false "model01.ry";
setAttr -lock true -keyable false -channelBox false "blendShapes01.ry";
setAttr -lock true -keyable false -channelBox false "extraNodes01.ry";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.ry";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.rz";
setAttr -lock true -keyable false -channelBox false "charNode01.rz";
setAttr -lock true -keyable false -channelBox false "joints01.rz";
setAttr -lock true -keyable false -channelBox false "iks01.rz";
setAttr -lock true -keyable false -channelBox false "controlObjects01.rz";
setAttr -lock true -keyable false -channelBox false "to_transform01.rz";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.rz";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.rz";
setAttr -lock true -keyable false -channelBox false "model01.rz";
setAttr -lock true -keyable false -channelBox false "blendShapes01.rz";
setAttr -lock true -keyable false -channelBox false "extraNodes01.rz";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.rz";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.sx";
setAttr -lock true -keyable false -channelBox false "charNode01.sx";
setAttr -lock true -keyable false -channelBox false "joints01.sx";
setAttr -lock true -keyable false -channelBox false "iks01.sx";
setAttr -lock true -keyable false -channelBox false "controlObjects01.sx";
setAttr -lock true -keyable false -channelBox false "to_transform01.sx";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.sx";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.sx";
setAttr -lock true -keyable false -channelBox false "model01.sx";
setAttr -lock true -keyable false -channelBox false "blendShapes01.sx";
setAttr -lock true -keyable false -channelBox false "extraNodes01.sx";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.sx";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.sy";
setAttr -lock true -keyable false -channelBox false "charNode01.sy";
setAttr -lock true -keyable false -channelBox false "joints01.sy";
setAttr -lock true -keyable false -channelBox false "iks01.sy";
setAttr -lock true -keyable false -channelBox false "controlObjects01.sy";
setAttr -lock true -keyable false -channelBox false "to_transform01.sy";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.sy";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.sy";
setAttr -lock true -keyable false -channelBox false "model01.sy";
setAttr -lock true -keyable false -channelBox false "blendShapes01.sy";
setAttr -lock true -keyable false -channelBox false "extraNodes01.sy";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.sy";
setAttr -lock true -keyable false -channelBox false "xtra_toHide01.sz";
setAttr -lock true -keyable false -channelBox false "charNode01.sz";
setAttr -lock true -keyable false -channelBox false "joints01.sz";
setAttr -lock true -keyable false -channelBox false "iks01.sz";
setAttr -lock true -keyable false -channelBox false "controlObjects01.sz";
setAttr -lock true -keyable false -channelBox false "to_transform01.sz";
setAttr -lock true -keyable false -channelBox false "trns_toShow01.sz";
setAttr -lock true -keyable false -channelBox false "trns_toHide01.sz";
setAttr -lock true -keyable false -channelBox false "model01.sz";
setAttr -lock true -keyable false -channelBox false "blendShapes01.sz";
setAttr -lock true -keyable false -channelBox false "extraNodes01.sz";
setAttr -lock true -keyable false -channelBox false "xtra_toShow01.sz";
setAttr -lock true -keyable false -channelBox false "globalMove01.visibility";
select -r trns_toShow01;
select -tgl trns_toHide01;
select -tgl to_transform01;
parent;
select -r joints01;
select -tgl iks01;
select -tgl controlObjects01;
select -tgl to_transform01;
select -tgl globalMove01;
parent;
select -r xtra_toShow01;
select -tgl xtra_toHide01;
select -tgl extraNodes01;
parent;
select -r globalMove01;
select -tgl model01;
select -tgl blendShapes01;
select -tgl extraNodes01;
select -tgl charNode01;
parent;
select -cl;
}

sc_gui()