I'm having trouble X-Mirroring or Topology Mirroring vertex weights of a mesh when I use the Weight Gradient tool (AltR click and drag) in Weight Paint mode. I have symmetrical bones on my character, with mirrored names (Left bones have .L , Right bones have .R). However, the problem persists and I have no idea what is wrong. Could it be a problem of having different "Bone Groups" on each side? or something else?
CHECK 1: Is your armature containing all the bone hierarchy correctly to "DEFORM" from either side to side? It looks like you don´t have vertex groups correctly assigned from one of your sides. First, identify which side is the one working (I would assume it´s the bone.L side that´s working). You want to mirror that weight paint groups onto the RIGHT side, go onto:
CHECK 2: Once you identify, which one is the current working side, you´ll want to MIRROR it onto the other side. For that you´re going to use a MODIFIER VERTEX WEIGHT MIX.
The basics are simple: Create a vertex group from your weight paint mode while selecting your character. Then go to your vertex groups (here on the pictures you see a green.L side and a pink.R side) and create vertex groups for your LEFT and RIGHT side of the body (or whatever you want to mirror weights from). Then with the modifier you´ll want to select those vertex groups. One will transfer ONTO the other. So make sure you create a duplicate of the VERTEX group that is CURRENTLY WORKING (you don´t want to loose it in case something goes wrong). Once you identify the correct .L or .R weight working you want to transfer it to the one that´s NOT working with 1 as influence. While in weight paint mode you may want to click the SHOW VERTEX button to make your life easier.
So once you create your new vertex groups (green.R, purple.L on my picture) you´ll want to transfer the weights. So go out to OBJECT MODE again, use the MIX WEIGHT MODIFIER, now select your vertexGroup.L and vertexGroup.R and set the transfer mode to ADD (because your left side or your right side need to influenciate fully the side that´s not working).
Finally the last option to check is the button: MIX SET (Vgroup A and B). This means that when the transfer is over, the state in which your group is going to be ending up influenced by the vertexGroup you choose will dominate (will be the one you choose here). If you leave alone this option alone, you end up with a simple mix (a+b). Try other options if it suit your purposes.
The final process will yield a Vertex group that is working, one that´s not working (this is expected) and another one that has the mix of both Vertex groups (this is expected).
Well, that about explains it all. Every parameter covered. Let me know about the bounty. Cheers.