MELで選択しているコンポーネントをlsで取得すると省略系で名前が取得できますが、これを分解するコマンドをよく忘れてしまうのでメモしておきます。
例えばpolyという名前のポリゴンモデルの頂点を頂点番号0から10まで選択してls -slを実行すると
poly.vtx[0:10]
という名前で頂点群の名前が返ってきます。このままではループ処理などで使えないので、この名前を分解するためにfilterExpandというコマンドを使用します。
Result
-smオプションはセレクションマスクの指定で、頂点やエッジなどのいろいろなコンポーネントが対象に混ざっている場合に特定のコンポーネントのみにフィルタリングしてくれます。
セレクションマスクIDは次の表の通りです。
Maya Helpドキュメントより
例えばpolyという名前のポリゴンモデルの頂点を頂点番号0から10まで選択してls -slを実行すると
poly.vtx[0:10]
という名前で頂点群の名前が返ってきます。このままではループ処理などで使えないので、この名前を分解するためにfilterExpandというコマンドを使用します。
string $sels[] = `ls -sl`;
string $vtxs[] = `filterExpand -sm 31 $sels`;
print($vtxs);
string $vtxs[] = `filterExpand -sm 31 $sels`;
print($vtxs);
Result
poly.vtx[0]
poly.vtx[1]
poly.vtx[2]
poly.vtx[3]
poly.vtx[4]
poly.vtx[5]
poly.vtx[6]
poly.vtx[7]
poly.vtx[8]
poly.vtx[8]
poly.vtx[10]
poly.vtx[1]
poly.vtx[2]
poly.vtx[3]
poly.vtx[4]
poly.vtx[5]
poly.vtx[6]
poly.vtx[7]
poly.vtx[8]
poly.vtx[8]
poly.vtx[10]
-smオプションはセレクションマスクの指定で、頂点やエッジなどのいろいろなコンポーネントが対象に混ざっている場合に特定のコンポーネントのみにフィルタリングしてくれます。
セレクションマスクIDは次の表の通りです。
オブジェクト タイプ | マスク |
ハンドル | 0 |
Nurbs カーブ | 9 |
Nurbs サーフェス | 10 |
Nurbs カーブ オンサーフェス | 11 |
ポリゴン | 12 |
ロケータ XYZ | 22 |
方向ロケータ | 23 |
ロケータ UV | 24 |
Control Vertex (CV) | 28 |
エディット ポイント | 30 |
ポリゴン頂点 | 31 |
ポリゴンエッジ | 32 |
ポリゴン フェース | 34 |
ポリゴン UV | 35 |
サブディビジョン メッシュ ポイント | 36 |
サブディビジョン メッシュ エッジ | 37 |
サブディビジョン メッシュ フェース | 38 |
カーブ パラメータ ポイント | 39 |
カーブ ノット | 40 |
サーフェス パラメータ ポイント | 41 |
サーフェス ノット | 42 |
サーフェス範囲 | 43 |
トリム サーフェス エッジ | 44 |
サーフェス アイソパラム | 45 |
ラティス ポイント | 46 |
パーティクル | 47 |
スケール ピボット | 49 |
回転ピボット | 50 |
セレクション ハンドル | 51 |
サブディビジョン サーフェス | 68 |
ポリゴン頂点フェース | 70 |
NURBS サーフェスのフェース | 72 |
サブディビジョン メッシュ UV | 73 |