Thursday, May 6, 2010

MEL: Zero Out Selected Controls

Here's a really simple script I threw together for an animator that zeros out all visible and keyable attributes on objects. It ignores visibility and scale, and any non-scalar (numeric) attributes.

Great for getting a character back into his or her neutral position.

Download Here: jgZeroOutAttrs.mel

3 comments:

  1. Great tool!
    Saves a lot of boring work.

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. I made it so it only does rotation now too

    I added my name to the script update.

    // Zeros out all Visible/Keyable Attributes On Selected Object(s)
    // Author: Jay Grenier, 2010 and gary eller 2014
    // Last Update: May 6th, 2010 july 21 2014
    // Notes: Source script, select object, hit button. Or, make a shelf button that calls jgZeroOutAttrsDo For help email jay@jaygrenier.com


    // **********************************************************
    // Zeros out all Visible/Keyable Attributes On Select Object(s)
    global proc jgZeroOutAttrsDo () {

    // Get Selected
    string $sel[] = `ls -sl` ;

    // Loop
    for($item in $sel) {

    // Get All Attributes
    string $attrs[] = `listAttr -v -k -s $item` ;

    // Zero Out (Not Visibility or Scale)
    for ($attr in $attrs) {
    if($attr != "visibility" && $attr != "scaleX" && $attr != "scaleY" && $attr != "scaleZ" && $attr != "translateX" && $attr != "translateY" && $attr != "translateZ") {

    string $path = ($item+"."+$attr) ;
    if(!`getAttr -l $path`) setAttr ($item+"."+$attr) 0 ;

    }

    }

    }

    }


    // **********************************************************
    // Zero Out GUI
    global proc jgZeroOutAttrs () {

    // Delete and Prefs
    if (`window -exists jgZeroOutWin`) {
    deleteUI jgZeroOutWin;
    windowPref -removeAll jgZeroOutWin ;
    }

    //Define basic window specs
    window
    -w 100
    -rtf true
    -t ""
    jgZeroOutWin ;

    columnLayout
    -adjustableColumn true
    -rowSpacing 6
    -columnOffset both 6;

    button
    -h 30
    -bgc .75 .905 1
    -l "Zero Out"
    -c "jgZeroOutAttrsDo ;" ;

    showWindow jgZeroOutWin ;

    } jgZeroOutAttrs ;

    ReplyDelete

Scripting Topics

MEL (41) Maya (39) Scripting (32) Scripts (21) programming (14) Free Mel Scripts (8) MaxScript (7) Coding (6) Rigging (5) tutorial (5) 3ds Max (4) Python (4) Tricks (4) faceware (4) image metrics (4) Learn (3) Namespace (3) Namespacing (3) animation (3) facial (3) webinar (3) Code (2) GDC (2) Game Developers Conference (2) Multiple Namespaces (2) Print Selected Objects (2) Recursive (2) Removing Namespace (2) Return (2) Set Driven Keys (2) TOkenize (2) Tips (2) Toggle Background Color with MEL (2) animation tools (2) animators resource (2) deformers (2) learning (2) maya tools (2) mesh (2) modeling (2) nodes (2) procedure (2) script swell (2) transforms (2) Animschool (1) Attribute (1) Background Color (1) Beer (1) Blur (1) Character Setup (1) Check if an object exists (1) Class (1) Command Line (1) Constraints (1) Create SDK (1) Create a directory with mel (1) Data (1) Export (1) FilterString (1) Fix (1) Floating Slider Time (1) Functions (1) Get Maya Version MEL (1) Get Parent (1) Google (1) Holiday (1) How To Write To A Text File (1) Import (1) Incremental Save (1) Index (1) Joint Chain (1) Make Set Driven Keys (1) Maya Version (1) Modules (1) Objects (1) Orient Constraint (1) PYMEL (1) Parent (1) Parent Constraint (1) Point Constraint (1) Position (1) Print (1) Print Current Selection (1) Print Random Quotes (1) Print Selection (1) Print Vertices (1) Progress Bar (1) Progress Window (1) PyQT (1) Removing Spaces From Names (1) Scene File Name (1) Select Connections (1) Select Outgoing Nodes (1) Split Bones (1) Split Joints (1) St. Patrick's Day (1) String Array (1) System (1) Transfer UVs (1) Viewport (1) White Space (1) Windows Username (1) Zero Out Attributes (1) animButtonState (1) arrays (1) articles (1) auto key (1) better (1) blendshapes (1) break (1) confirm dialog (1) continue (1) convention (1) e3 (1) efficiency (1) error (1) eval (1) executable (1) fclose (1) fopen (1) fprint (1) games (1) improving (1) infinite loop (1) joints (1) listHistory (1) listRelatives (1) logic (1) loops (1) milestone (1) nodeType (1) objExists (1) recursion (1) rotates (1) rotations (1) schools (1) sculpting (1) setAttr (1) shout outs (1) source (1) source a script with a variable (1) speed (1) tech-artists.org (1) translates (1) video (1) warning (1) world matrix (1) worldMatrix (1)
 
Script Swell - Blogged