whenever you’re into creating a bunch of blend shapes for example for a face, you may wish to mirror certain face expressions instead of having to do the tedious and time-consuming work of moving around vertices again (and try to reflect the same mesh deformations on both sides of the face).
but you can’t just copy a shape and mirror (negative scale) it as the vertice numbers stay the same; the mirrored shape doesn’t change the other side of your base object when you scrub the channel attributes – the exact same side again is blended as if your blend shape is still the same even if it looks different in the viewport. so in a first thought it may sound impossible to save time this way and you’d go back to the manual work. but there’s a solution which really works fine.
there’s no specific hidden command to accomplish such a task but there’s one interesting workaround which is based on the nature of wrap deformers that work proximity based and not like blend shapes vertice number based. this production workflow helps you to speed up your blend shape production a lot since you only have to do the shapes of one side of the face.
to explain the solution, simple cubes will be used:
create a cube and call it base. this is the cube which the blend shapes are going to be blended into. duplicate the cube and call it for example lift_l since you now lift up the 2 left side vertices up some visible distance. blend this lift_l shape into the base and test it to make sure it works fine (animation > create deformers > blend shape/ default settings).
now again: you can’t just negative scale (in component or object mode) this lift_l shape and expect that this new blend shape would work correctly, just because the scale doesn’t change the vertice numbers. e.g. vertice number 3 of lift_l moves vertice number 3 of base etc., that’s good but the problem at the same time. so make a duplicate of the base cube and call it blend_cube and another one with the name mirror_cube. as blend_cube and mirror_cube look exactly the same it is advantageous if you color both shapes dstinct so you don’t mistake the one for the other; let’s take yellow for the blend_cube and purple for the mirror_cube (just take two different lambert shaders).
now blend lift_l into the blend_cube and negative scale it (usually x=-1) to have a mirrored shape. now the tricky part: select mirror_cube, shift-select the blend_cube and add a wrap deformer (animation > create deformers > wrap/ default settings). set lift_l of blend_cube to 1 so you can see the deformation (don’t do this before the wrap!). now you can instantly see how base is being deformed on the other side. base has now correct blend attributes for both sides.

if you experience the problem that the mirrored blend overrides the first blend, delete the blend nodes of base and re-add the blend by shift-selecting lift_l, mirror_cube and base, then add the blend, but this time with the options: in advanced, set the deformation order to parallel.
with this setup you can now mirror all available shapes through this pipeline: select any shape, blend it to the blend_cube and blend the result back to the base. with this pipeline it should be obvious now that you can save a lot of time.
p.s.: as always – thanks to greg berridge, mr. know-it-all and head instructor at vfs for his fabulous tricks.
whenever you're into creating a bunch of blend shapes for example for a face, you may wish to mirror certain face expressions instead of having to do the tedious and time-consuming work of moving around vertices again (and try to reflect the same mesh deformations on both sides of the face).
but you can't just ...