I have 2 human faces in a scene, one of them imported with a heap of keyshape facial expressions, and another mesh which only has one keyshape. open mouth.

I would like to know if there is any way to use mesh deformers or other modifiers to somehow copy the general changes of a different mesh to mimic it.

Maybe there is an advanced way with bones / drivers or something else.??

some of the facial expressions are really cool, at the worst case I would copy the ones I like one at a time manually editing mesh for keyshapes, but if there is another way I'd like to learn.

The following 3 images show the Face on the left has some expressions I would like the face on the right to copy.. enter image description here enter image description here enter image description here


2 Answers 2


If the meshes are different regarding their vertice (count and inter-vertice-connection - the "edges") there is no native way to do this - at least not with native blender tools. I don't know of any addon, which does this - I often need to have such a tool and didn't find any.

The reason is, that the shape keys are recordings of vertex displacements. Think of a sphere with shape keys and try to transfer them to a cube.... (ok...that example is extreme...;) )

  • $\begingroup$ I added an Answer to this question, It's a very tedious job, not so much a click and play trick.. but taking the time to setup the solution I posted worked a treat!! :) $\endgroup$ Sep 2, 2019 at 6:38

I learnt how to do this It is possible but it's a bit of a tedious job.

Basically this job is all about creating a Facial Bones armature and making the bones transform (move) with the Face with expressions.. Applying the armature as a Shape Key to save the expression to the face without the expressions.

I did it via the following steps.

  1. You need to create an armature for the face you are wanting to add expressions to. (just place a bunch of bones in key areas such as Like I did.) (I find adding more bones means the automatic weighting works a bit better and more accurate. being there is less space between bones.)
  2. Click the Face then also select the armature(Face Bones) press CTRL-P Apply with auto weighing
  3. Create some Vertex Groups of vertices on the mesh of the face that already has expressions. These Vertices Groups should be in Key Areas where the bones on the other face will be in step 1.
  4. Start adding Transformation in "Bone Constraint" for the bones in Step 1. Object is Face with Expressions, Vertices Group is closest point on Face with expressions.. this part is a bit annoying, as the values are unique for each bone. Leave X as 0 as it screws everything. and adjust Y and Z and press the EYE On/Off butting a few times while adjusting to get it to go be in the Same Position as eye off.
  5. when you have enough bones setup and able to move the face, Select the Face your wanting to add Shape Keys.
  6. In the Vertex groups panel. make sure it has a base/basis shape Key. (IE: the unmodified Key)
  7. Goto modifiers page, and in armature click "Apply as Shape Key", Rename the Shape Key in Vertex Groups Panel to the pose. test it by adjusting the Shape Key
  8. Add another armature and choose the correct armature you created(Face Bones).

Repeat for each Face Expression...

Note: this should all be done during a Resting / reset pose.. Dont go doing this while your characters are animated already, It might screw things!?

Note: It may require you to adjust weight painting for some of the bones if the facial movements are not moving that great, Such as Teeth behind lips and eyes.

Adding Bones and Vertices Groups Applying Shape Key from Face with Expressions


You must log in to answer this question.

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