日本でハリウッドVFXを制作! 「経産省アイディアボックス」 結果:  
●まとめエントリはこちら ●FAQ ●お問い合わせは左のメールフォームから

2009年3月11日水曜日

構文 (3) for文

昨日から、できるだけ作業にMelを使うようにした。
とりあえずは、for文を使う機会があれば、できるだけ使うことにしている。
昨日は、テクスチャー見本のために、スフィアを複数並べる必要があったので、
とりあえず5個を縦にならべるFor文を作った。

最初は条件式の( )内で、それぞれを;で区切るのを忘れたためにエラーになった。
また実行する際に、文全体を{ }に入れないとちゃんと実行されなかった。
動作したスクリプトは以下の通り
{for ($pp=1; $pp < pp="">
{polySphere;
move 0 $pp 0;
}
}

--------------------
いくつか実験もしてみた。

<実験1;for条件文の変数名を変える>
なんでもためしてみないと気がすまない質なので、
初期値を代入する変数名はよくある$iではなくわざと$ppに変えてみた。
当然ながら、ちゃんと動作するが、見慣れた$iでないと[これは何の変数だったか?]と考えてしまう。
やはり習慣的に$iにしておくほうが、よけいなことに気を取られなくて良いと思った。


<実験2; 条件を複数行で書いてみる>
また条件分はエクスプレッションであるなら、行を変えても用をなすと思ったので、
1エクスプレッション毎に行をかえてみたがもちろんちゃんと用をなす。
しかし条件分は、さほど複雑になることはないので、1行にまとめて書いた方がみやすい。
例;
for (
$pp=1;
$pp <>
$pp=$pp+2)


<実験3; 条件式以外のエクスプレッションをfor文の( )にいれてみる>
気がついたのはfor文の( )内はエクスプレッションであるが、複数のエクスプレッションが存在している。
ふと思うと、[複数のエクスプレッション]=[ブロック]とうことだから{ }を使うべきではないのか?という疑問がわいてきた。
for文の場合、実行内容を{ }に使うので、条件部分には( )を使った方がわかりやすいので、特別な使用例なのだろうと推測する。
ためしに条件分を書くところに、いくつかの行を加えてみたら案の定エラーになった。
条件文の中は複数行存在するが、それは限定された使い方であり、決められた通りの式しか記述することはできない。


{for (
$pp=1;
$pp < (100/10);
$pp=$pp+2;
$c=2;
$tr=6;)
{polySphere;
move 0 $pp 0;
}
}

// Error: $pp=$pp+2; //
// Error: Line 4.10: Syntax error //
// Error: $tr=6;) //
// Error: Line 6.7: Syntax error //
// Error: }; //
// Error: Line 10.1: Syntax error //

もう何回か使えば、For文はバグ無しで入力できるようになりそうだ。



 

0 件のコメント:

コメントを投稿