2009/02/12

Maya MEL 01

MayaのMELの練習がてらひとつ作成してみました。

// hideToggle

string $sel[] = `ls -sl`;
for ($n in $sel)
{
$nAttr = getAttr ($n + ".visibility");
if ($nAttr == 1)
{
setAttr ($n +".visibility") 0;
}
else
{
setAttr ($n +".visibility") 1;
}
}



選択したオブジェクトの表示、非表示を切り替えます。
ただ単純に表示状態、非表示状態を切り替えるだけです。

以前、MaxでしていたものをMayaに置き換えてみました。

複数選択で表示されているものは非表示、非表示状態のものは表示ができるので、
ハイポリモデル、ローポリモデルを見比べたりとかにも便利です。

仕組みは簡単ですが案外使えるので重宝しております。





MELはじめたてなのでこんな簡単な文にも苦労してしまいました。
ちょっとわかりづらいなと思ったところをメモ。


`ls -sl`;


選択しているオブジェクトを取得。

getAttr ($n + ".visibility");
setAttr ($n +".visibility") 0;


アトリビュート値の取得、設定。

変数($n、$sel)などを使う場合、

setAttr (変数 + ".アトリビュート値") 設定値;
という書き方をしなくてはいけない。
これはちょっとややこしい。

MaxScriptを触っていたのでプログラムの基本はわかるんですが、
記述の仕方がずいぶん違いますね。

括弧とかダブルクォーテーションの使い方が面白いですね。


スクリプトはシェルフに入れるなり、ショートカットに登録するなりで
好きに使用してください。

0 件のコメント:

コメントを投稿