3DSMax skin mirroring.


#1

I have a bit of an odd issue here.

I’ve got a skeletal rig which is a standard biped. I have several other joints (actually point helpers) for animating the bottom of a characters shorts. Now these ‘shorts’ joints are all skinned up nicely on the right side and I have just recreated the same setup for the left leg.

However when I try to mirror the vertex weights (all baked - not using envelopes) from the right to the left, the mirror does stuff but it refuses to mirror the weights correctly.

For example on a vertext on the right hand vertex the weighting may be something like (viewing these from the Weight Tool floater):

SKEL_R_Calf: 0.057
SM_R_Short_Top: 0.000
SM_R_Short_Bot: 0.943

However the values I get on the opposite side after mirror (these verts are perfect mirrors of each other) are as follows:

SKEL_L_Calf: 0.129
SM_L_Short_Top: 0.000
SM_L_Short_Top: 0.871

Now the odd thing here obviously, is that I have SM_L_Short_Top in there twice. I have looked through the skin modifier and the bone isn’t in there twice. I’ve even run a bit of maxscript to output all of the bone names (I’ve had issues in the past where you can add the same bone to a skin mod multiple times via maxscript) and this also suggests I do not have the bone in more than once.

Along with the above issue, the other problem is that my weights aren’t an exact mirror.

I’m working at a very very small scale here - could this have anything to do with it?

Has anyone ever had an issue like this before? If so, what did you do to resolve it?


#2

I have had hit and miss results with mirroring weights. Depending on the integrity of your current skin modifier, you may find the best result would be to make a new skin. However to keep your weights that you already have you can use the ‘skin wrap’ modifier to get that over.

What I have done in situations like this is to duplicate my mesh, remove the skin. Then freeze transform, collapse stack, reset x-form, center pivot, anything else I can do to ensure the mesh is as clean as can be.

Then I’ll skin wrap the mesh to the original one, and at the bottom you can convert a skin-wrap to a proper skin. Then try the mirroring again.

Hope this works for you. :slight_smile:


#3

Thanks for the reply. I had tried what you said but the problem persisted. It’s very odd. I even tried the old attach the mesh to a teapot trick and that didnt work either. :frowning:

I have ended up just skinning the opposite side from scratch.


#4

Even the teapot let you down!

You cant count on anyone these days…


#5

hi

try doing a reset xform on the skin mesh - also make sure weights are normalized and absolute and select them all and bake them before mirroring

mark


#6

It sounds like you could use this tool I developed to exchange vert weights. I wrote it to deal with your same mirroring issue.

http://www.3dgill.com/exchangeBonesTool.mcr

It’s featured in my old demo reel on my website if you need a quick demonstration.


#7

Thanks for that.

I’ve ended up writing my own vertex mirroring tool. Same workflow as the standard max weight mirroring but gives me much much more accurate results.


#8

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.