2013年08月

Mayaスクリプト: スキン済みメッシュの分割・結合

前回の記事でちょろっと触れたスムーススキンバインド済みのメッシュを分割/結合するスクリプトを配布します。

ホントはPMXプラグインと同時にリリースしようと思ったのですが、何となく先に公開することにしました。

あとオマケで通常メッシュをヒストリやトランスフォームノードを作らずに分割するスクリプトも同梱しました。 こっちはあまり需要無いかもしれないですけど、最近Gurenから同機能がいつの間にか消されてたみたいなので、その代替として使えるかもしれないということで。

▼ ダウンロード
TrM SeparateSkinMesh Ver1.00
TrM SeparateSkinMesh Ver1.10 (右クリックで保存)

▼ インストール
一般的なPythonスクリプトと同じく、起動時にロードして使用します。
  1. mayaスクリプトフォルダにこのファイルを移動します。
    (Windows7x64 であれば Documents\maya\20XX-x64\ja_JP\scripts\ 等)
  2. スクリプトフォルダにuserSetup.pyが無ければ新規に作成します。
    (userSetup.pyは空のテキストファイル)
  3. userSetup.pyに以下の一文を書き加えます。
    import TrM_SeparateSkinMesh
  4. Mayaを起動し、コマンドをシェルフにPythonモードで登録します。
    ※1つのコマンドが1つの処理なので、まとめてではなく個別に登録してください。
    # バインド済みメッシュの分離
    TrM_SeparateSkinMesh.separateSkinMesh()
    # バインド済みメッシュの結合
    TrM_SeparateSkinMesh.mergeSkinMesh()
    # 通常メッシュの分離
    TrM_SeparateSkinMesh.separateMesh(delFace=True)
    # 通常メッシュの複製
    TrM_SeparateSkinMesh.separateMesh(delFace=False)

▼ 使い方
  1. バインド済みメッシュの分離
    予めスケルトンを初期姿勢に戻しておいてください。
    バインドされたメッシュのフェースを選択してコマンドを実行します。
    選択部分と非選択部分の2つの新規メッシュが作成され、ウェイトがコピーされます。
    安全のため元のメッシュは削除されませんので、無事ウェイトがコピーされた事を確認した後、手動で削除してください。

  2. バインド済みメッシュの結合
    予めスケルトンを初期姿勢に戻しておいてください。
    バインド済みメッシュを複数(2個以上可)選択後、コマンドを実行します。
    新規に結合されたメッシュが作成されます。
    こちらも元のメッシュは削除されませんので、動作確認後に手動で削除してください。

  3. 通常メッシュの分離、複製
    フェース選択後にコマンドを実行します。
    分離モードでは新規にメッシュが作成された後、選択フェースが削除されます。
    複製モードでは選択フェースは削除されません。

    Mayaの通常機能でもフェースの分離がありますが、このコマンドではヒストリやトランスフォームを新規に作成しないためシーンを綺麗に保つ事ができます。

ウェイト処理は出来るだけ確実に動くように作ったつもりですが、データによっては上手く動かないかもしれません。
(特にヒストリが入っている場合は動かない可能性が高いです。)

なので、各自自己責任で、スクリプト実行後にきちんとコピーされているか確認してください。


それでは、良いMayaライフを。

スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。