Rigging vertex groups not doing as I say.

I have created a model of Mewtwo (from Pokemon). I wanted to rig and skin this Mewtwo with an armature, not necessarily so I could animate him, but so I could pose him for still renders and perhaps get some experience in weight painting.

The problem I’m having is that the armature bones are controlling vertices I don’t want them to. The main place this has been occurring has been the shoulders, although I wouldn’t be surprised if this is going on in other anatomical regions as well. Anyway, when I go to edit which vertices are controlled by which bone (according to vertex groups), the ones that become highlighted are inconsistent with the vertices that actually move when I rotate the bone in pose mode. It’s as if the vertices I select to become a part of a particular vertex group have no bearing on the actual control. These pictures should explain better:

http://www.gallery.knoxfarms.com/albums/album08/help_me_elysiun1.sized.png

This is what the upper arm vertex group “supposedly” controls.

http://www.gallery.knoxfarms.com/albums/album08/help_me_elysiun2.sized.png

Here’s what it “actually” controls. Ignore the fingers; it’s the shoulder crunching inwards that’s got me in such a fit.

I believe I caused this anomaly by some past action of mine. I think there was one point at which I parented the Mewtwo mesh to the armature I had set up for it, but then for some reason I unparented it or something like that. All I can remember is that I did something where I got rid of Mewtwo’s initial armature, but I did -not- get rid of the vertex groups. Then I built a new armature and parented it to him. Ever since then he’s been acting as though the old vertex groups are exerting their control on him, except I can’t actually edit these alleged vertex groups.

There was a certain point where I sat pondering, looking at the mesh’s vertex groups, then I noticed that vertex groups from the previous armature, the one I deleted, were still there. I deleted these vertex groups one at a time. They show up as being gone now (in other words, they’re gone). This doesn’t seem to have solved the problem, though, since it’s not acting any differently.

Among other things, I’ve tried reparenting him. I tried the “name group” method so I could choose vertex groups entirely at my own discretion, but even though the vertex groups say they’re blank the character’s body moves when I go into pose mode! I also tried to rename the bones, hoping that this would fix the problem. Below is a list of all the names I changed everything to.

Head - noggin Neck - neck Torso - chest Adbomen - stomach Crotch - pelvis shoulda.L - shoulder.L arm.L - armhi.L 4arm.L - armlo.L hand.L - palm.L Rfing1.L - Rfin1.L Rfing2.L - Rfin2.L Rfing3.L - Rfin3.L Lfing1.L - Lfin1.L Lfing2.L - Lfin2.L Lfing3.L - Lfin3.L thumb1.L - thumbkin1.L thumb2.L - thumbkin2.L shoulda.R - shoulder.R arm.R - armhi.R 4arm.R - armlo.R hand.R - palm.R Rfing1.R - Rfin1.R Rfing2.R - Rfin2.R Rfing3.R - Rfin3.R Lfing1.R - Lfin1.R Lfing2.R - Lfin2.R Lfing3.R - Lfin3.R thumb1.R - thumbkin1.R thumb2.R - thumbkin2.R hileg.L - leghi.L midleg.L - legmid.L loleg.L - leglo.L Rtoe1.L - RToe1.L Rtoe2.L - RToe2.L Ltoe1.L - LToe1.L Ltoe2.L - LToe2.L hileg.R - leghi.R midleg.R - legmid.R loleg.R - leglo.R Rtoe1.R - RToe1.R Rtoe2.R - RToe2.R Ltoe1.R - LToe1.R Ltoe2.R - LToe2.R tube1 - Tube.1 tube2 - Tube.2 tube3 - Tube.3 IKtube – IK.Tube

After writing up this list of names to change, I selected “Mewtwo_Armature” and entered edit mode, selecting bones and changing their names as I went. I thought that if I meticulously changed all the bone names, the invisible vertex groups that Blender isn’t letting me see would just get ignored and I could control Mewtwo with differently named bones. But I soon noticed that the names were not changing. In the buttons window, the text for the bones’ names changed as I rewrote them, but in the 3D view, they stayed the same. It’s not letting me change the bone names.

The only remaining option I can see is to delete the armature and build it back up again from scratch. But for one thing, I don’t want to do this. Also, I don’t know that this would actually work. Lastly, this still leaves a lot of unanswered questions (such as why in the heck can’t I even rename the freaking bones?) Sigh. I’m stressed out. Well, if anyone can help me that would be GREATLY appreciated. I just want this to work.

Thanks,

  • Anayo

Now when you say you have named vertex groups did you name them the same as the bones you want them to be controlled by ? i.e. bone: Head = vertex group:Head (case and spelling matter)? When you parent the armature and choose “name group” and you have all your vertex groups already named with the control bones names it should work fine .

1)Try unparenting the armature from the mesh . Also check to see you haven’t also applied the armature via the modifier stack in the Editing panel - delete it if there is one . (this might be the cause of your problem)
2)Make sure your vertex groups names = bone names .
3)Either reapply the armature from the modifier stack OR parent it using the “named vertex groups option” .

Also turn deform option to only vertex groups and not envolopes in both the armature panel and the modifier stack .

Hope this helps . If not post the blend .

1 Like

1 = The file I have configured has Mewtwo set up BEFORE being parented. With this unparented mesh and armature, I’ll proceed to parent with “name groups” option, but then immediately thereafter when I go to pose mode, the bones inexplicably move his body parts. The vertex groups selection isn’t letting me control this.

2 = All the vertex group names are the same as the bone names. Neck = Neck, Head = Head, etc. Cross out that possibility…

3 = I checked the modifier stack. There was something there called a “virtual modifier”, with the option of “make virtual modifier real?”. I’m not very knowledgeable in this regard… haven’t read up on the modifer features. I don’t think this is the problem though.

On a miscellaneous note, I was able to change the bone names for some inexplicable reason (thought this would solve the problem before, but Blender wasn’t letting me). I don’t know. It just worked this time… but it’s not like it makes any difference because it’s still not obeying the vertex groups. :frowning:

I’m going to pursue means to get the .blend file hosted. Hopefully this will help.

Ok I think I know the problem now . You might need to Ctrl-A - apply scale and rotation to the armature before you parent it OR use the armature modifier (it will pop up on the list of modifiers) but don’t do both . Don’t apply the armature modifier then parent but you can do the opposite (you get that virtual modifier thing which you can “make real” with no problems) .
And also turn envolpe deform OFF in the armature panel .
I think you started making you armature without Ctrl-A first which can give you wonky results and frustrations :wink:

Sorry man. I tried what you just described and it didn’t make any difference. :frowning:

The .blend file is hosted. Here’s the link:
http://www.knoxfarms.com/Downloads/Mewtwo_numero_dos.blend1

Ok in looking at your file I realize what the problem is . You are in Global view but your mesh/armature are not centered around the global origin . A lot of the function in Blender’s armature system assumes that you will account for the global origin (with stuff like X-axis mirror) . I managed to get your mesh centered at 0,0,0 and put the mesh’s center there (but it moved the eyes into the tail - I think I forgot to Alt-A those) … but your armature is a different matter … How did you start building it ? It looks like you started your armature from the left leg - was this the first bone you created ? Becasue no matter what I do the armature’s center will not move from its wierd position aligned to the lower left leg but also in front of it almost by the leg’s length … Some things have to have their transformations applied before doing further work otherwise they become useless (curves are like that too sometimes) … So it seems that your armature’s origin is stuck in it’s wierd place … I tried relocating it but clear origin,object center to cursor etc. have no effect … sorry . I guess the starting point of the of the first bone counts as the armature’s origin if you didn’t Alt-R, Alt-G, Alt-O, Alt-S and Ctrl- A before building up the rest of the armature …

Unfortunately you are going to have to re-make your armature . Unless and hopefully someone else can figure out how to clear it’s origin .

Just make sure you center the origin/center point of both the armature and the mesh . Place the COG (center of gravity ) at the global origin for both .
When (/if) you start to build your armature place the cursor at the global origin and add your first bone (it should be the lowers spine in this case) . Exit out of Edit Mode and Ctrl-A (and all Alt- s too if you want to make certain) . Re enter Edit Mode and build the rest of your armature . By the way use the X- axis morror in the Armature Panel in the Editing buttons (F9) . You did not have it on when I opened up your file . This will make your life easier - you only have to re-make one side . Just press Shift-E when you need to start branching out and the mirrored bones will transform as it’s counterpart is transformed .
Also turn on X-axis Mirror for your mesh as well to make sure you have it centered properly . It is in the Mesh Tools 1 panel under the Editing buttons (F9) while in EditMode . If your mesh is properly centered when you select a vertice on one side of the x-axis another on the other side will also be selected .

To center the mesh from where you have it now :

  1. Go into Object Mode and Ctrl-A .
  2. From the Object menu go to Transform to ObjectData to Center - this will caus the center to move to the middle of his tail .
  3. Deselect the mesh and anything else and press Shift-C - this will cause the cursor to snap to the origin .
  4. Reselect the mesh and Shift-S select Selection to Cursor - this will move your mesh to the origin .
  5. Go into Side View (Numbpad 3) and hit G then Y - to limit the movement to the Y-axis - visually move the mesh until the Cursor/Origin is in the middle of the stomach and his ears and the Z-Axis touch on top and the Z-Axis touches the back of his heels at the bottm .
  6. From the Object menu ->Transfrom->CenterNew .
  7. And finally from the Object menu ->Transfrom->CenterCursor. Don’t for get to Ctrl-A again just to be safe …

Oh and you’ll have to move the eyes etc … You might want to make them the child of the main mesh so they tag along …though they will still get displaced in the process all you’ll have to do is reset them in the Side View …

Sorry I couldn’t be more help . But learn and live . If you still encounter problems just post .

You almost never have to rebuild your armature so hold off for now. Chances are it’s something stupid like verts that have been painted to zero but are still assigned to only one bone.

I can’t check it here but if I get a chance tonight I’ll have a look - assuming no one’s actually dealt with it in the meantime.

EDIT: (It’s tonight here now)

The file you made available has no armature parent or modifier and no vertex groups. It’s difficult to work out where you (or Blender) have gone wrong when the actual problem isn’t present.

The shoulder cannot deform if it is not assigned to a bone (sometimes a zero-weighted assignment will act like a 1.0 assignment and again, I suspect this is the problem). Alternatively, in your first screen shot you can see where it says “Armature parent deform”. This is the virtual modifier. It might be that the virtual modifier is also using envelopes (?) which work on a region of influence rather than vertex groups assignments. See below for more.

So, working forward (this might look complicated but I’m doing most of it to clarify the situation - you wouldn’t normally do all these steps):

Starting with the clean mesh and armature, no parenting, no modifiers, no vertex groups.

  • Select armature and turn on X-ray in Editing Options panel
  • Parent mesh to armature - “don’t create groups” (generally the best option for a complex model, imho)
  • Go to Modifiers window and click “make real” for armature. Now turn OFF Envelopes.
  • Go to pose mode and select arm.L (left upper arm bone)
  • Select the mesh, go into edit mode and select one vertex on the left arm. Press Ctrl-L to select the whole arm (linked verts). You can do this because the arm is not connected to the body.
  • Then, go to the “Select” menu (3D window) and choose “inverse” to select everything except the arm. Then press H to hide it.
  • Now, using face-loop select (or selecting one, by one) select all the faces that make the whole UPPER arm.
  • Go to the Vertex Groups, choose NEW and label it arm.L (exactly the same as the bone for this part)
  • Tab back to object mode then CTRL-Tab to weight-paint mode. Upper arm should be red (this is why we selected the bone earlier)
  • Ctrl-Tab back to object mode, Select armature, go to pose mode.
  • Select upper arm bone and rotate it. Mesh moves properly (lower arm looks like crap but that’s because it has no vert groups assigned.)
  • Shoulder cannot deform because it is not assigned to the bone.If this doesn’t work or makes no sense, then please upload a broken file so we can reverse-engineer it. It is does work, then go through every bone and create and assign vertex groups manually. There are workflows to make this reasonably painless so if things look promising, we can discuss that next.

Oh, and on a separate note, you have some inverted normals on the mesh (under right shoulder) so take it into edit mode, select all verts (A-key) then Ctrl-N (recalc normals). These are hard to see without a subsurf modifier.

OK a little update . I played around a little more with your set up and this time I found that you don"t have to remake your armature afterall . When I re-opened your file just now I found the object center to be where it should be at the base of the Crotch Bone … Maybe the last time I screwed up and move the data center off - really couldn’t figure out what the problem was until I zoomed out because your set-up is basically sound except for where it is located in the Global coordinate system and tried a bunch of basic centering /location stuff and somehow moved it … sorry about that :o

But you still have to put the center of the armature and mesh at X=0,Y=0,Z=0 .
To center the armature at the Global Coordiate : Go into Object Mode

  1. Deselect everything then Shift-C to center your cursor at 0,0,0 .
  2. select your armature then Shift-S choose Selection -> Cursor (your armature center should snap to the cursor and your now at the “origin”) done !
    But you might want to tweak you armature a bit they aren’t properly mirroring each other . The left and right shoulder bones are different lengths for example and the upper left arm isn’t connected to the shoulder … there may be more but those were some I noticed . Use the Transform Properties window to check for proper mirroring : if a bone is at y coordinate 1 and x coordinate 1 the proper x-axis mirrored bone should have y=1and x= -1 , i.e. x should be the same numder only a negative one .
    You can check to see if the bones are properly joined by selecting the armature and going into Editing Mode and looking in the Armature Bones panel . When you select an individual bone it will show up there on top . Next to where it says "child of " there is a window showing you the parent bone . If you press the little up and down arrow a list will "pop up " showing you all the bones in your armature . Next to that is a little button labeled “Co” (for connected) if it is not grayed in then your bones are not connected together .

You still have to do the above with your mesh . It’s a little more involved because the center currently is in the head . just follow the above instructions and check if it is centered by using the X-axis Morror as above . If it is not just delete one half and apply the Mirror Modifier (when you apply it it should disappear from the stack - don’t worry about the prompt) .

When everything is centered in the Global origin do the parenting and stuff . Should work fine now .

Oh and your frustration about the vertex groups that appear even when you deleate them - that is working as it should . When you opt to parent the armature by “named groups” Blender automatically creates the names for the vertex groups based on the bones you have in your armature but it does not assign any vertices to them - you have to select them in Edit Mode or weight paint them in Weight Paint Mode . The names are already there so you don’t have to have a list to paste from like you do :wink: The previous problem you had about trying to rename them probably had to do with the fact you had named vertex groups before …

All you have to do now is use AndyD’s method (if you want to) to just assign your vertex groups … Or if you hopefully have an earlier version with your original vertex groups just try centering your mesh and armature to the Global origin - just unparent them before you do …

Hopefully this solves your problem and if not post an earlier version like AndyD said … and sorry again about my earlier post I don’t know what happened there :o:o:o

Go to Modifiers window and click “make real” for armature. Now turn OFF Envelopes.

Bingo. It works now.

Now here’s what’s got me so incredulous: I have never ever done this before. In all my previous armatured things, I never touched the modifier stack. And they all worked perfectly. Case in point: parent a cube to a two-boned armature. Choose “name groups”. Assign vertex groups for face 1 of cube to be controlled by bone 1, and for face 2 to be controlled by bone 2. The cube flexes accordingly in pose mode. The modifier stack was not even touched.

I know I’m probably somewhat to blame for not being so well-read on Blender’s more recent features, but does anyone know why this came to be such a problem with Mewtwo but it’s not a problem with the aforesaid cube?

I can only guess it’s a “region of influence” thing. The shoulder verts are very tightly nested with the upper-upper arm so they would be well within the region affected by the envelope. I don’t use envelopes (they seem too “simple” for me and I don’t usually trust “simple” - which is why I also recommend manually assigning vertex groups. Maybe I’m a closet masochist.)

There’s a bit of an overlap in the armature workflow switching from the old Parent method to the new Modifier method and this might explain some little oddities. But i’m not a coder so don’t quote me on that.

In general I think you’ll find the “recommended” procedure is to use the modifier and not to parent the mesh to the armature. However, this does mean that if you move the armature in Object Mode, the mesh won’t go with it - so I think it’s fair to say that it’s very common for people to parent then “make real” then choose either envelopes or vert groups.

In general I think you’ll find the “recommended” procedure is to use the modifier and not to parent the mesh to the armature. However, this does mean that if you move the armature in Object Mode, the mesh won’t go with it - so I think it’s fair to say that it’s very common for people to parent then “make real” then choose either envelopes or vert groups.

I think that’s what I’m going to do from now on.

Looks like this one is case closed. Thanks, guys. :slight_smile:

Thankyou so much ! I was struggling with this for days ! you saved my life.
woah 15 years later