自作のMaya用MELスクリプトを紹介します。良ければご覧ください。
今後このような記事を作成していくかもしれません。
動画
ここでは窓枠からそのまま窓オブジェクトを作成しています。
長方形をなす複数のvertexまたはひとつのフェースを用いて、その位置・サイズに、移動・回転・スケールされた状態で長方形プレーン(polyPlane)を作成するのが特徴です。
UI・操作
UI
操作
スクリプトを実行してUIを開きます。
プレーンの作成には2種類の方法を使えます。
- 長方形をなす頂点を指定して作成
- 長方形フェースを選択して作成
頂点から作成
UI上の4つのボックスに一つずつ頂点を取得してフェースを作成します。
長方形は3点が決まれば残りの一点の位置も自動的に決まるため、実際にはいずれか3点の指定で実行可能です。UIには既に長方形をなす形でボックスが配置されているので、この位置に順番通りにどれか3点を指定します。
なお、UIの位置に順番通りに頂点を指定すると、UIから見て右側がオブジェクトX軸、上側がオブジェクトY軸に一致し、プレーンの法線方向がZ軸になります。
フェースから作成
長方形フェースを選択した状態で「実行」をクリックすることで、選択したフェースと同じ位置にプレーンを作成できます。
ただし、フェースから分解する形で頂点座標を取得する場合は、例えば「どの頂点を右下にするか」といった回転の情報は指定できないので、作成されるプレーンの軸の向きはランダムになります。
前述の「頂点から作成」ではUI上で軸の向きを指定できた(Y軸はUIで言う上側でした。)のに対し、「フェースから作成」をする場合はY軸が上や下に向くこともあり得ることになります。
追加説明
-
UI上で作成するグリッドの分割数を指定できます。
-
回転の計算には不動小数点数を使ったマトリックス計算を使用しており、やや誤差が生じます。(回転アトリビュートとして数値が50になるべき場所に49.99が入るといった程度の誤差は発生します。)
おわりに
指定したコンポーネントの位置にプレーンを作成するスクリプトを紹介しました。プレーンを原点に作成してしまうと指定した位置にプレーンを回転・移動させ、サイズを合わせるという作業は非常に煩雑なので、こちらはそれを一発で済ませられる点で有用なツールかと思います。
用途:窓の作成、ある範囲に均等の格子形状を作成したいときに。
当スクリプトの配布・販売予定については未定(調整中)です。
続報をお待ちください。
