This is the very basics. With what you know now you can create some basic stuff, but this is far from enough
to create more advanced scripts with user input or repeating code with different values etc. I would like to go
through three more things before I actually attack the script I promised I'd go through.

  • if- statements
  • loops
  • procedures

Sure you can use strings here and there to build something now, but it's when all of this starts reacting to
eachother the fun starts.

What do you do when you are thirsty? You go get a drink... If I'm not thirsty, I'll not get a drink. For simplicity
I'm going to make an int called thirsty.

int $ma_thirsty = 1; //This represents me being thirsty...

Now I've defined that I'm thirsty so Maya will understand this. Then I'll make Maya ask me if I'm thirsty and
if I am I want her to tell me that she'll bring me a glass of water in a minute. If I'm not thirsty I'll make her
tell me to let her know when I am. I'll write down the code first and then go through it:

if ($ma_thirsty == 1){
print "I'll get you a glass of water in a minute";

Then you can go :

if ($ma_thirsty == 0){
print "Let me know if you get thirsty then:)";

But in Maya you can also say "if variable is true --> do this", "else --> do that". So we could rewrite this:

if ($ma_thirsty == 1){
print "I'll get you a glass of water in a minute";

print "Let me know if you get thirsty then:)";

What we say here is "if variableis 1, get glass of water". "If it's anything else, let me know". So if the
variable was 0, 2, 3, 4, 6 or whatever, but 1 it will print "Let me know if you get thirsty then:)"... Let's say
we want the if statement to print something else when the variable is 2, but still print the other things we
already stated we could use something called else if:

if ($ma_thirsty == 1){
print "I'll get you a glass of water in a minute";

else if ($ma_thirsty == 2){
print "Get it yourself";

print "Let me know if you get thirsty then:)";

So now Maya takes "2" into consideration too while filtering all the other numbers out in the else- section. 1 of
course will still be in the first if statement.

We could have declared the variable as a string too. We could check if the string said "yes" or "no" instead of
1 and 0. 2 could have been "maybe" and so on. Notice the syntax here:



What you want to check goes in between the brackets, the commands you want to execute based on the
check goes between the curly braces. There are two ways of writing the curly braces. Right now I'm in a
conversion . I used to write it like this below because it is easier to read, but now I save a line by writing it
like above. If you check the scripts Alias wrote you can see they also write it like this.

if ()


You can also use a command directly in the if statement. Let me write down an example:

string $ma_testArray[] = {"red","white","blue"};

if (`size($ma_testArray)` == 3){
print "yup, you have the colors of the norwegian flag";
polySphere -n "superSphere";
window -e -wh 100 100 $ma_superWindow;

I have to use backquotes because the command is executed while I check it. Remember how we used back-
quotes when we declared a variable? We had to do that because we wanted the result of the executed
command cast into that string. This time we want to execute the command directly to check the value. Size is
a command you can look up in the helpfiles. I will not go through all commands I use because there are so
many of them and some of the fun in MEL is to discover new commands and flags. I also had to use double
equalsign. When we use a single one we give the one side a value of the other side. When we use double
we check if the two sides are equal or not.

The reason I put those other commands in the if statement was just to show you that you can have several
commands between the curly braces. You can put loops in here, procs, commands... Anything you want.

Next page will deal with loops.


The content of this tutorial is copyrighted by law.
Reproduction of the content without permission
will result in legal prosecution. © 2006