Results 1 to 2 of 2
  1. #1
    Join Date
    Nov 2004
    Location
    Sydney!
    Posts
    1,151

    Free MEL Scripts and Character Rigs

    PART 1: FREE CHARACTER RIGS


    Ok, bascialy im starting this thread so everyone can give character animation a try. So what i'm doing here is compiling a list of character rigs so you dont have to go searching for them. I know not many people here are into character animation, but maybe this wil get some of ya started

    EDIT by Count Zero: The old thread can be found here

    www.rigging101.com

    PACKAGE MAN V1.2:
    http://student.vfs.com/~m07goosh/rig...ee/rigs/pm.zip
    Help file: http://student.vfs.com/~m07goosh/rig...ee/rigs/pm.pdf

    TROLL:
    http://student.vfs.com/~m07goosh/rig...rigs/troll.zip

    SUPER GRAMPS:
    http://student.vfs.com/~m07goosh/rig...upergramps.zip

    IK JOE V3:
    http://student.vfs.com/~m07goosh/rig...gs/ikjoev3.zip
    Help file: http://student.vfs.com/~m07goosh/rig...gs/ikjoev3.pdf

    IK JANE:
    http://student.vfs.com/~m07goosh/rig...igs/ikjane.zip


    http://www.3dfiggins.com
    RIG SET 6 (gattling gun; a funky missile; a missile launcher; hover ship)
    http://www.3dfiggins.com/scrap/rig6.rar

    RIG SET 4 (Dog, like Men in Black; Praying Mantis type character)
    http://www.3dfiggins.com/scrap/rig4.rar

    RIG SET 5 (Robotic Dragon; Boxy Panther; Spaceship type bot)
    http://www.3dfiggins.com/scrap/rig5.rar

    RIG SET 3 (Ninja; Blobby character)
    http://www.3dfiggins.com/scrap/rig3.rar

    RIG SET 7 (fantasy woman)
    http://www.3dfiggins.com/scrap/rig7.rar

    RIG SET 11 (Cyborg)
    http://www.3dfiggins.com/scrap/rig11.rar

    RIG SET 2 (Funny zombie man; Scorpian; Zombie Child)
    http://www.3dfiggins.com/scrap/rig2.rar

    RIG SET 1 (Beetle; Walker type character)
    http://www.3dfiggins.com/scrap/rig1.rar

    RIG SET 8 (Muscular Comic Girl)
    http://www.3dfiggins.com/scrap/rig8.rar

    RIG SET 10 (Khanklesaur-massive disnosaur like creature)
    http://www.3dfiggins.com/scrap/rig10.rar

    RIG SET 9 (Tahoro-Ork type character)
    http://www.3dfiggins.com/scrap/rig9.rar

    RIG SET 12 (Mecha Girl-Same as comic girl, but with Massive guns as arms)
    http://www.3dfiggins.com/scrap/rig12.rar


    http://andrewsilke.com
    GENERI (fully animatable character-excellent facial controls and just about your normal character rig with an excellent UI. More with the help documents)
    http://andrewsilke.com/generi_rig/generi_rig_v1.1.zip

    Help files: http://andrewsilke.com/generi_rig/generi_rig.html

    http://highend3d.com
    COLLECTION OF VARIOUS RIGS Including: Devil-A fantasy dragon;Noodle-Cartoony rig; Chip-A large male; MooM-Simple but cool rig; ntMonkey-Awesome monkey rig; Fred-Basic male rig; Elvis-The name says it all(looks like elvis); Monkey-Basic monkey rig; Flour Sack-Yep, just a flour sack; Bloke-Cool little character rig; Alfred-Cool full body character rig; Lowman-Lowman base rig with blendshapes; Frank-Character with massive muscles; Primoboy-Character rig with triggers; BasicGuy-Simple yet cool character rig

    http://www.highend3d.com/maya/downloads/character_rigs/


    http://www.mothermushroom.com
    PJLHOGAN General kind of rig with good controls that would work in most types of animations. Is a humanoid character.

    http://www.mothermushroom.com/images...jlHogan.v2.zip

    http://www.strutyourreel.com
    SERGIO Humanoid character with squash and stretch, and good facial controls and a bunch of other stuff. It's still in beta as i type this, and the rig is not scalable as of yet but it is still being worked on so check the forums often! ( http://www.strutyourreel.com/forum/viewforum.php?f=37 )

    http://www.strutyourreel.com/forum/viewtopic.php?t=2506

    http://www.andersfray.com/
    CHIP Chip is a free character rig for for Maya 7 and above. Feel free to animate and use him for whatever means, as long as it is for non-profit purposes of course. Check out the link for further details!

    http://highend3d.com/maya/downloads/...Chip-4446.html


    lizardj on 3DBuzz.com
    Teddy "a simply cartoony setup with stretchy limbs/spine and a bone-based facial rig."

    http://www.highend3d.com/maya/downlo...-Rig-4790.html

    MWarsame on 3DBuzz.com
    Stickman Inspired by 'Stickman battles' and 'Stickman on crack' I decided to model and rig him. He/She is very simple.

    Version 1.0.0 * Maya 7+ * Shape Change * Smooth Control* Scalable* IK only

    http://www.highend3d.com/maya/downlo...ption&&id=5007


    If there are any rigs you want me to add, or look up, then just say so
    Last edited by Count_Zero; 04-24-2008 at 07:47 AM.

  2. #2
    Join Date
    Jan 2006
    Location
    Saumur, France
    Posts
    1,347

    Free MEL Scripts and Character Rigs

    PART 2 FREE MEL SCRIPTS
    Last Update: 14 July 2008

    Welcome to the MEL script section. This is a collection of MEL scripts all free to copy, paste, and use at your own leisure. This list is based off the old MEL script sticky which can still be found here .
    Feel free to post or PM me your own MEL scripts and I will add them to the list.

    NOTES ON USING MEL SCRIPTS:

    If you have never used a MEL script, this is how you do it:
    1. In Maya open up the script editor under Window->General Editors->Script Editor
    2. Copy the entire MEL script into the Editor input section (the white window on the bottom)
    3. Optional (to keep code after execution): Select the MEL script (CTRL + A or click drag)
    4. Press ALT + Enter OR Numpad Enter to execute script

    How to add a MEL script to the shelf:
    1. Add the MEL script to Script Editor input section (as described above)
    2. Select the MEL script (CTRL + A or click drag)
    3. Middle mouse drag the selected scrip to your shelf

    MM:Advanced Modeling HUD Script
    Hey all,

    Sorry about the delay in this, but I didn't see this anywhere else, so I thought I'd post it up here. This is the exact script I used when recording the videos. There are some parts that are non-functional, but that should not hinder you. I did finish the model, after all.

    Cheers,

    Zak
    Code:
    //Nurbs Modeling HUD
    //Author: Jason "BuZZ" Busby
    //Date:  12/16/05
    //USE AT YOUR OWN RISK!
    
    //Note:  This scipt, while not completely finished, 
    //is the very one used in the Dash Cunning videos of Adv. Modeling
    
    
    if( `optionVar -exists "nurbsDisplayItem"`)
        optionVar -iv "nurbsDisplayItem" 0;
    
    if (!`HUD_Cleanup`)
        HUD_Create;
    
    
    global proc int HUD_Cleanup()
    {
        int $HUD_Exists = 0;
        string $HUDs[] = {
                    "HUD_selected",
                    "HUD_spans",
                    "HUD_degree",
                    "HUD_minMaxU",
                    "HUD_minMaxV",
                    "HUD_Rebuild",
                    "HUD_Attach",
                    "HUD_Detach",
                    "HUD_InsertIsoparm",
                    "HUD_CVCurveTool",
                    "HUD_EPCurveTool"
                 };
    
        for ($HUD_Num = 0; $HUD_Num < size($HUDs); $HUD_Num++)
        {
            if( `headsUpDisplay -exists $HUDs[$HUD_Num]`)
            {
                headsUpDisplay -remove $HUDs[$HUD_Num];
                $HUD_Exists = 1;
            }
        }
        return $HUD_Exists;
    }
    
    
    global proc HUD_Create()
    {
    
        $section = 0;
    
        headsUpDisplay
            -section $section
            -block `headsUpDisplay -nextFreeBlock $section`
            -blockSize "small"
            -label "NURBS Selected: None"
            -labelFontSize "small"
            -labelWidth 100
            -command "getNurbsAttr visTest"
            -event "SelectionChanged"
            -nodeChanges "attributeChange"
            -visible false
                HUD_selected;
    
    
        headsUpDisplay
            -section $section
            -block `headsUpDisplay -nextFreeBlock $section`
            -blockSize "small"
            -label "Spans UV"
            -labelFontSize "small"
            -labelWidth 100
            -command "getNurbsAttr spansUV"
            -event "SelectionChanged"
            -nodeChanges "attributeChange"
            HUD_spans;
    
    
    
    
        headsUpDisplay
            -section $section
            -block `headsUpDisplay -nextFreeBlock $section`
            -blockSize "small"
            -label "Degree UV"
            -labelFontSize "small"
            -labelWidth 100
            -command "getNurbsAttr degreeUV"
            -event "SelectionChanged"
            -nodeChanges "attributeChange"
            HUD_degree;
    
    
    
    
        headsUpDisplay
            -section $section
            -block `headsUpDisplay -nextFreeBlock $section`
            -blockSize "small"
            -label "Min Max Range U"
            -labelFontSize "small"
            -labelWidth 100
            -command "getNurbsAttr minMaxRangeU"
            -event "SelectionChanged"
            -nodeChanges "attributeChange"
            HUD_minMaxU;
    
    
    
        headsUpDisplay
            -section $section
            -block `headsUpDisplay -nextFreeBlock $section`
            -blockSize "small"
            -label "Min Max Range V"
            -labelFontSize "small"
            -labelWidth 100
            -command "getNurbsAttr minMaxRangeV"
            -event "SelectionChanged"
            -nodeChanges "attributeChange"
            HUD_minMaxV;
    
    
        hudButton
            -section $section
            -b `headsUpDisplay -nextFreeBlock $section`
            -vis 1
            -l "Rebuild"
            -bw 150
            -bsh "roundRectangle"
            -rc "HUDButtonRebuild()"
            HUD_Rebuild;
    
    
    
        hudButton -section $section
            -b `headsUpDisplay -nextFreeBlock $section`
            -vis 1
            -l "Attach & Rebuild"
            -bw 150
            -bsh "roundRectangle"
            -rc "HUDnurbsAttach()"
            HUD_Attach;
    
    
        hudButton -section $section
            -b `headsUpDisplay -nextFreeBlock $section`
            -vis 1
            -l "Detach & Rebuild"
            -bw 150
            -bsh "roundRectangle"
            -rc "HUDnurbsDetach()"
            HUD_Detach;
    
    
    
        hudButton -section $section
            -b `headsUpDisplay -nextFreeBlock $section`
            -vis 1
            -l "Insert Isoparm"
            -bw 150
            -bsh "roundRectangle"
            -rc "HUDinsertIsoparm()"
            HUD_InsertIsoparm;
    
    
        hudButton -section $section
            -b `headsUpDisplay -nextFreeBlock $section`
            -vis 1
            -l "CV Curve Tool"
            -bw 150
            -bsh "roundRectangle"
            -rc "HUDCVCurveTool()"
            HUD_CVCurveTool;
    
    
        hudButton -section $section
            -b `headsUpDisplay -nextFreeBlock $section`
            -vis 1
            -l "EP Curve Tool"
            -bw 150
            -bsh "roundRectangle"
            -rc "HUDEPCurveTool()"
            HUD_EPCurveTool;
    
    }
    
    //-------------------------------------------------------------------------------------
    //-------------------------------------------------------------------------------------
    
    
    // Gets the nurbs attributes
    global proc string getNurbsAttr ( string $dataType ) //$a
    {
        // List last selected object
        string $selList[] = `ls -sl  -tail 1 -dag -shapes`;
        string $compList[] = `ls -hl -tail 1 -dag`;
        string $objectType = "";
        string $rVal;
    
        if ( `size $selList` == 0 && `size $compList` > 0)
        {
            $selList[0] = $compList[0];
        }
    
    
        if (`size $selList` > 0)
            $objectType = `nodeType $selList[0]`;
    
    
        if (( `size $selList` == 0 ) || (( $objectType != "nurbsSurface" ) && ( $objectType != "nurbsCurve" )))
        {
            hideHUD;
            return "";
        }
    
            ///////////////////////////////////////////////////////////////
            //    NURBS SURFACES                                         //
            ///////////////////////////////////////////////////////////////
        if ( $objectType == "nurbsSurface" )
        {
    
            //if ( $dataType == "visTest" )
            //    return "";
    
            if ( $dataType == "spansUV" )
            {
                float $spansU = `getAttr ( $selList[0] + ".spansU" )`;
                float $spansV = `getAttr ( $selList[0] + ".spansV" )`;
                if ($spansU < 10)
                    $rVal = ("    " + $spansU + "        " + $spansV); // 4 x 8 spaces
                else
                    $rVal = ("    " + $spansU + "      " + $spansV);  //4 x 6 spaces
                headsUpDisplay -edit -label "Spans UV" HUD_spans;
            }
    
            if ( $dataType == "degreeUV" )
            {
                float $degreeU = `getAttr ( $selList[0] + ".degreeU" )`;
                float $degreeV = `getAttr ( $selList[0] + ".degreeV" )`;
                $rVal = ("    " + $degreeU + "        " + $degreeV);
                headsUpDisplay -edit -label "Degree UV" HUD_degree;
            }
    
            if ( $dataType == "minMaxRangeU" )
            {
                float $minMaxRangeU[] = `getAttr ( $selList[0] + ".minMaxRangeU" )`;
                string $minRangeU = $minMaxRangeU[0];
                string $maxRangeU = $minMaxRangeU[1];
                $rVal = ("    " + $minRangeU + "        " + $maxRangeU);
                headsUpDisplay -edit -label "Min Max Range U" HUD_minMaxU;
            }
    
            if ( $dataType == "minMaxRangeV" )
            {
                float $minMaxRangeV[] = `getAttr ( $selList[0] + ".minMaxRangeV" )`;
                string $minRangeV = $minMaxRangeV[0];
                string $maxRangeV = $minMaxRangeV[1];
                $rVal = ("    " + $minRangeV + "        " + $maxRangeV);
                headsUpDisplay -edit -visible true HUD_minMaxV;
            }
    
        }
    
    
            ///////////////////////////////////////////////////////////////
            //    NURBS CURVES                                           //
            ///////////////////////////////////////////////////////////////
        else if ( $objectType == "nurbsCurve" )
        {
            if ( $dataType == "spansUV" )
            {
                int $spans = `getAttr ( $selList[0] + ".spans" )`;
                $rVal = ("    " + $spans);
                headsUpDisplay -edit -label "Spans" HUD_spans;
            }
    
            if ( $dataType == "degreeUV" )
            {
                int $degree = `getAttr ( $selList[0] + ".degree" )`;
                $rVal = ("    " + $degree);
                headsUpDisplay -edit -label "Degree" HUD_degree;
            }
    
            if ( $dataType == "minMaxRangeU" )
            {
                float $minMaxValue[] = `getAttr ( $selList[0] + ".minMaxValue" )`;
                string $minValue = $minMaxValue[0];
                string $maxValue = $minMaxValue[1];
                $rVal = ("    " + $minValue + "        " + $maxValue);
                headsUpDisplay -edit -label "Min Max Value" HUD_minMaxU;
            }
    
            if ( $dataType == "minMaxRangeV" )
            {
                $rVal = ("    " + "-");
                //headsUpDisplay -edit -visible false HUD_minMaxV;
            }
    
    
    
        }
    
        showHUD($objectType);
        return $rVal;
    
    }
    
    
    global proc hideHUD()
    {
        headsUpDisplay -edit -visible true HUD_selected;
        headsUpDisplay -edit -visible false HUD_spans;
        headsUpDisplay -edit -visible false HUD_degree;
        headsUpDisplay -edit -visible false HUD_minMaxU;
        headsUpDisplay -edit -visible false HUD_minMaxV;
        hudButton -edit -visible false HUD_Rebuild;
        hudButton -edit -visible false HUD_Attach;
        hudButton -edit -visible false HUD_Detach;
        hudButton -edit -visible false HUD_InsertIsoparm;
        hudButton -edit -visible true HUD_CVCurveTool;
        hudButton -edit -visible true HUD_EPCurveTool;
    
    }
    
    global proc showHUD(string $objectType)
    {
        if ((`headsUpDisplay -q -visible HUD_selected`) || 
            (!`headsUpDisplay -q -visible HUD_minMaxV` && $objectType == "nurbsSurface") ||
            (`headsUpDisplay -q -visible HUD_minMaxV` && $objectType == "nurbsCurve"))
        {
            headsUpDisplay -edit -visible false HUD_selected;
            headsUpDisplay -edit -visible true HUD_spans;
            headsUpDisplay -edit -visible true HUD_degree;
            headsUpDisplay -edit -visible true HUD_minMaxU;
            //headsUpDisplay -edit -visible true HUD_minMaxV;
            hudButton -edit -visible true HUD_Rebuild;
            hudButton -edit -visible true HUD_Attach;
            hudButton -edit -visible true HUD_Detach;
            //hudButton -edit -visible true HUD_InsertIsoparm;
            hudButton -edit -visible false HUD_CVCurveTool;
            hudButton -edit -visible false HUD_EPCurveTool;
    
            if ($objectType ==  "nurbsSurface")
            {
                print ("Making visible! Surfaces!\n");
                       //We have a SURFACES selected, let's show a few things...
                headsUpDisplay -edit -visible true HUD_minMaxV;
                hudButton -edit -visible true HUD_InsertIsoparm;
    
            }
            else
            {
                //We have a CURVE selected, let's not show a few things...
                headsUpDisplay -edit -visible false HUD_minMaxV;
                hudButton -edit -visible false HUD_InsertIsoparm;
    
            }
        }
    
    
    
    
    }
    
    global proc HUDButtonRebuild()
    {
        string $selList[] = `ls -sl -tail 1 -dag`;
    
        if ( size ($selList) < 1 )
        {
            print "No objects selected\n";
            return;
        }
    
        if ( `nodeType $selList[0]` == "nurbsSurface" )
            RebuildSurfacesOptions;
    
        else if ( `nodeType $selList[0]` == "nurbsCurve" )
            RebuildCurveOptions;
    }
    
    
    global proc HUDnurbsAttach()
    {
        //string $selList[] = `ls -sl -tail 1 -dag`;
        string $SurfacesToAttach[] = `ls -sl -objectsOnly`;
        if (size($SurfacesToAttach) == 2)
        {
            //Get list of objects we will be dealing with
            string $parentOfShape[] = `listRelatives -fullPath -parent $SurfacesToAttach[0]`;
            string $newTransform = $parentOfShape[0];
            
            if ( `nodeType $SurfacesToAttach[0]` == "nurbsSurface" )
            {
                //Attach constists of: Attaching - Rebuild with CVs - Delete History - Component Mode: Isoparms
        
    
        
                //Attach the two selected NURBS Shapes
                attachSurface  -ch 1 -rpo 1 -kmk 1 -m 1 -bb 0.5 -bki 0 -p 0.1;
                setAttr ($SurfacesToAttach[1] + ".io") true;
    
                //Delete History
                select -r $newTransform;
                DeleteHistory;
        
                //Rebuild with CVs - Spans: 0 to #Spans
                rebuildSurface 
                       -ch 1 
                       -rpo 1 
                       -rt 0 
                       -end 1 
                       -kr 2 
                       -kcp 1 
                       -kc 0 
                       -su 4 
                       -du 3 
                       -sv 4 
                       -dv 3 
                       -tol 0.01 
                       -fr 0  
                       -dir 2;
                select -r $newTransform;
    
            }
            else if ( `nodeType $SurfacesToAttach[0]` == "nurbsCurve" )
            {
                //Attach constists of: Attaching - Rebuild with CVs - Delete History
        
                attachCurve  -ch 1 -rpo 1 -kmk 1 -m 1 -bb 0.5 -bki 0 -p 0.1;
                setAttr ($SurfacesToAttach[1] + ".io") true;
    
                //Delete History
                select -r $newTransform;
                DeleteHistory;
            }
        }
    }
    
    global proc HUDnurbsDetach()
    {
        string $SurfacesToAttach[] = `ls -sl -objectsOnly`;
        if (size($SurfacesToAttach) == 1)
        {
    
            //Get list of objects we will be dealing with
            string $parentOfShape[] = `listRelatives -fullPath -parent $SurfacesToAttach[0]`;
            string $newTransform = $parentOfShape[0];
    
            if ( `nodeType $SurfacesToAttach[0]` == "nurbsSurface" )
            {
                //Detatch everything that needs to be detached
                string $surfaces[]= `detachSurface -ch 1 -rpo 1`;
                
                //Loop through all surfaces, rebuild and delete history
                for ($i = 0; $i < size($surfaces) - 1; $i++)
                {
                    select $surfaces[$i];
                    rebuildSurface 
                          -ch 1 
                          -rpo 1 
                          -rt 0 
                          -end 1 
                          -kr 2 
                          -kcp 1 
                          -kc 0 
                          -su 4 
                          -du 3 
                          -sv 4 
                          -dv 3 
                          -tol 0.01 
                          -fr 0  
                          -dir 2;
                    DeleteHistory;
                }
    
                //
                for ($i = 0; $i < size($surfaces) - 1; $i++)
                {
                    select -tgl $surfaces[$i];
                }
                
                selectMode -component;
                selectType 
                     -cv 0 
                     -vertex 0 
                     -subdivMeshPoint 0 
                     -latticePoint 0 
                     -particle 0 
                     -editPoint 0 
                     -curveParameterPoint 0 
                     -surfaceParameterPoint 0 
                     -puv 0 
                     -polymeshEdge 1 
                     -subdivMeshEdge 1 
                     -isoparm 1 
                     -surfaceEdge 1 
                     -surfaceFace 0 
                     -springComponent 1 
                     -facet 0 
                     -subdivMeshFace 0 
                     -hull 0 
                     -rotatePivot 0 
                     -scalePivot 0 
                     -jointPivot 0 
                     -selectHandle 0 
                     -localRotationAxis 0 
                     -imagePlane 0;
            }
            else if ( `nodeType $SurfacesToAttach[0]` == "nurbsCurve" )
            {
                //Detach constists of: Detaching - Rebuild with CVs - Delete History
                detachCurve -ch 1 -cos on -rpo 1;
    
                          //Delete History
                select -r $newTransform;
                DeleteHistory;
            }
        }
    }
    
    
    global proc HUDinsertIsoparm()
    {
        //string $selList[] = `ls -sl -tail 1 -dag`;
        string $SurfacesToAttach[] = `ls -sl -objectsOnly`;
        if (size($SurfacesToAttach) == 1)
        {
    
            //Get list of objects we will be dealing with
            string $parentOfShape[] = `listRelatives -fullPath -parent $SurfacesToAttach[0]`;
            string $newTransform = $parentOfShape[0];
    
            if ( `nodeType $SurfacesToAttach[0]` == "nurbsSurface" )
            {
                //Insert Isoparm
                insertKnotSurface -ch 1 -nk 1 -add 1 -ib 0 -rpo 1;
    
                //Delete History
                select -r $newTransform;
                DeleteHistory;
    
                //Rebuild with CVs - Spans: 0 to #Spans
                rebuildSurface 
                      -ch 1 
                      -rpo 1 
                      -rt 0 
                      -end 1 
                      -kr 2 
                      -kcp 1 
                      -kc 0 
                      -su 4 
                      -du 3 
                      -sv 4 
                      -dv 3 
                      -tol 0.01 
                      -fr 0  
                      -dir 2;
                select -r $newTransform;
    
    
            }
        }
    }
    
    global proc HUDCVCurveTool()
    {
        CVCurveTool;
    }
    
    global proc HUDEPCurveTool()
    {
        EPCurveTool;
    }
    MEL Tool Collection Sets
    Here is a list of the most popular tool collection sets, all free for download.

    Comet Scripts by Michael Comet
    OMToolbox by Jakob Welner
    Maya Script Suite by Koshigaya Studios
    MJ Poly Tools by Mikkel Jans
    ZooToolBox by Hamish
    Goomoo Utilities by Goomoo
    X-Tools by Andrew Osiow
    Naughty Nathan’s MEL scripts old yet very useful Script collection
    Tartarus Toolbox by Kevin Edzenga


    Interface / Display

    Toggle Outliner by DezFX :
    Code:
    if ( `window -exists outlinerPanel1Window` ) 
    deleteUI -window outlinerPanel1Window; 
    else 
    tearOffPanel "Outliner" "outlinerPanel" false;
    ToggleGrid by DezFX :
    Code:
    string $currentPanel = `getPanel -underPointer`; 
    if ($currentPanel == "") 
        $currentPanel = `getPanel -withFocus`;  
    if (`modelEditor -q -ex $currentPanel`)
    {
        if(`modelEditor -q -grid $currentPanel`)
          modelEditor -e -grid 0 $currentPanel; 
        else
          modelEditor -e -grid 1 $currentPanel;
    }
    Toggle Background Color by DezFX :
    Code:
    float $c[] = `displayRGBColor -q background`; 
    if ($c[0] > .6)
    displayRGBColor -c background .357 .357 .357; 
    else if ($c[0]==0) displayRGBColor -c background .672 .672 .672; 
    else displayRGBColor -c background 0 0 0;
    Toggle Viewport X-Ray by DezFX :
    Code:
    $currentPanel = `getPanel -withFocus`; 
    string $panelType = `getPanel -to $currentPanel`;
    if ($panelType == "modelPanel")
    { 
    modelEditor -e -xray ( !`modelEditor -q -xray $currentPanel` ) $currentPanel;
    }
    Toggle X-Ray in all Viewports by DezFX :
    Code:
    select -all;
    $sel = `ls -sl -dag -ap -typ surfaceShape`;
    for ($obj in $sel){
    $temp = `displaySurface -q -xRay $obj`;
    $value = $temp[0];
    if ($value == 1)
    displaySurface -xRay 0 $obj;
    else
    displaySurface -xRay 1 $obj;
    };
    select -cl;
    ToggleWireframe by DezFX :
    Code:
    $currentPanel = `getPanel -withFocus`; 
    string $panelType = `getPanel -to $currentPanel`;
    if ($panelType == "modelPanel")
    { 
    modelEditor -e -wos ( !`modelEditor -q -wos $currentPanel` ) $currentPanel;
    }
    Toggle Normals by DezFX :
    Code:
    string $all[] = `ls -sl`;
    toggle -normal $all
    Toggle Backface culling by DezFX :
    Code:
    string $sel[] = `ls -sl`;
    for ($current in $sel)
    {
    	int $val[] = `polyOptions -q -bc $current`;
    	if ($val[0] == 1)
    		polyOptions -fb $current;
    	else
    		polyOptions -bc $current;
    }
    Toggle Walk Through Cameras by DezFX :
    Code:
    string $currentPanel = `getPanel -underPointer`; 
    if ($currentPanel == "") 
        $currentPanel = `getPanel -withFocus`;  
    if(`getPanel -to $currentPanel` == "modelPanel")
    {
    if(`modelPanel -q -cam $currentPanel` == "top")
    switchModelView front;
    else if(`modelPanel -q -cam $currentPanel` == "front")
    switchModelView side;
    else if(`modelPanel -q -cam $currentPanel` == "side")
    switchModelView Perspective;
    else if(`modelPanel -q -cam $currentPanel` == "persp")
    switchModelView top;
    }
    else
    error "I'm sorry, but that is not a valid camera panel.";
    Look through selected by DezFX :
    Code:
    string $currentPanel = `getPanel -underPointer`; 
    if ($currentPanel == "") 
        $currentPanel = `getPanel -withFocus`;  
    if(`getPanel -to $currentPanel` == "modelPanel")
    {
    string $sel[] = `ls -sl`;
    lookThru $sel[0];
    }
    else
    error "That is not a camera panel.";
    Camera home by DezFX :
    Code:
    string $currentPanel = `getPanel -underPointer`; 
    if ($currentPanel == "") 
        $currentPanel = `getPanel -withFocus`;  
    if(`getPanel -to $currentPanel` == "modelPanel")
    {
    string $camera = `modelEditor -q -camera $currentPanel`;
    viewSet -home $camera;
    }
    else
    error "I'm sorry, but that is not a valid camera panel.";
    Toggle Walk Through Shelf Tabs by DezFX :
    Code:
    int $shelfQty = `shelfTabLayout -q -nch
        MayaWindow|mayaMainWindowForm|formLayout2|formLayout14|formLayout15|formLayout49|ShelfLayout`;
    int $shelfNum = `tabLayout -q -sti
        MayaWindow|mayaMainWindowForm|formLayout2|formLayout14|formLayout15|formLayout49|ShelfLayout`;
    
    if ($shelfNum < $shelfQty)
       {
        shelfTabLayout -edit -selectTabIndex ($shelfNum + 1)
        MayaWindow|mayaMainWindowForm|formLayout2|formLayout14|formLayout15|formLayout49|ShelfLayout;
        optionVar -iv selectedShelf `tabLayout -q -sti
        MayaWindow|mayaMainWindowForm|formLayout2|formLayout14|formLayout15|formLayout49|ShelfLayout`;
        shelfTabChange;
       }
    
    else
       {
        shelfTabLayout -edit -selectTabIndex 1
        MayaWindow|mayaMainWindowForm|formLayout2|formLayout14|formLayout15|formLayout49|ShelfLayout;
        optionVar -iv selectedShelf `tabLayout -q -sti
        MayaWindow|mayaMainWindowForm|formLayout2|formLayout14|formLayout15|formLayout49|ShelfLayout`;
        shelfTabChange;
       }
    
    string $shelfName = `shelfTabLayout -q -st MayaWindow|mayaMainWindowForm|formLayout2|formLayout14|formLayout15|formLayout49|ShelfLayout`;
    print ("New shelf is " + $shelfName);
    Help window by DezFX :
    Code:
    string $myWindow = "cmdHelp";
    
        if (`window -ex $myWindow`)
    	   deleteUI $myWindow;
    
        window -rtf true -s false -title "Command Help" $myWindow;
    
        columnLayout;
    	    textFieldGrp -label "Command:" -cw 1 75 -cw 2 200 -cc cmdHelp cmd;
    	    button -w 275 -l "Find" -c "cmdHelp";
    	
        showWindow $myWindow;
    
    proc cmdHelp()
    {
         string $cmd = `textFieldGrp -q -tx cmd`;
         help -doc $cmd;
    }
    Toogle Render View by DezFX :
    Code:
    if(`window -ex renderViewWindow`)
    deleteUI -window "renderViewWindow";
    else
    RenderViewWindow;
    Toggle Hypershade by DezFX :
    Code:
    if ( `window -exists hyperShadePanel1Window` )
    deleteUI -window hyperShadePanel1Window; 
    else 
    tearOffPanel "Hypershade" "hyperShadePanel" true;
    Toggle Hypergraph by DezFX
    Code:
    if ( `window -exists hyperGraphPanel1Window` )
    deleteUI -window hyperGraphPanel1Window; 
    else 
    tearOffPanel "Hypergraph" "hyperGraphPanel" true;

    Tear Off Channel Box by Brian Ewert: Since the Channel Box doesn't offer a Panel->Tear Off Copy menu, this script will allow you to create a standalone tear-off Channel Box.

    Modeling

    Target Weld by Campbell Strong : emulates the behaviour of the 3dsMax tool - snap selected
    vertex to location of a second vert, and weld/merge them.
    NOTE: The above link seems to be broken at the moment. Try Highend3d instead: http://www.highend3d.com/maya/downlo...Weld-v0.0-.mel


    Make Planar by DezFX : Forces non-planar faces to become planar.

    Kyle's Editable Context Marking Menus by Kyle Hug: Edit Maya’s Poly Context Marking Menus at your leisure right in the Marking Menu Editor.

    Pelting Tools by Sunit Parekh : This is a very popular and free UV Unwrapping Toolkit that automates and speeds up UV Mapping through dynamic flattening calculations.

    Toggle Isolate Select by Cubit:
    Code:
    $getCurrentPanel = `getPanel -withFocus`;							//returns the current panel
    string $getCurrentPanelType = `getPanel -typeOf $getCurrentPanel`; 		//gets the panel type of the currently active panel
    
    if ($getCurrentPanelType == "modelPanel") {						//checks to see if the current panel type is indeed a modelPanel(i.e. perspective, front view etc)
    	int $isolateOnFlag = `isolateSelect -query -state $getCurrentPanel`;	//finds out the current isolateSelect state
    	if ($isolateOnFlag == 0) { 								//checks if the state is 0 (which means everything is showing)
    		enableIsolateSelect $getCurrentPanel true;				//and if it is then it will isolate the selection
    	}												//the end of the 2nd if statement:D
    	else {											//telling maya that "if the isolate state is anything other than "0" to... (read next line:p)
    	enableIsolateSelect $getCurrentPanel false;					//set the isolate state back to 0 so everything's showing again
    	}												//end of the else statement
    }													//end of the whole script:)

    Select by Angle by Henry Korol :
    A small script to wrap maya's selection constraint functionality. Just like in Max.

    Code:
    //Author: Henry Korol ( mail@henrykorol.com )
    //Written: 4 August, 06
    // a small script to wrap maya's selection constraint functionality
    // Usage:
    //	Select face/s and run the script. It will select all the faces in the same angle tolerance. 
    //	Interactively adjust angle slider to pick the right angle
    //	Hit apply button once you're satisfied with the result or click cancel to get back to previous selection.
    
    global proc float[] HKGetVertexNormal(string $Component[], string $Shape)
    {
       string $HKLTTweakName[];
       float $Normal[3];
       float $RNormal[3] = {0,0,0};
       float $TmpNormal[3] =  {0,0,0};
       string $Vtx[]; string $cur;
       if( `size $Component` != 0 )
       {
          $Vtx = `polyListComponentConversion -tvf $Component`;
          $SbdVtx = `subdListComponentConversion -tv $Component`; 
          $Nrbs = `filterExpand -sm 28 $Component`;
            $Vtx = `ls -fl $Vtx`; 
            string $NormalChangeNode[1];
       if( size ($Vtx ) > 0 )
       {
            if ( `size $Component` < 2)
            {
       	     $CompEdges = `polyListComponentConversion -te $Component`;
             $NormalChangeNode = `polySoftEdge -a 0 -ch 1 $CompEdges`;
    	    }
            for ( $cur in $Vtx )
            {
                  $Normal = `polyNormalPerVertex -q -xyz $cur`;
                  $TmpNormal[0] += $Normal[0];
                  $TmpNormal[1] += $Normal[1];
                  $TmpNormal[2] += $Normal[2];
             }
             if ( `size $Component` < 2)
             {
                  delete $NormalChangeNode;
             }
             int $Size = `size $Vtx`;
    
                  $TmpNormal[0] = $TmpNormal[0]/$Size;
                  $TmpNormal[1] = $TmpNormal[1]/$Size;
                  $TmpNormal[2] = $TmpNormal[2]/$Size;
    	   
    	   if( `objExists HKLocalToolsCalculator`)
            delete HKLocalToolsCalculator;
     
            createNode -n "HKLocalToolsCalculator" vectorProduct;
            setAttr HKLocalToolsCalculator.operation 3;
            setAttr "HKLocalToolsCalculator.normalizeOutput" 0;
            setAttr "HKLocalToolsCalculator.i1" $TmpNormal[0] $TmpNormal[1] $TmpNormal[2];
            
    		connectAttr -f ($Shape+".worldMatrix[0]") HKLocalToolsCalculator.m;
    
           $TmpNormal = `getAttr HKLocalToolsCalculator.o`;
           delete HKLocalToolsCalculator;		  
        }
    	else if( size ( $SbdVtx ) > 0 || size ( $Nrbs ) > 0 )
    	{
    		$SbdVtx = `ls -fl $SbdVtx`; 
    		$Nrbs = `ls -fl $Nrbs`;  
    		string $cur1, $cur;
    		for ( $cur1 in $Nrbs )
    			$SbdVtx[ `size $SbdVtx` ] = $cur1;
    		for ( $cur in $SbdVtx )
    		{
    		    
    			$InitPos = `pointPosition $cur`; 
                undoInfo -swf 0;
                  moveVertexAlongDirection -n 1 $cur;
                  $AfterPos = `pointPosition $cur`;
                  move -a $InitPos[0] $InitPos[1] $InitPos[2] $cur;
                undoInfo -swf 1;
    			
                $Normal[0] = $AfterPos[0] - $InitPos[0]; 
                $Normal[1] = $AfterPos[1] - $InitPos[1];
                $Normal[2] = $AfterPos[2] - $InitPos[2];
    	        $TmpNormal[0] += $Normal[0];
                $TmpNormal[1] += $Normal[1];
                $TmpNormal[2] += $Normal[2];
    		}
                  int $Size = `size $SbdVtx`; 
    
                  $TmpNormal[0] = $TmpNormal[0]/$Size; 
                  $TmpNormal[1] = $TmpNormal[1]/$Size;
                  $TmpNormal[2] = $TmpNormal[2]/$Size;
    	}
        }
        else
    	{
    	  $TmpNormal = { 0, 1, 0 };
        }
      
       return $TmpNormal; 
    }
    
    proc HKSelectByAngle(){
    
    global string $HKSBApreviousState; 
    $HKSBApreviousState = `polySelectConstraint -q -sts`;
    global string $HKSBApreviousSelection[]; 
    $HKSBApreviousSelection = `ls -sl`;
    
    $selectedFaces = `filterExpand -sm 34`;
    if (size ($selectedFaces) == 0)
    	error "Select by angle: Please select some faces";
    
    $shape = `ls -hl`;
    float $normal[] = HKGetVertexNormal($selectedFaces, $shape[0]);
    
    if( `window -ex SelectByAngleOptionsWnd`)
    	deleteUI SelectByAngleOptionsWnd;
    
    window  -wh 396 129 -title "Select by angle: " SelectByAngleOptionsWnd;
    	string $Form = `formLayout`;
    		string $col = `columnLayout  -adj 1`;
    			string $frame = `frameLayout  -mh 2  -cll 0 -bs "etchedIn" -l "Options:"`;	
    				floatSliderGrp -fmx 180 -max 90 -min 0 -v 20 -f 1 -l "Angle:" -cc "HKSBAupdateAngleSelection()" -dc "HKSBAupdateAngleSelection()" HKSBAAngleSlider;		
    			setParent..;
    		setParent..;	
      	 
    	button -bgc 0.5501 0.5952 0.9788 -h 24 -l "Apply" -c "resetPolySelectConstraint; deleteUI SelectByAngleOptionsWnd;" HKIFActionButton;
    	$CloseBut = `button -h 24 -l "Cancel" -c "resetPolySelectConstraint; select -r $HKSBApreviousSelection; deleteUI SelectByAngleOptionsWnd;"`;
    	setParent..;	
    	
    	formLayout -e 
    	-af HKIFActionButton bottom 2
    	-af HKIFActionButton left 3
    	-ap HKIFActionButton right 2 52
       
    	-af $CloseBut right 3
    	-af $CloseBut bottom 2
    	-ac $CloseBut left 2 HKIFActionButton   
    	-ac  $col bottom 5 HKIFActionButton
    	-af  $col top 3 			  			 		  
    	$Form;
    
    showWindow;
    
    polySelectConstraint -t 0x0008 -m 3 -orient 1 -ob 0 20 -oa $normal[0] $normal[1] $normal[2];
    }
    
    proc HKSBAupdateAngleSelection(){
    	float $angle = `floatSliderGrp -q -v HKSBAAngleSlider`;
    	polySelectConstraint -ob 0 $angle;
    }
    
    HKSelectByAngle();

    Local Tools by Henry Korol :
    Change your manipulator to align with any local component axis with this great toolset.

    Rigging

    abSymMesh by Brendan Ross :
    A useful little script for building symmetrical and asymmetrical blendshapes.
    Last edited by Count_Zero; 08-22-2008 at 04:32 PM.
    "The road to hell is paved with works-in-progress."

    My Portfolio
    My Tutorials

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •