スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
if 文について③
大好評の Mel 講座。

今回も if 文についてです。
毎回名目上は初心者向けの講座として書いていますが、
今回は少し難しいかもしれないので分からない所は読み飛ばしても問題ありません。
余裕があれば理解してみましょう。

if 分の条件式の中は、正しいか間違っているかの2択、つまり boolean 型です。
例えば、3 < 5 というのは正しいので true (真)、
3 > 5 は間違っているので false (偽)ですね。
したがって、

if(true)



if(on)

などとすればこの中は必ず実行されるし

if(false)



if(off)

とすればこの中は必ず実行されません。

以前、true と 1,false と 0 は同じであるというようにご説明しましたが、
実は 0 以外の数は全て true と同じ意味になります。

したがって例えば

if(3)

これも中は必ず実行されます。

結局何が言いたいのかと言うと、以下のような書き方ができるという事です。

if(`size $array`)

size は配列を引数にするとその長さ(要素数)を返すコマンドなので、
これは「もし$arrayに1つでも要素があるなら」という意味になります。

つまり

if(`size $array` != 0)

と同じ意味ですね。

前回の『否定』と組み合わせて

if(!`size $array`)

とすれば「もし$arrayに1つも要素がないなら」という意味になります。

つまり

if(`size $array` == 0)

と同じ意味ですね。

何かツールを作る上でこの様な文を書く事は非常に多いです。

仮に、例えば

{
string $selList[] = `ls -sl`;
duplicate $selList[0];
}

この様なプログラムを書いてしまったら
何も選択されていない時にエラーが起きてしまうので、
「もし$selListに1つでも要素があれば」という記述が必要になるのです。

私もまだ偉そうに言える立場ではありませんが、
特に他人に配布するツールを作るならこの様に常にエラーを避ける書き方が必須になります。
今回の内容は少し難しかったかも知れませんが、この事だけは是非覚えておいてくださいね。

参考:
 Graberry Blog : boolean 値について①
 Autodesk Maya オンラインヘルプ : ブーリアン値
 Autodesk Maya オンラインヘルプ : if...else if...else
 Autodesk Maya オンラインヘルプ : size コマンド

演習:
 実行した時にもし何かが選択されていれば
 その中の1つを duplicate するようなプログラムを書いてください。
スポンサーサイト
if 文について②
初心者大歓迎の Mel 入門。
今回は前回の if 文の内容から少し拡張した事をご紹介します。

if 文について①
更新頻度がますます下がっていますが
引き続き進めていきましょう。

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

初心者用 Mel 入門。

今回からプログラミングとしての記述編です。

さて。
長らく続けてきました初心者用 Mel 講座ですが
ここで一区切りになります。

これからは『条件分岐』や『再帰』などという
プログラミングとしての基本事項のご紹介をしようと思いますが

これらの意味がもう分かるという方はもうある程度のツールは作れるはずです。
記述の方法は基本的に Java や C と同様なので。

しかし Mel において重要なのは何よりもコマンドですね。
1000 を超えるコマンドの中で、
どういう場合にどのコマンドを使用するべきなのかというのは最初は当然全く分かりません。

そこで今回は頭の中に描いた操作を Mel に起こす際の個人的にオススメなコツをご紹介します。

Digital Matrix 様に載っている事ならそれを見る
⇒ここの Mel Tips には様々な便利なコマンドが項目毎に載っていて逆引きできます。
 まずはここを一通りご覧になる事をオススメします。

■Script Editorを見る
⇒普段のUI上で操作できる事であるなら、その操作をした後に Script Editor を見ます。
 表示されないなら History > Echo All Commands にチェックを入れて再び試しましょう。

■Hotkey Editor を見る
⇒実はここは簡単な Mel の宝庫です。しかも項目毎に分かれていて見やすいです。
 たまにコマンドではなく Maya の既存プロシージャなどを使用しているので注意してください。

オンラインヘルプを見る
上の全てを試しても見つからなければヘルプを見ます。
一応項目毎に分かれているのでありそうな項目の中をしらみ潰しに調べましょう。

この他にも、ウェブ上から Mel を拾ってきて中身を解析したり
Maya の既存 Mel を覗いたりして色々なコマンドの使い道を調べてみると面白いです。
もちろん自分でいくつも Mel を書いているうちに
大体どのような時にどのコマンドが有効かというのは分かってくると思います。


最後にコマンドを調べている際に便利なコマンドを紹介します。
whatIs コマンドです。
このコマンドの引数に任意の文字列を指定すると、その文字列が何であるのかを返します。
そのまんまですね。

引数の文字列がコマンドなら
// Result: Command //

ランタイムコマンドなら
// Result: Run Time Command //

プロシージャなら
// Result: Script found in: D:/maya/scripts/others/****.mel //

などの様なものが返されてきます。
非常に分かりやすいですね。

そのうち当サイトにも逆引きリファレンスのようなものを作って置こうとも考えているので
是非そちらも参考にしていただけると嬉しいです。
Profile
HN らい

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