0
$\begingroup$

I've created a rig and added "automatic weights" to the model. The thing is, the left side bones have influence on the right side, and the right side has no influence at all. I can't even correct it by weight painting, once the left side paints the right one at the same time. Why does it happen and how to fix it?

*The image shows what happens when I move the left arm.

Thank you!

enter image description here

$\endgroup$
4
  • $\begingroup$ maybe apply scale? recalculate normals? $\endgroup$ – moonboots May 19 '20 at 20:24
  • $\begingroup$ check out the weight paint maybe it the other side is colored with red or yellow when it should be blue $\endgroup$ – Bill Boholst May 19 '20 at 21:08
  • $\begingroup$ @moonboots - The normals are correct, but I'm not sure what you mean by " apply scale ". $\endgroup$ – Lucas 3D May 20 '20 at 21:13
  • $\begingroup$ @BillBoholst - Yes. The right side is colored in the same way as the left one ( when I select a left bone ); it's creating a simmetry. However, the right side ( right bone ) is completely blue. So I'd like to paint the right side at the same time I correct the left one, otherwise I'll have to adjust both sides manually. $\endgroup$ – Lucas 3D May 20 '20 at 21:18
0
$\begingroup$

Here is the sequence of steps I used to get behavior that works as desired. There may be other approaches, but this worked for me:

Start by putting your Mirror modifier at the top of the Modifier Stack and applying it. Next, apply the Armature modifier. We are going to recreate it.

With your armature selected, go into the Object Data tab and turn on only the first bone layer, the one with your Def bones in it. Now select your character mesh and shift-select your armature, and from the Ctrl-P menu, bind armature with automatic weights. A settings box will show up at the bottom left of the screen. Open it and check the X-Mirror box. I have seemingly never needed to bother with this before, but I consciously checked it this time.

After the bind is finished, make sure your armature is selected and go back into the Object Data Properties tab to get access to the bone layers once again, and now toggle to the bone layer for your TGT skeleton.

When you rotate the bones, the arms and legs move independently.

Theory: You had never applied your mirror modifier before beginning your bind. The binding with automatic weights tries to create unique vertex groups for all the bones, but it also needs unique mesh locations for all of them also. Unfortunately, a mesh with a Mirror modifier currently unapplied technically does not truly have two different sides, but only one, until you commit to it having two by applying the Mirror modifier. My guess is that when the bind tried to create vertex groups, it couldn't do so properly, because there was no other side to put the groups. So it placed them in such a way that both arms, and both legs, would always move together.

Here is the repaired version of the file.

$\endgroup$
6
  • $\begingroup$ Thank you! Your theory is completely right. However, I'm not sure why this would happen to my model, whereas it worked on his.The differences were: 1- He chose " Empty groups " instead of " Automatic weights ", because his model was made of spare parts. He also applied it manually, by selecting the bone's vertex group and selecting the vertices; then adding it to the vertices he wanted it to have influence on. 2 - He managed to apply it on one side ( with the mirror still unapplied ) and it symmetrized on the other side correcly and automatically. Not sure how it happened. $\endgroup$ – Lucas 3D May 25 '20 at 21:28
  • $\begingroup$ I was wondering if a model is created by just " one mesh ", you need to apply the mirror before, or it has something to do with the option you select to deform your amarture. The second model he was using, more like mine, he did apply the mirror before adding the armature. $\endgroup$ – Lucas 3D May 25 '20 at 21:36
  • $\begingroup$ In answer to your previous questions: 1 - Yes, I'm following a course called " The Art of effective rigging in Blender ". I no doubt recommend it. 2- Apparently you could work with 1 set of bones, but he's using this method mainly to avoid bugs when the model goes to another software, like Unity. Somehow the def-bones shouldn't be parented among themselves and it would work out. 3 - I don't know if there're other ways to replicate it, once I don't have much experience with rigging. $\endgroup$ – Lucas 3D May 25 '20 at 21:41
  • $\begingroup$ Put the name of the course on youtube and you'll find on his channel a timelapse of him creating the second character's rig. Maybe you can figure it out. $\endgroup$ – Lucas 3D May 25 '20 at 21:42
  • $\begingroup$ This is all very interesting. It may be that my theory is only half right. But since your YouTube instructor created the initial bind with empty weights, my thinking is that my original reasoning still follows to some extent, because clearly, he wanted to have complete control over how the vertex group weight values would be assigned, and so opted to do things manually. Though I don't know to what extent it would be possible to keep the Mirror modifier unapplied, and yet still avoid your undesirable results. So because of that, I guess we would have to conclude that your mystery still remains. $\endgroup$ – R-800 May 27 '20 at 8:22
0
$\begingroup$

Check and see if you have more than one armature modifier. Sometimes an extra one gets created accidently and when it does, it often leads to double transformations or other weirdness.

$\endgroup$
8
  • $\begingroup$ There's only one armature, but I created two groups of bones ( deformation and target. The deformation bones are being constrained by the target bones; a copy transform constraint. ) . I only checked " deform " on the target ones. I've done it before, it should be working... $\endgroup$ – Lucas 3D May 20 '20 at 21:26
  • $\begingroup$ Can you upload your file? I'd be willing to take a look at it. $\endgroup$ – R-800 May 21 '20 at 3:25
  • $\begingroup$ You can download it here : dropbox.com/s/0v3f3l3b13z2iak/bear_problem.blend?dl=0 $\endgroup$ – Lucas 3D May 22 '20 at 18:56
  • $\begingroup$ I must confess that I have yet to create a rig that has multiple sets of bones, where only one set actually deforms a mesh. So I don't really know how to do what you are trying to do, but I was hoping to learn something about your process and identify the problem anyway. I wanted to ask: Were you following a tutorial to get this far? And also: What happens when you try to work with a single set of bones? Can you get the bind to behave? Finally: Is it possible there's a proper process for duplicating the skeleton within a single armature object, where duplicating it in other ways causes issues? $\endgroup$ – R-800 May 24 '20 at 4:10
  • $\begingroup$ Observation: The strange transformation behavior of the limbs disappears when unbinding the mesh. Did you discover this, also? I find this very strange. The armature modifier is connected to the problem somehow, but I don't know how this could be. I've never experienced anything like it. $\endgroup$ – R-800 May 24 '20 at 4:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.