ウェイトのミラーをマクロで一括

 MODOのウェイトミラーはインターフェイスが良くない。
 ウェイトもUVもモーフも一緒くたに表示されるし、並び順がバラバラなので、目的のウェイトを見つけるのに手間がかかる。またコピー先のウェイトはプルダウンから選べず、手作業で名称を入力しないといけない。
 なのでマクロで実行する。

 ウェイトがLとRに分かれている場合、まず片側(ここではR)のウェイトを消さないといけない。
 MODOは複数ウェイトの一括消去に対応していないので、これもマクロで行う。

#LXMacro#
select.vertexMap ArmRoll1_R wght replace
vertMap.clear wght
select.vertexMap ArmRoll2_R wght replace
vertMap.clear wght
select.vertexMap Arm_R wght replace
vertMap.clear wght
……

 このように、片側のウェイトを選択して消去するコマンドを2行ずつテキストに書いていく。
 拡張子をLXMで保存する。
 左右が繋がっているウェイトはこの方法は使えないので、手作業で片側を消去する(X=0にあるポイントのウェイトは消さないこと)。

 次にミラーのマクロ。

#LXMacro#
select.symmetryState x
vertMap.mirror "WGHT[1]:ArmRoll1_L" ArmRoll1_R
vertMap.mirror "WGHT[1]:ArmRoll2_L" ArmRoll2_R
vertMap.mirror "WGHT[1]:Arm_L" Arm_R
vertMap.mirror "WGHT[1]:Head" Head
……
select.symmetryState none

 最初にX対称をオンにして、ミラーのコマンドを1行ずつ書いていく。最後にX対称をオフにする。

 いつも同じウェイト名称を使うようにすれば、少し書き直すだけで使い回せる。
 使わない行は、行頭に#をつければコメントにできる。


 メッシュをLからRへミラーしたときに、ウェイト名が「***_L」とあるのを「***_R」とリネームしたい場合がある。
 その場合も同様に、ウェイトを選択してリネームするコマンドを2行ずつ書く。
 空いたアイテムレイヤーに該当するメッシュのみをペーストし、本来の「***_L」ウェイトまでリネームしてしまわないようにする。

#LXMacro#
select.vertexMap Finger1-1_L wght replace
vertMap.name Finger1-1_R wght active
select.vertexMap Finger1-2_L wght replace
vertMap.name Finger1-2_R wght active
……