2009年から仕事でMAYAを勉強。MAYAはデフォルトでは使い勝手が悪い。逆にスクリプトを覚えてカスタマイズするとかなり強力なツールになることがわかってきた。

物覚えが悪いので勉強したことはリマインダとしてココに書き留めるようにする。

2009年6月10日水曜日

【MEL】指定のタイプを含むノードを選択

以下のようなコードで任意のタイプが含まれるノードを選択できる。
----------------------

string $TypeList[]=`ls -type "★★★"`;
string $connectionList[];
clear $connectionList;
string $buf[];


for($work in $TypeList)
{
   $buf=`listConnections $work`;
   if(`size $buf`)
     {
        $connectionList = `stringArrayCatenate $connectionList $buf`;
     }
}

select -r $connectionList;


----------------------

★の部分に選択したいタイプを入れる。-typeフラグに使えるタイプで、自分が調べたのは以下。
(ls -showTypeで調べることができる)

オブジェクトに含まれるtypeの種類

ls -type "hogehoge"
でリスト可能なタイプ指定の一覧

animCurve・・・アニメーションカーブ全部
animCurveTL・・・トランスレーションのカーブ
animCurveTA・・・ローテーションのカーブ
animCurveTU・・・スケールとビジビリティのカーブ
ikEffector・・・IKハンドルエフェクター
ikHandle・・・IKハンドル
joint・・・ジョイント
mesh・・・ポリゴン
pointConstraint・・・位置コンストレイン
orientConstraint・・・回転コンストレイン
scaleConstraint・・・スケールコンストレイン
aimConstraint・・・エイムコンストレイン
poleVectorConstraint・・・極ベクトルコンストレイン
locator・・・ロケータ
【注】ロケータ自体はtransformだが、ロケータの形状属性はlocatorと表示される。
一方グループは単なるtransformなのでtypeでlocator属性の含まれるものを抽出すれば
区別できるのかもしれない。

~ここから下は現時点ではよくわからない~

hyperView・・・ハイパービュー(?)
hyperLayout・・・ハイパーレイアウト(?)
lightLinker・・・ライトリンカー(?)
mute・・・ミュート(?)
displayLayer・・・ディスプレイレイヤー
shadingEngine・・・シェーディングエンジン(?)
materialInfo・・・マテリアルインフォ(?)まあきっとマテリアル
file・・・ファイル(?)
place2dTexture ・・・プレイ2Dテクスチャー(?)たぶんテクスチャ
camera・・・カメラ
groupId・・・(?)
groupParts・・・(?)

【注2】上記のような一般的なもの以外にもプラグイン固有のtypeが取得できるので、
typeというのはユーザーが明示的に設定できるようだ。





0 件のコメント: