Docstoc

Maya MEL Scripting

Document Sample
Maya MEL Scripting Powered By Docstoc
					              MEL

         Scripting Overview




CIS682
              MEL commands
• Maya help -> MEL command reference

• MEL command line

• Script editor
     – Icon
     – Window->General Editors->Script editor
CIS682
               Script editor
• Type in commands

• Shelf button: highlight, cmd-click, drag

• Script file: File->source script



CIS682
                    Attributes

         sphere;
         listAttr nurbsSphere1;
         getAttr nurbsSphere1.tx;
         setAttr nurbsSphere1.translateY 10;
         aliasAttr up nurbsSphere1.ty
         setAttr nurbsSphere1.up




CIS682
                Simple Example
         For ($j=0; $j<10;$j++) {
           sphere;
           move –r 0 $j 0
         }




CIS682
                                Example
 // arrayOfSpheres.mel
 // shows simple nested 'for' loops to create objects
 for ($i=0; $i<10; $i++) {
     for ($j=0; $j<10; $j++) {
        sphere;
        move -r $i $j 0;
     }
  };




CIS682
          // simpleKeyframes.mel
           // shows

Example   // setting object attributes (x and y translation in this case)
          // how to set the special *currentTime* variable
          // setting keyframes
          // the animation can then be played back

          sphere -name ball;

          currentTime 0;
          SetKey;

          currentTime 50;
          setAttr ball.translateX 10;
          SetKey;

          currentTime 100;
          setAttr ball.translateY 10;
          SetKey;

          currentTime 150;
          setAttr ball.translateX 0;
          SetKey;

          currentTime 200;
CIS682    setAttr ball.translateY 0;
          SetKey;
                                  Example
         // from www.robthebloke.org/mel/DATA_mesh.html

         polyCube -name myObj;
         $mesh = "myObj";

         float $vert[];
         int $vertexCount[] = `polyEvaluate -v myObj`;
         print ("number of vertices: " + $vertexCount[0] + "\n");

         for($i=0;$i<$vertexCount[0];$i++) {
            // get world space vertex coords
            $vert = `xform -ws -q -t $mesh.vt[$i]`;
            // $mesh.vtx[$i] = << $vert[0], $vert[1], $vert[2] >>;
            print( $vert[0] + " " + $vert[1] + " " + $vert[2] + "\n" );
         };



CIS682
          Animation expressions
   expression -s "nurbsSphere1.tx = sin(time)";

Manipulate time slider (or ‘hit play’) to move object


Window->Animation Editors->Expression Editor

 Maya->Help
 Search on ‘MEL’
 Differences between expression and MEL syntax
CIS682
             Animation expressions
 // http://www.fundza.com/melquickref2/#expression1
 // NOTE: `spherè returns 2 strings. that’s why $obj is an array
 // and why $obj[0] is used in the expression
 string $exp = "";
 string $obj[];
 int $i;
 for ($i=0;$i<3;$i++) {
    $obj = `sphere`;
    move (rand(-3,3)) (rand(-3,3)) (rand(-3,3));
    $exp += "select -r " + $obj[0] + ";\n" + "move -moveY (rand(0,2));\n";
 }
 $exp += "select -clear;\n";
 expression -s $exp -ae 1;
 playbackOptions -min 1 -max 30;
 play;


CIS682

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:55
posted:12/19/2011
language:English
pages:10