スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
アサインについて
初心者用 MEL 講座。

今回はアサインについてご紹介します。

以前の記事でコマンドの照会モードについて触れましたね。
コマンドの特定のフラグの前に -query (-q) をつけると値を返す、との事でしたが。
表示するだけじゃ能がないので、
値を変数に代入してみましょう。

しかし、単に以下のように書くだけではエラーが起きてしまいます。
{
polySphere;
float $rad = polySphere -q -r "pSphere1";
//An error occurs;
}

コマンドで得た値を使用したい時は『`(バッククォート)』で括ります。
似ていますが『'(アポストロフィ)』ではありませんよ。
注意してください。

0630.png

{
polySphere;
float $rad = `polySphere -q -r "pSphere1"`;
print $rad;
}


照会モードにしなくても値を返すコマンドも多々あります。

値を返すコマンドの代表的なものとして ls コマンドというものがあります。

マニュアルの『戻り値』の欄を見てみるとこうなっています。

0630-2.png

戻り値の型は string[]型、つまり string 型の配列だという事がわかります。

このコマンドは様々なものをリストにして返す事ができるコマンドで、
-selection は『選択されているノード名を返す』フラグです。
これを使用して変数に格納しておけば
実行した時に選択されているノードに対して何かを行うツールをつくる事ができます。
非常に使用頻度が高いフラグの1つです。

例えば上のコードも『pSphere1』という名前のノードに対して
polySphere コマンドを実行していて実用的ではないので、
普通は以下のようにします。

{
string $selList[] = `ls -selection`;
float $rad = `polySphere -q -r $selList[0]`;
print $rad;
}


こうすれば polySphere ヒストリが残っているノードを選択して実行すれば
いつどんなノードに対しても行う、汎用的なものになります。

この『アサイン』を利用すればコマンドの中の値として
別のコマンドを埋め込む事もできますが、特に初心者にはあまりオススメしません。

rename $obj `substituteAllString $obj "p" "" `;

実際にツールを作成するときは
変数に値を入れ、それを取り出して利用していく事が重要になってきます。

{
string $subbed = `substituteAllString $obj "p" "" `;
rename $obj $subbed;
}


次回の MEL 講座ではいよいよ簡単なツールを作成してみましょう。


参考:
 Autodesk Maya オンラインヘルプ : コマンド構文
 Autodesk Maya オンラインヘルプ : ls コマンド
 Autodesk Maya オンラインヘルプ : polySphereコマンド
 Autodesk Maya オンラインヘルプ : renameコマンド
 Autodesk Maya オンラインヘルプ : substituteAllStringコマンド


演習:
rename コマンドを用いて、
実行すると選択されているノード(1つ)を
『Graberry』という名前にリネームするプログラムを書いてください。
コメント
管理者のみ閲覧可能にする
Profile
HN らい

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