Vertex group mirrors not working
Closed, InvalidPublic

Description

Hey guys!

The vertex group mirrors don't seem to be working. I have the option enabled in the mirror modifier, have an armature in there, put in the vertex groups with .R at the end, and both sides are reacting to the first side as though the option is not enabled. (unless I'm doing it wrong)

I can recreate what's happening in a .blend if needed.

Thanks!

Details

Type
Bug

Please attach a .blend file, thanks.

I managed to replicate this behaviour in a clean file. However, it appears to be more of a case of user error rather than a bug.

See the attached file.
1) In the state shown when loading the file, the behaviour is as described. This occurs when the Mirror Modifier is AFTER the Armature Modifier
2) Now, change the order of the two modifiers, and notice that the desired behaviour occurs.

What is happening here is that in:
1) the armature modifier deforms the original half of the mesh, and then this deformed copy is then mirrored over too.
2) mirror modifier duplicates the original mesh, reassigning the vertex groups automagically. Armature modifier then deforms this normally.

It could be that this is user error, but it's clearly not working on my machine. However, Joshua's example worked, so I'm not entirely sure what's going on.

I've attached a file with the character I'm working on that clearly shows the problem. Not all of it is skinned yet, just the arm, but you can see where the arm on the left side is bending where it shouldn't.

Okay, I got some help on this one. It was indeed user error. (as everyone here suspected)

Basically you have to have an empty vertex group with the name that is expected for the mirrored side in order for it to work. I only had the vertex groups for the first side.

So this can be disregarded. It wasn't the user error that you thought it was, but it was a user error. Thanks for looking into it.

It is perhaps a little unfair to call this a user error. After all the vertices for the mirror groups do not exist before the modifier, so why should the vertex groups?

It seems that the modifier should generate those vertex groups, and that it is a data structure limitation if this cannot be done easily (in a way that the mirrored vertex groups only exist "after" the modifier).

I have created a small patch, that adds a button that will generate empty mirrored vertex groups. It is perhaps not the nicest ui, but could eliminate some unnecessary confusion...

I recently ran in this problem as well, and think creating groups manually is not a satisfying solution.
I hope it is a proper place to describe my workaround that doesnt require a script:

1. Assuming you are working on left side, having VGroups named xxx.L
2. Duplicate mesh, apply mirror modifier there, delete the left half of it
3. Rename in the right-half duplicate all VGroups from .L to .R
4. Delete Mirror modifier on the original mesh (leaving only left half)
5. Join both halves, remove doubles in center area

I wonder, after clicking "apply modifier" - why aren't the vgroups created checked for missing counterparts, creating them if they miss - and after this procedure, actually apply the modifier.