0
$\begingroup$

This is my first character model. My mesh has had its limbs and centers weight painted (one leg, one arm, its head, its body) The mesh is symmetrical on the x axis, and im trying to mirror the weight paint from one arm to the other based on this tutorial: https://youtu.be/m3izfPRnS7Q

It says to clone one of your vertex groups and then use the little arrow next to the list of vertex groups and with the clone selected, press mirror vertex group. When i do this i get an error saying "0 Vertices mirrored, 4180 failed". 4180 is the number of verts in the entire model. I have looked at similar questions to this and tried their answers with no luck. I'm completely out of ideas. Edit:

$\endgroup$
0
$\begingroup$

Im just pasting what I wrote in reddit:

I see, the problem has to do with your transforms, I did some reshuffling, your scale rotation and positions are all out of whack, unparent your mesh with ALP+P, I'd advise rotating your mesh and armature so that they face along the Y axis, then use CTRL+A to apply rotation location and scale to both mesh and armature, then reparent your mesh to your armature, you should be able to mirror weights. (I was able to)

I'd advise to delete the left part of your model and re mirror the right side, because it seems to have some minor differences.

It seems mirroring works best when used along the X axis, not too sure which of all the transform stuff is completely breaking the mirror, but maintaining clean transforms and hierarchy is something you'll thank yourself for anyways.

$\endgroup$
0
$\begingroup$

Okay, there are 3 things you'll have to change for this to work.

First, make sure your armature and model have their rotation, location and scale cleared. press Alt+G, Alt+S, and Alt+R, then position them so they are aligned again.

Second, make sure your naming conventions in the skeleton are consistent. The bones on the left should have the naming convention with a ".L" suffix, like for example "forearm.L". On the right side, bones must have the EXACT SAME name except with the ".R" suffix, otherwise mirroring weights will not work. The easiest way to accomplish this is to create the left side of the armature only, name all the bones, and then mirror the left hand bones to the right side by centering the 3D cursor (Shift+C), scaling with the 3D cursor as the pivot point (.), then duplicating the left hand bones, right clicking so as not to translate them, then scaling them by a factor of -1 on the x-axis (S, X, -1, Enter). Then using Space Bar, search for the "flip names" command to change these bones from the .L suffix to the .R suffix.

Third, the mirror modifier will do all your weight-mirroring work for you since your mesh is already perfectly symmetrical. just delete all the vertices left of the origin. The mesh will even be poseable without applying the mirror modifier, and when the mirror modifier is applied, the weights will be mirrored. Just remember to place the mirror modifier above the armature modifier.

I hope this is helpful!

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.