0
$\begingroup$

I am rigging a model of a creature which has sort of shields on its front legs, but I don't want those shields to be deformed, when I pose the leg. The rest position looks like this:

rest pose

But when I use the bone, which controls the lower arm, it turns out like this:

deformed

How can I make the shield follow the arm without deformation? It's attached to the arm (I can't separate it).

$\endgroup$
  • 3
    $\begingroup$ You need to leave only the weights of a bone that the shield is attached to. It looks like you have weights from other bones on that part of the mesh. $\endgroup$ – Denis Mar 22 '15 at 20:56
  • $\begingroup$ Anyone knows a quick way to clean the weights from selected bone? $\endgroup$ – Denis Mar 22 '15 at 21:14
2
$\begingroup$

Like it was stated, you need to remove unneeded vertex groups from the shield.

In Weight Paint mode, select the vertices you want to clear. Back in the Vertex Groups, click the down arrow icon. There's an option to either remove all groups from selected vertices, or only the active group. Best to remove all groups in your case and manually add the driving group back.

Remove from All Groups location

$\endgroup$
1
$\begingroup$

this will remove the selected vertices from all groups except the active one :

  • select the shield vertices
  • select the vertex groub with the shield-bone name
  • run the script

import bpy

obj = bpy.context.object
verts = [i.index for i in obj.data.vertices if i.select]
act_g = obj.vertex_groups.active
groups = [g for g in obj.vertex_groups if g.name != act_g.name ]
bpy.ops.object.mode_set(mode = 'OBJECT')
for g in groups :
    g.remove(verts)
$\endgroup$
  • $\begingroup$ not that this wouldn't work, but I prefer solutions, where I know, what's going on there and I don't know much about python $\endgroup$ – aky-her Mar 23 '15 at 7:37

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.