View Full Version : mirroring skin weights (3ds Max)
04 April 2011, 03:03 AM
I've got one-half of the character done, and want to mirror the weights from the finished side to the new side. Most of it works. But one bone in the arm... the verts are skinning to the original bone, not to the opposite bone.
I've done this procedure a million times and never had an issue. The position of the bone is exactly in the same spot just on the negative side of the plane.
04 April 2011, 03:56 AM
I made a script tool too help with these types of situations. Basically it lets you save all or part of your skin weighting to a temp file. Then you can edit the bone name in the text file. Then load the weights back and voila the skin weights are updated.
Max has a built in EnvAscii but you can't save a portion of the weights (like just the arm) so it makes it harder to just do a find/replace. I made this script because I sometimes do a lot of work then realize I had the wrong bone selected. :D
1. Basically install the script by putting it in the Max\UI\MacroScripts folder.
2. Restart Max
3. look in the monsterBlues category to bind it to a hotkey or toolbar.
RUNNING THE SCRIPT
1. Open the script.
2. Select your model and go to Edit Poly (or Mesh) mode. Select the part of the body you want to text edit.
3. Hit the save button and weight for the confirmation. It can take a while.
4. Hit the Edit button and use the find/replace tool in the MaxScript editor.
5. Save the temp file and then load the weights.
04 April 2011, 05:48 AM
I'm not sure what you meant by "select the part of the body you want."
The character has a skin modifier on it. So I put an Edit Poly ontop of the skin modifier. When I select the mesh, it selects the entire character. I can't really just select the arm, because the character is a solid mesh. I thought you meant, select the vertices, so after selecting the verts I wanted, I would run "save selected vertices" and the script would throw a run time error.
I remember this process of mirroing verts to be fairly simple and painless. I'm not sure what I'm doing wrong. Is there a simpler explanation?
04 April 2011, 07:16 AM
Unless you post the Max file there is no way to pin point your particular problem. The only real option is to increase the mirror threshold value.
This script is just one I made for myself, so there isn't a lot of error checking. The script assumes you have a model with only a skin modifier and nothing else. Beneath the skin modifier, in editable poly mode, you select the arm verts you want to save to a text file. It should work, I use it all the time.
05 May 2011, 01:59 PM
Are your bones truly symmetrical? E.g. if you use Fins, you can make your bones asymmetrical for skinning purposes. Skin calculates the mirror/paste operation based on the skin envelopes. The envelopes, in turn, are based on the bounds of the bones not their pivot data.
05 May 2011, 08:35 AM
When I run into weird issues with mirroring skin weights I reset the mesh's xform. It usually mirrors fine afterwards. You need to blow away skin before resetting xform though, then load the weights back on.
There's a problem i've found when two bones lie exactly on top of each other - when they mirror to the other side the influence gets flipped. Only way i know how to solve it is to write a new mirror tool. Use an oct-tree or something..
05 May 2011, 03:17 PM
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.