09-20-03
Mirror Physique Weights Tool v0.9 for MAX 5

window.jpg

Martinez_Macro_MirrorWeightsV0.99_Beta.zip

Well here's a pic of the interface. Nothing spectacular about it. There's a Threshold value with a maximum of 5 units. I'll explain a little about how the script works so you may better understand how to use it.

How it works:

It takes your selection of vertices and creates a bounding box plus the Threshold. The bounding box is mirrored and the model is scanned for verts that fall into the said box. From there the first array of verticies is compared to the second array. If they are within the threshold the weights are copied with a mirrored bone name.

Memory:

Warning: It will clear the undo buffer when you load the script. This is to keep the script running at optimal speed.

The script is memory intensive, but luckily I've found ways around that. When you open the dialog it will run 3DMax's Garbage Collection function. So there may be a bit of a pause. It also runs this functions a couple more times durrings it's run. But you won't notice a pause. I've gotten a 2500 poly character to mirror in about 6 seconds.

 

Easy As American Pie

Step1.jpgStep2.jpgStep3.jpgresults.jpgE_poly_only.jpg

Step 1 FIG.1:

Weight your model. You don't have to do the whole model at once. I prefer just going as I work. Weight the hand, mirror it. Weight the face, mirror it... Also you don't have to blue ( unassign ) your physique verts. I just did that for the visual.

Step 2 FIG.2:

Select some vertices. If your object is and Editable_Poly you may select by Element, Poly, Edge or Vertex. As shown in FIG.5 :)

NOTE: Selecting verts in physique sub object will do nothing.

Step 3 FIG.3:

Execute the script. Enjoy the new free time. When it's done, it will select the vertices that successfully mirrored. See FIG.4 for results.

 

Some Rules and Physique Tips

require.jpg

Rule1: You need an Epoly or an Emesh object to run the script. I haven't tested the script on a model with anything more than a Physique modifier on it.

Rule2: Works with the following bone names, and finds and replaces them in this order.

Left Right
" L " " R "
LFT RHT
left right
Left Right
LEFT RIGHT
_l _r
_L _R
l_ r_
L_ R_

 

Rule3: Mirror's the X axis only.

 

unactivate.jpg

Tip: When using Physique it's good to de-activate all duplicate links. In the pic above, all the red highlighted links are named "Spine02." De-activing the duplicate links to the breast bones will keep this script from mirroring to the wrong bone. AND more importantly it'll keep them out of the Locked Type-In Weights window.

To de-activate simply enter Link Sub Object mode in Physique, and uncheck active.

 

Known Issues

sorry.jpg

Issue1: When you have multiple links that share the same name, the weights will override each other. This isn't really a problem on the hand and the shoulders, but the hips may suffer.

Issue2: The weights copy relative. So if you have a vertex weighted "1" and "1" two different bones. The mirrored vertex will be weighted "0.5" and "0.5." You won't notice a visible difference but it may still be confusing at first.

Credits

********

Anthony Delen's and Rungy's Physique scripts for some guidence.

BoBo_the_Seal, for the model I'm using from the game Star Trek: Elite Force 2

Fletcher Dunn for tips on getting my script to go from "Window's Out of Virtual Memory" to just a few seconds to operate.