hi everyone i have a question.How to mirror a specific area while in skin mode.lets say i have a character which is the body is not symmetry but the face is symmetry.i already done skinning the whole body now I'm moving to facial rigging.I'm using Max 2009 by the way.THX.
Replies
Mirror mode is not a cure for a situation, when there is a topology mismatch or the mesh is simply asymmetric! I was very angry then I couldn't simply copy a weight of a specific vertex to memory but paste it to the arbitrary vertex on the opposite side of the model - max simply can't do that - the weight contains the boneIDs of the side it was copied from.
I've solved this problem via a custom "copy weight MIRRORED" script.
Look at the 2d-array in the variable rbn. The fist element if this array is a list of all bones of the hierarchy. The second element - is a list off all bones too, but each bone's name is replaced with the opposite bone's one. You have to get a list of bones, choose your skinned object execute the following code
Button CMW - Copy Mirrored Weight
Button PMW - Paste Mirrored Weight
Button MV - Mirror Weight using the max's default mirroring technique.
That's an interesting script. i wonder if the weight tool's copy/paste could be made to work this way and copy mirrored.
You're right, just shared a script - may be some else will find it useful ))
The straight max method is to create a symmetrical mesh, skin it and deform it after skin either by adding a edit poly on top and being careful not to add/remove geometry just push/pull it around. This doesn't always export well with some engines so you can...
Use a morpher modifier (underneath skin) that does pretty much the same thing as above (deforms a symmetrical mesh into asymmetrical mesh). You create a copy of your symmetrical mesh and deform it to be your asymmetrical mesh, by only pushing and pulling verts not by adding or removing geometry. Then use the morpher modifier to deform the already skinned symmetrical mesh and do a "collapse to" to apply the asymmetry.
I believe you can also save out the skin weights for the symmetrical mesh and load them into the asymmetrical mesh, if "collapsing to" fubars something, which it shouldn't.
Transmographier has a GREAT way of working symmetrically while your end result is asymmetrical and I would recommend it for any symmetrical mesh you wish to deform into a asymmetrical mesh and wishes to still work symmetrically after its deformed. Why that hasn't been included in 3dsmax is still a mystery... the fuckin plugin rocks so hard it needs to be standard issue.
Sometimes you have deal with an asymmetric mesh with asymmetric topology. And there's nothing you can do to make it symmetrical ))
But morphing AFTER skinning is a good ideal
I'll try transmographer - thank for pointing it out!
is there any site out there that can help me learn the basic of "what to do" when someone gave me script like this?
noob trying to learn here...Thanks again.
Assuming he wants to mirror the symmetrical portion of the mesh while maintaining any skinning on the asymmetrical portion of the mesh, I agree with cw to use the skin modifier mirror in this case.
This is probably the easiest way to mirror only a small portion of the skinVerts on a partially symmetrical mesh. Just select the verts you want to mirror in the skin modifier and hit those buttons
the skin modifier's mirror works based on position, which you can change by spinning 'Mirror Tresh'*:
any vertex that's within X units away from a mirrored version of the vert gets the same weight from any bone that's found at the mirrored position within X units away.
*NOTE: the red lines like in the eyes are supposed to be green/blue. Those lines indicate the bones and if they're green/blue that means a mirror was found. You should only have red shit in the middle where there's no applicable mirror.
Yeah, a .env file and a skinData mesh can copy skin info based on position or vertex ID, Also with bone re-interpretation
[ex. you could map a 'finger_L1' bone to 'stomach' if you really wanted to]. BUT max's default skinning transfer from these things only works on the entire object vs. a selection.
I actually had to write a script for stuff like this at work, but only because our rigger put a bunch of bones right ontop of eachother :poly127:
Pasha's cool script is based on bone name instead of position, so you'd have to paste in the bone names of your particular rig
----
as for your maxscript question:
so drop the .mcr into Program Files/Autodesk/3dsMaxXXXX/ui/macroscripts/
restart max, then go to Customize->Customize User-Interface and navigate to the proper 'Category' which in pasha's script is listed as 't2'
edit
i already reset xform and repeat the process.but it still does not follow the opposite weight
The main feature of my script is that you can mirror biped weights but simple bones hierarchy as well.
Sometimes putting script in Max's home dir makes script not recognized/loaded (i had some issues) the try directory
C:\Users\<account name>\AppData\Local\Autodesk\3dsmax\200x - xxbit\enu\UI\usermacros