Maya用スクリプト「スムーススキン済みメッシュを分割/結合」を配布します。

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

それとオマケで、ヒストリを作らずに普通のメッシュを分割するだけのスクリプトも同梱しました。
通常の分割をそのまま使うよりは使いやすいかなと思います。多分。

ダウンロード

動作にはPyMELが必要です。

TrM SeparateSkinMesh Ver1.00
TrM SeparateSkinMesh Ver1.10
TrM SeparateSkinMesh Ver1.11 (右クリックで保存)

更新履歴
Ver1.00
  • 公開
Ver1.10
  • 処理速度の改善
Ver1.11
  • 簡単なデバッグ

インストール

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

▼ 使い方

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

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

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

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

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

なので、各自自己責任でウェイトがきちんとコピーされているか、動作を確認してください。


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