Mirror Weight paint not working (2.9)

I give up. After 6 years of using blender, I still don’t understand how it should work and why it’s not working for me.

So we have Susanna and 2 bones for left and right sides. In weight paint mode options I have x-mirror and Topology Mirror on. So why when i painting on, say, left side, it painting BOTH SIDES TO THE LEFT BONE? and then, when i choose right bone, i discover that it mirrored this regions and painted them for the right bone. Also it appears the gradient tool not working as expected, it painting region only for one-side bone.

weight paint.blend (3.8 MB) !

so how to say, here’s what blender is trying to do. don’t worry what happens here is perfectly normal.

1-in the first place there’s no weight anywhere.
2- you put your first stroke, you are in auto noramlize so blender will put full weight on everything that has been affected by the stroke.
3- and only afterwards, always within the computation of a single stroke, it searches for symetric bone witht the .l .r naming convention, and replaces the weight from bone.r to bone.l BUT with the falloff of your brush! so basically you have a red stroke with no falloff with blue stroke with falloff on top of it.
you can get rid of this issue by appying full weight to one of your center bone before doing the refining of each side.

wait I did a mistake, nope actually it should apply wuff weight with no falloff where you painted in the first place. I don’t know why it’s choosing the wrong side… but anyway the solution still works, use the inside out technique

thanks for reply but it’s not a solution at all and it’s not gona work with complex characters with full armature. especially if you doing transfer weights from body to cloth and you need to adjust things and so on.

for example here i need to paint a jacket and i’ve already did weight transfer from the body. so i can’t assign a full weight to any of 3 center bones bc the jacket is just not gonna move (and also it’s not helping, i checked). and in this case u can see that it painting a same region for left and right bones at sime time wich is rediculous. so i’m ending up to paint each side separatly with no option. also it doesent change the fact gradient tool is not working in mirror mode.

previous case with suzanne was a mirror that works in a bad setup, this is a mirror that doesn’t work in a setup that is supposedly good (considering you auto-weighted it). try turning off “topology mirror”

here’s how all this shit works:
if you have an object that’s PERFECTLY symmetrical, both x mirror with and without topology mirror works

it may happens that you have tiny offsets between your righ and left vertices in space, in these cases, topology mirror will help you by identifying the topology and vertices connections do determine if a vertex is the opposite of another vertex. but in order for the topology mirror to work, your entire model needs to be perfectly topologically symmetrical you can have all the offsets you want in position, but not a single difference in connections and arrangement. if your model has both tiny offsets here and there, and a single vertex that is not connected like it’s opposite equivalent, you’re fucked. and you better come with a fresh mirror modifier before continuing. but you’ll lose your uvs :))))

and theses rigs on smutbase are broken.

Oh and by the way, if you ever come up to make your own rigged models from scratch someday.
you should definitely scale it by ten. It’s a lot better for a whole bunch of reasons. blender generally terribly manages small assets. and anyway a good rig is a scalable rig

well… there is still one last resort technique that’ll help you save a bit of time,

turn x mirror completely off. Then enable symmetry x, do all the stuff that you have to do on one side of your mesh.
Then one bone at a time, lock avery vertex groups except your current bone and it’s opposite equivalent. at this point there’s is one bone .l or .r that has both left and right weights. with auto-normalize still on, take a brush with no falloff and no pressure strength, and paint the side with no weight.
it’s a bit long but you still have all your smoothing and refine copied to the other side.

Weight paint in blender is pain. I made addon to make it easier but is for $ . There is feature to deal with cloth that has not symmetrical topology: https://joseconseco.github.io/WeightPaintToolsDocs/main_pie/#mirror-project-weights )

cool, you should put this on market.

sorry i didn’t get it. brush with such settings not doing anything. can you make a gif or something?

wadduya mean not doing anything ? it should at least paint!
do u know how auto normalize works in the first place ?

i guess i’m not. what am i doing wrong here?

also i checked x-mirror on the body mesh, wich is pretty symmetrical. and u know what? it painting vise versa! if i paint the right side, it applying this region to the left bone and so on. kinda cool. can’t show it here since it r34 though

my god after all this years they actually fixed it in 2.91
now u just need to enable this box in brush settings. can’t beleive


Thanks so much, exactly what I’ve been looking for for the last 3 hours!