How to have 2 weight paints in the same place without a conflict

How to make such squash and stretch deformation and eyelids rig in the same place?

In maya there is such setup of layers where you copy mesh of the head and the eyeball, do a weight paint on it with new bone to make head and eyeball squash and stretch, and then apply it as a target to the blendshape of the main geo.

I’m not necessary asking how to make similar setup in blender, just want to know how to have 2 weight paints( squash and stretch weight paints and eyelids) in the one place without a conflict

I am not an expert, but did you try to create 2 different vertex groups one for each weight paint?

Maybe I am saying something stupid, cause I don’t work with rigging. But I thought I should mention that.

Well, probably my question has nothing to do with your topic.

No, weights from Bone affects weights of Bone.001

That’s a shame but it doesn’t look right.

I’ve find out that if you make 2 separated armatures the weight paint of one is not affected by the weight of the second one. I am not sure if this helps.

Made some more tests, but it seems to mess up after a wile. Sorry.

Generally, squash and stretch is done using drivers and constraints rather than extra weights like in rigify, for example.

In theory, you could use 2 armature objects and combine them by constraints, but that’s likely to have a lot of issues to sort out.

Hi, you can simply parent all your deform bones to another bone, and transform that bone for squash/stretch. For more complex deformations you can use a lattice but bones won’t visibly “follow” the squashed mesh, even though they will still correctly influence it.

When you have an armature, the armature modifier reads normalized weights: if you have two deforming bones, and your weights for those bones are 1.0 and 1.0, then each bone has equal influence: each bone has half influence: 1.0/(1+1).

The vertex groups, however, are unaffected. It is only the armature modifier that acts this way.

In the case of squash and stretch, there are multiple ways to do it. One would be a vertex group limited lattice modifier. In this case, even though painting Bone affects the armature modifier’s interpretation of Bone.001’s weights, painting Bone will not affect the strength of the lattice modifier that is limited by vertex group Bone.001.

(Another way to do this is just to parent an eye bone to a non-deforming bone that you scale. Doesn’t work great with some other constraints though.)

Squash and stretch of eye was only an example. In broad perspective need to know how in blender you can do layers of weights in the same place that do not affect each other like on video 2 in the op. I’m very stunned that it seems there is no “normal” way to do that and i have no idea how without it you can do serious cartoon head rigs in blender.

well yes, but then you’ll have to manually switch between armatures to move bones in the pose mode

Anon on /3/ showed this setup but he said that vertex groups may get funky.

If you’re using vertex groups to do something non-armature, let’s say a warp modifier, they don’t interfere.

If you’re using vertex groups to affect the way bones move in a (single) armature, you can’t make them not interfere. This is where the whole concepts of “weights” comes from: the vertex groups reflect weighted influence from bones. As you increase the influence of one bone, you necessarily decrease the influence of another bone.

If you can specify your end-goal, we can probably tell you how to achieve it.

Again, i need this.

Such setup allows, as i showed in example, to move and deform whole eye without affecting weights of eyelids.

it seems that with geometry nodes its possible to do non-destructive shape keys, makes it close to what i need

Unnormalized armature weights wouldn’t help you do any of that.

For something simpler like your first video, you can use a warp modifier or a dynamic mesh deform. Here it is with a mesh deform:


I skipped the third sphere because it just wasn’t necessary.

Here’s the file, although you’ll need to hit the “bind” button the mesh deform modifier on frame 1 (file is too big with the bind data):

dmd1.blend (215.9 KB)

If I’m getting the second video right, there are a lot of ways to do that; easiest would be pre-armature, vertex group limited, surface deforms from the target meshes (they look like they’re just pre-armature deformations.)

Last Maya user that wanted Maya-style clusters was satisfied with a warp modifier, which can act like a bone that follows your mesh. Didn’t see that demonstrated in your video, but if you’re a Maya user, you should learn the warp modifier.

Maya rigging is very different than Blender. Maya abstracts away a lot of details that you have to trudge through in Blender, and to my knowledge, not everything that Maya does is possible in Blender.