X-mirror activated in Edit Mode missleadingly affects symmetry in Weight Paint Mode #65872

Closed
opened 2019-06-17 03:52:32 +02:00 by Pixel Punk · 34 comments

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: 12da679fa0
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

**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: `12da679fa0` 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
Author

Added subscriber: @pxp9k

Added subscriber: @pxp9k

#72064 was marked as duplicate of this issue

#72064 was marked as duplicate of this issue

#71970 was marked as duplicate of this issue

#71970 was marked as duplicate of this issue

#71804 was marked as duplicate of this issue

#71804 was marked as duplicate of this issue
Member
Added subscribers: @WilliamReynish, @ideasman42, @brecht, @lichtwerk
Member

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? @WilliamReynish, @ideasman42 , @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...

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? @WilliamReynish, @ideasman42 , @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...

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

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

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
Member

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 guess this is related to the discussion in [D3869](https://archive.blender.org/developer/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.

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.

> 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.

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.

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.

In #65872#702217, @WilliamReynish wrote:
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.

> In #65872#702217, @WilliamReynish wrote: > 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.

@ideasman42

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

@ideasman42 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.

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

Added subscriber: @ChristophWerner

Added subscriber: @ChristophWerner

Added subscriber: @Semple

Added subscriber: @Semple

Added subscriber: @mano-wii
Removed subscriber: @Semple

Added subscriber: @mano-wii Removed subscriber: @Semple

Oops I confused the reports!

Oops I confused the reports!
Member

Added subscriber: @fauzan.rhrdn

Added subscriber: @fauzan.rhrdn

This issue was referenced by 9569425b02

This issue was referenced by 9569425b027cdb1c80e407697971f42fbee42388

Added subscriber: @laurijh

Added subscriber: @laurijh

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.

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 @ideasman42 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;

  • 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
  • '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.

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

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.

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 @ideasman42 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; - 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* - '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. # 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 # 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.
Member

Added subscriber: @PabloDobarro

Added subscriber: @PabloDobarro
Member

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.

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.
Member
Added subscribers: @crantisz, @iss, @JacquesLucke, @Maker26, @angavrilov

Added subscriber: @darklord666

Added subscriber: @darklord666

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.

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.

Added subscriber: @rwman

Added subscriber: @rwman
Member

Added subscriber: @Mets

Added subscriber: @Mets
Member

Changed status from 'Confirmed' to: 'Resolved'

Changed status from 'Confirmed' to: 'Resolved'
Demeter Dzadik self-assigned this 2021-05-19 23:32:42 +02:00
Member

I would say this has been resolved by a combination of various patches over the last year, starting with blender/blender-staging@5502517c3c and ending with fa9b05149c.

I would say this has been resolved by a combination of various patches over the last year, starting with blender/blender-staging@5502517c3c and ending with fa9b05149c.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
13 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#65872
No description provided.