Friday, January 22, 2010

MEL: Progress Window

Ever wanted to build a progress window into a script you're running that is taking a long time? MEL has one built in already, and it works quite well!



int $amount = 0;

progressWindow
-title "Doing Nothing"
-progress $amount
-status "Sleeping: 0%"
-isInterruptable true;

while (true) {

// Check if the dialog has been cancelled
if ( `progressWindow -query -isCancelled` ) break;

// Check if end condition has been reached
if ( `progressWindow -query -progress` >= 100 ) break;

$amount += 5;

progressWindow -edit
-progress $amount
-status ("Sleeping: "+$amount+"%");

pause -seconds 1;
}

progressWindow -endProgress;

You can find it in the MEL help file. It's fun.

Thursday, January 21, 2010

MEL: Select Outgoing Nodes From A Specific Attribute

Sometimes you'll have a node on a rig or in your scene that has thousands of outgoing connections on lots of different attributes. You may only want to edit a specific attribute's outgoing connections but you can't find them in the Hypergraph because there are just too many to search through. Here is a small trick to speed that up.

Let's assume your node is called "myBusyNode". The attribute you're looking to check is called, "thisAttr".

// Selects all nodes that are outgoing connections of myBusyNode.thisAttr
select -r `listConnections -s false -d true myBusyNode.thisAttr` ;

Alternately you can select the incoming connections by swapping source and destination.

// Selects all nodes that are incoming connections of myBusyNode.thisAttr
select -r `listConnections -s true -d false myBusyNode.thisAttr` ;

And, of course you could set both to true and select both incoming and outgoing nodes.

The return value of listConnections will give you all of the outgoing connected nodes from that attribute. You can then focus on your selection in the Hypergraph and you'll be able to see only the network of your selected nodes, not every single connection coming out of myBusyNode. I use this trick about four hundred and eighty seven times a day.

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