Using ShapeKey on top of armature rigged animation


First please excuse me if that has already been answered thousand times, I tried to search the forum and the net but could find an answer, but it may be because I don’t know which keywords would trigger an answer to my problem.

I’m starting in Blender, and TBH in 3D in general, coming from a compositing and editing background.

I have a character I rigged (using Rigify), i created the groups of vertex and weighted them, and rigging works ok.

I then imported some mocap I did using a Noitom Neuron suite in BHV, used Auto Rig Pro to remap and transfer the animation to my rigified character, it works fine and bone influence is ok.

Now I want to animate the face of the character. The face is not rigged, I have a single bone for the head and deleted the face rig of the rigify default bones. Want I was willing to do is to create several copies of my character, with the same rig and animation, and then sculpt the face to different expressions, create shapekeys and use them to animate the face as I don’t what lipping or complex things, just very theatrical expressions to transit to.

So I did it with a first copy to test the idea, I sculpted a big wide “O” shaped mouth and the new rigged/sculpted copy follows the animation from mocap perfectly.

So to resume where I am, I have 2 characters, rigged and animated, one with mouth closed, the other with mouth open, they are perfectly overlapping each other animation and placement wise. I select the 2, join them as shapekey, hide my “O” mouth character and then try to use shapekey to morph from closed to “O” using the face vertex group to only influence the face.

And strangely in place of simply morphing one to another, it also transform the position of the face, detaching it from the rest of the skeleton and moving it furhter in Y and Z, while indeed morphing to the good shape. Doing it gradually with the shapekey value (at 0 it is the orginal unbroken mesh, at one the face is far away and the shape of the morph target)

I’m most probably doing it wrong here, but is there a way to work with shapekeys on top of and armature animation to do what I try to do ?

Thanks for your time and your help


While there are potential issues with combining shapekeys and armatures (the key is understanding that a shapekey is a deformation that is always applied before any other modifiers, including an armature, so the shaped model is the input for the armature modifier), it doesn’t sound like that’s your problem.

Although, some pics would help.

Think of each shapekey as being a translation vector for each vertex. That translation is measured in object space– that is, relative to the orange dot that represents the mesh object’s origin. (That orange dot has a not-very-visible scale and rotation in addition to its location, but its location sounds like the problem here.)

If you have two shapes and the face is in a different spot, relative to that orange dot, then joining as shapes is saying, move the face to be in that new spot, relative to the origin.

Basically-- if you’re using a rigify rig to create shapekeys, only manipulate the facial bones, and make sure that all other bones are in default positions.