Results 1 to 2 of 2

Hybrid View

  1. #1
    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
  •