Page MenuHome

X-mirror activated in Edit Mode missleadingly affects symmetry in Weight Paint Mode
Closed, ResolvedPublicKNOWN ISSUE

Description

System Information
Operating system: Windows-10-10.0.17134 64 Bits
Graphics card: GeForce GTX 1060 3GB/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 417.35

Blender Version
Broken: version: 2.80 (sub 74), branch: blender2.7, commit date: 2019-06-16 23:08, hash: rB12da679fa094
Worked: (optional)

Short description of error
When you activate "x-mirror" under "Options" in Editmode and switch to Weight Paint Mode, the x-mirror stays active for all weight paint actions even if symmetry is turned off in the Symmetry options (of the weight paint tool) which is very missleading... (took me half an hour to find out why there is a mirror on all my weightpaint strokes)

If x-mirroring is turned off in Edit Mode, everything works as expected.

Exact steps for others to reproduce the error

Create a new blend file.
Subdivide the cube a couple of times.
Go to Edit Mode.
Check "X-Mirror" in the active tool settings.
Switch to Weight Paint Mode.
Switch to front view.
Add some weights with the brush to some of the verts in the cube.

--> brush strokes are mirrored even if Mirror in Symmetry is turned off

Event Timeline

This is also the case in 2.79 and while could be improved [I see the point where this gets confusing], I think there are just two settings that have an effect on weightpaint being mirrored: the mesh option plus the paint option, if either one is active, mirroring will take place...

I would not consider this a bug at this point, but hesitate to close yet... Other opinions? @William Reynish (billreynish), @Campbell Barton (campbellbarton) , @Brecht Van Lommel (brecht) ?
I remember a similar discussion about X-Mirror being a tool option only [and the removal of the mesh option], but the outcome was in favor of keeping the mesh option...

Philipp Oeser (lichtwerk) lowered the priority of this task from 90 to 80.Jun 17 2019, 10:57 AM

Sounds like a bug to me, I don't know why both options should have an effect, especially if one of them is hidden.

Weight Paint mode is super weird. We actually have two mirroring options - Symmetry and X-mirror. I don’t understand why we even have X-mirror here at all

I guess this is related to the discussion in D3869 (also see https://blenderartists.org/t/x-mirror-behavior-in-2-8-poll-and-opinions/)
So there seems to be an advantage of having this per mesh not just as a tool option... (at least for mesh editing, I assume this goes hand in hand with weightpainting as well though...)

Looks like we could do two things:

  • drop the mesh option as having an influence on weightpaint [I guess this would have users voting against, see above]?
  • display the mesh option in weightpaint tool symmetry as well?

I find it super confusing that we have both. It’s very unclear what happens if you enable one or the other, and it’s just generally confusing.

Symmetry is more powerful because we have X, Y and Z. I would just remove X-mirror from weight paint mode.

Symmetry is more powerful because we have X, Y and Z. I would just remove X-mirror from weight paint mode.

I agree.

Though I guess topological mirror may be useful? I guess it's possible to add that option in the symmetry panel, not sure how difficult it is to make it work.

Yes, true. That's the most tricky bit I suppose. Really we should ideally merge these things, so that you can do topological mirror for all axes, and have a single mirror setting, rather than the current two competing methods.

I find it super confusing that we have both. It’s very unclear what happens if you enable one or the other, and it’s just generally confusing.

Agree it's in a very bad state.

Symmetry is more powerful because we have X, Y and Z. I would just remove X-mirror from weight paint mode.

The issue with this is currently these are different features.

  • Symmetry: behave as if you are painting on the other side of the object.

    This doesn't ensure symmetrical weights, from a quick test I managed to get non-symmetrical weights (there must be some subtle difference when the mirrored brush is applied).

    This has an advantage that you can symmetrically weight paint onto an asymmetrical mesh, although I'm not sure users would take advantage of this much in practice.
  • X-Mirror: for each vertex find it's mirror, and ensure identical weights, painting onto the flipped vertex group if it ends with an extension such as .L or .R.

Given this, we might be better doing the opposite and disabling symmetry mirroring until it's as capable as the existing weight paint mirror option.

@Campbell Barton (campbellbarton)

Ok, that makes sense - seems like it's better to add Y and Z to the X Mirror option and remove Symmetry.

Adding Y & Z will require many more changes, this wouldn't be for 2.80.

Brecht Van Lommel (brecht) lowered the priority of this task from 80 to Low.Jul 3 2019, 4:38 PM

Why were the symmetry options removed? I know there was a lot of confusion about the symmetry/mirroring options on the quick tool settings bar, but now the symmetry painting options are gone completely.

These were working fine and although I was not actively using them, I could imagine being able to paint with radial symmetry a useful feature in some cases.

There are several sources of confusion here.

Even though both are located in the same kind of Options menu, the edit mode Mirror options are not comparable with the weight paint mode X Mirror option. In edit mode the X Y and Z buttons behave just like the paint mode Symmetry options in that they echo any modifying actions across the given axes within the active selection.

On the other hand, the weight paint mode 'X Mirror' option has some unique features;

  • It copies the painted weights, with X values negated, to another vertex group according to the group name; 'Right'*, 'Left*', '*.L' or '*.R' as mentioned by @Campbell Barton (campbellbarton) earlier
  • The obvious reason for having this kind of mirroring only for X is due to the bilateral symmetry of all advanced animal life forms on earth, making most rigs at least partially symmetrical side-to-side but not up-to-down or front-to-back.

Some problems with the mirror/symmetry functionality and UI elements;

  1. The X Mirror option works as I described above only if the active group is named as a 'left' or 'right' group, otherwise it does exactly the same thing as the Symmetry option for X axis
  2. 'X axis mirror editing' edit mode button enables 'X Mirror' in weight paint mode and vice versa, but the Y and Z axis mirror editing buttons do not have effect on any option in paint modes.
  3. Button behavior inside Tool settings topbar changed sometime before 2.81 release for the better, but adding to the confusion when a 2.80 user upgrades to a newer build;
    • 2.80 has only one button named 'X' (mirrored weights are added to the opposing vertex group)
      • drop-down next to the button opens the unrelated Symmetry menu with the three 'X Y Z' choices
      • the Options drop-down includes the X-mirror option which is synced with the X button
    • 2.81 and later have three buttons 'X Y Z' (symmetrical painting of weights in the same vertex group)
      • drop-downs remain same as before, so the buttons are now synced to the nearest drop-down
      • X-mirror does not have its own button, it is only a checkbox in the Options menu
  4. The word 'Mirror' is used with all of these options in every mode

Decoupling the unrelated options and clarifying the UI terminology would help a lot.

Pablo Dobarro (pablodp606) changed the subtype of this task from "Report" to "Known Issue".Jan 10 2020, 3:24 PM

Reading the discussion, this seems like a missing feature with a confusing UI that requires further design and implementation, so tagging it as a know issue.

I want to chime in here. My mesh is currently asymmetrical (working with clothes), and right now I am not able to use X Mirror or X Mirror Topology properly, to automatically apply the same paint strokes to the opposite bone. My bones are named correctly (.l and .r), origin is correct, etc.

I understand that if the topology is not an exact mirror then it's more difficult, but when I use Symmetry X Y Z, the brush is able to match the paint job pretty damn well from one side to another. So I can see it's technically possible, but no matter which one I choose, it won't paint to the other bone properly.

I've seen some people say that if the topology is not exactly the same, then it can't work. But using Symmetry X Y Z shows me that it can and should work. I've checked that my origin is correct, rotation location and scale are applied.

Right now my own workaround is:

  1. Make a copy of the mesh
  2. Remove left side of the mesh, and use mirror modifier
  3. Paint all my weights
  4. Use a Data Transfer on my original mesh, and target the mirrored mesh, and transfer my vertex groups using Closest Face Interp

This works decently. But is annoying. If anyone can direct me that'd be great.

Demeter Dzadik (Mets) closed this task as Resolved.May 19 2021, 11:32 PM
Demeter Dzadik (Mets) claimed this task.

I would say this has been resolved by a combination of various patches over the last year, starting with rBS5502517c3c12086c11 and ending with rBfa9b05149c2ca3915a4fb267.