0
$\begingroup$

I've got a character mesh behaving itself, and I have the fabric clothes behaving themselves, now I need to get the plates to behave. I've used blender 3.1's built in Rigify functions, and parented the character mesh and the fabric clothes to the rig. They work the way I want. The issue I'm having is the armor plates. For the chest-plate, it's not too bad - I parent to the rig using automatic weights, and unless I bend the rig too far, the chestplate looks ok - but it does start to deform, which I don't want. If I parent it to the bones in the meta-rig, it ignores the poses I set in the rig. Am I supposed to parent the meta-rig to the rig? That doesn't seem right.

For italian-style articulated knee joints, the problem gets even trickier - the articulations are supposed to rotate when the knee bends. Since the character mesh underneath is deforming, is there a way to parent the articulation to the nearest vertex in the character?

I'm not suave enough with the rigify system to add a controller or bone just for this purpose, but if there's an existing tutorial or walkthru of how to accomplish this, please point me to it.

Thanks in advance!

For my current project this isn't imperative, but for future projects it might be.

$\endgroup$

2 Answers 2

1
$\begingroup$

The trick to armature deforming rigid bits is to realize that if a group of verts all have the exact same weights, they won't deform, not relative to each other.

When I have a rigid bit that I need to weight, I start by weighting it normally (likely, autoweights or data transfer), then I select the entire rigid bit in edit mode, shift deselect, ⇧ Shift select a central vertex, and then, on sidebar/vertex weights, I click the Copy button. This copies the weights of the active selection to all selected vertices. While I always use a central vertex to get average-ish weights, you can experiment with copying from actively selected vertices on different parts of the plate, all it costs is an undo if you don't like it.

That's not proof against all problems, only deformation. You may find that your plates clip into the body afterwards, perhaps requiring additional weight work on the body. In some cases, it might even be worthwhile to give a plate its own bone. If trying to do carefully articulated plates, as with the knee you mentioned, this would make sense-- what you'd be doing is creating knee fan bones, which inherit only part of the rotation of the calf (in typical hierarchies.) Provided you only ever rotate the calf in its X axis, this can be done safely with a copy rotation constraint on 0.5 influence, local->local.

$\endgroup$
0
$\begingroup$

I may have a partial answer to this.

The key isn't parenting to a vertex, it's parenting to a vertex triangle! If you parent to only 1 vertex, the knee plate (for example) copies the location of the knee but does not rotate.

In Edit Mode, selecting 3 nearby vertices at the kneecap, then switching out to Object Mode to select the knee plate and re-select the underlying mesh, and choose Parent > Vertex Triangle copies location and rotation; sort of, because the 3 vertices deform slightly differently, the effect is to rotate the knee plate.

Object origin of the plate should be at or near the vertex triangle. It moves and rotates from it's origin point, so make sure that is close to the vertices controlling it.

If there's a better way, let me know.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .