【Maya/Python】設定範囲内のコンポーネントを選択するスクリプト

TwitterでJunkiさんが下記のようなこと(『Mayaでオブジェクトのローカル座標の例えば Xが3以上の位置におさまるポリゴンを全て選択せよ、というような機能とか、ないでしょうかね?』と)仰っていたので、勉強がてら作ってみました。

 

2017/05/28 更新

・選択する処理の高速化

(選択する処理のUI上で設定した範囲をfor文で回している中で毎回無駄に取得してたのをfor文まわす前に事前に取得しておいたものを使用する & 頂点の位置をpointPositionで取得していたのをOpenMaya2のgetPointsで取得するように変更)

※これにより600002頂点で実行したときに約14秒かかっていたのが約2秒くらいまで縮まりました。

処理が長くてフリーズしたように見えないように前回プログレスバーを追加していましたが、

それほど待たなくても良くなったのとプログレスバーの表示を消すとさらに約1秒くらい縮まったので、

今回のバージョンでは消しました。

 

・AutoSelectのチェックボックスを2つに分けていたのを再度1つにまとめました

※前回floatSliderGrpでfloatFieldとfloatSlider部分をまとめて設定していて、

dragCommandとchangeCommandでの変更によるAutoSelectを分けるためにチェックボックスも2つにしていたのですが、

試しているとfloatSliderGrpでドラッグするとdragCommandだけでなく無駄にchangeCommandが一緒に実行されているようだったので、

再度textとfloatFieldとfloatFieldのパーツに分けて設定しました。

そのためチェックボックスを分ける必要がなくなったのでチェックボックスを1つにまとめました。

続きを読む 0 コメント