スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
if 文について①
更新頻度がますます下がっていますが
引き続き進めていきましょう。

初心者MEL講座。
今回はいよいよ条件分岐の代表格である if 文についてです。

今回まず覚えるのは if と else という2つの言葉。

if は『もし~なら』というはたらきをします。
英語の意味そのまんまですね。
else は必ず if の命令の後に記述し、『違うなら』というはたらきをします。

if の後の括弧の中に条件式を入れ、
その後の中括弧の中に命令を入れます。

条件式で使える記号は以下の通りです。
とても重要なのでこれも覚えてください。

1118_01.png

ちなみに ==, != は数同士だけじゃなく文字列同士も比較できます。

ではサンプルをご覧ください。

{
string $selList[] = `ls -sl`;
if($selList[0] == "graberry")
{
duplicate $selList[0];
}
else
{
rename $selList[0] "graberry";
}
}

選択したオブジェクトが
もし『graberry』という名前ならそれを複製、
違うならそれを『graberry』にリネームしなさい。
というコードです。

適当なオブジェクトを選択して上のコードを実行してみてください。
1度目と2度目で実行の内容が変わりますね。
このように実行する内容を状況に合わせて変える事ができるのです。


{
string $selList[] = `ls -sl`;
float $rx = `getAttr ($selList[0] + ".rotateX")`;

if($rx < -360)
{
setAttr ($selList[0] + ".rotateX") ($rx + 360);
}
else if($rx > 360)
{
setAttr ($selList[0] + ".rotateX") ($rx - 360);
}
else
{
print "The value is in the desirable range.";
}
}

また、このような事もできます。
『else if』というように記述すれば
条件をいくつにも分岐させる事ができるのです。

選択したオブジェクトの rotateX が
もし -360 より小さければ 360 を足し、
違って もし 360 より大きければ 360 を引き、
全て違うならメッセージを表示しなさい。
というコードです。

実は命令が1行だけの場合は中括弧を省略する事もできるのですが、
特に初心者のうちは混乱を招く事が多いので
オススメしません。
毎回きちんと中括弧を記述しましょう。

次回は if 文のもう少し複雑な書き方をご紹介します。

参考:
 Autodesk Maya オンラインヘルプ : if...else if...else
 Autodesk Maya オンラインヘルプ : 値の検証と比較を行う
 Autodesk Maya オンラインヘルプ : duplicate コマンド
 Autodesk Maya オンラインヘルプ : rename コマンド
 Autodesk Maya オンラインヘルプ : getAttr コマンド
 Autodesk Maya オンラインヘルプ : setAttr コマンド

演習:
 オブジェクトを1つ選択した状態で
 実行する度に表示・非表示が切り替わるようなプログラムを書いてください。

コメント
管理者のみ閲覧可能にする
Profile
HN らい

都内某社テクニカルディレクター
都内某専門学校講師
都内某企業講師
元中国某社S3Dスーパーバイザー
Contact
(ENGLISH OK. 可以用中文。)
Categories
Archives
RSS Link
QR Code