Maya用スクリプト「TrM_PolyNormalFlatter」を公開します。
このスクリプトは、Mayaの法線を部分的に平坦にするスクリプトです。
平坦に、とは言ってもいまいちイメージしづらいと思いますが、ソフトエッジでありながらソフトエッジ特有の面の丸みを解消し、ハードエッジのようなフラットな面を作る事ができるスクリプトです。
機械系のモデルでは平面感を出すために、よくベベル部分(面取り)にハードエッジを設定しますが、近くで見るとエッジが目立ってしまってあまり美しくはありません。
その点、このスクリプトはハードエッジとソフトエッジの両方の特性を持った面を作る事ができます。
▼ 実際に使ってみたサンプル

PyMELはMaya2011から標準で搭載されています。
TrM_PolyNormalFlatter.py (右クリックで保存)
使い方自体は結構簡単なのですが、動作が理解できるまで2の選択がいまいち分かリにくいかもしれません。
選択面と非選択面の境界線上でしか処理が行われないことを理解しておくと、幾分分かりやすくなるかとは思います。

取り敢えずこんな感じです。
自分で使う用のスクリプトだったので少々動作が難解ですが、使いこなせば結構使えると思います。
このスクリプトは、Mayaの法線を部分的に平坦にするスクリプトです。
平坦に、とは言ってもいまいちイメージしづらいと思いますが、ソフトエッジでありながらソフトエッジ特有の面の丸みを解消し、ハードエッジのようなフラットな面を作る事ができるスクリプトです。
機械系のモデルでは平面感を出すために、よくベベル部分(面取り)にハードエッジを設定しますが、近くで見るとエッジが目立ってしまってあまり美しくはありません。
その点、このスクリプトはハードエッジとソフトエッジの両方の特性を持った面を作る事ができます。
▼ 実際に使ってみたサンプル

ダウンロード
※動作にはPyMELがインストールされたMayaが必要です。PyMELはMaya2011から標準で搭載されています。
TrM_PolyNormalFlatter.py (右クリックで保存)
インストール
インストール方法は一般的なPythonスクリプトと同じです。- Mayaスクリプトフォルダに環境パスを通します。
※環境パスの通し方は長くなるのでググってください。 - MayaスクリプトフォルダにuserSetup.pyが無ければ作成します。
※userSetup.pyは空のテキストファイルです。 - ダウンロードしたTrM_PolyNormalFlatter.pyをMayaスクリプトフォルダに移します。
- setup.pyの最後尾に以下の一文を書き加えます。
import TrM_PolyNormalFlatter
- Mayaを再起動し、以下のコマンドをPythonモードで実行します。
TrM_PolyNormalFlatter.main()
何も選択していない状態で実行し、メッセージラインに「ポリゴンフェースを選択してください。」と表示されたら、インストールは成功です。 - 必要に応じて、上記コマンドをコマンドシェルフに登録しておいてください。
使い方
- 予めハードエッジに設定したい部分はハードエッジにしておきます。
- 平面にしたい面を選択します。
この時、選択したフェースが平らになり、その分選択してない隣のフェースへ丸みがしわ寄せされます。 - コマンドを実行します。
使い方自体は結構簡単なのですが、動作が理解できるまで2の選択がいまいち分かリにくいかもしれません。
選択面と非選択面の境界線上でしか処理が行われないことを理解しておくと、幾分分かりやすくなるかとは思います。

取り敢えずこんな感じです。
自分で使う用のスクリプトだったので少々動作が難解ですが、使いこなせば結構使えると思います。
コメント