Three key blend nodes that I use in the animation blueprint of the character are 1) the blend node, 2) apply additive, and 3) layered blend per bone.

Three animation blend nodes: blend, apply additive, and layered blend per bone.
Both characters use their own normal maps. They each have normal maps for different wrinkles on the face that appear when showing an expression. I posted some normal maps earlier for the old character, but here is an update with both new characters.

Expressions in Zbrush
The new character needed to have his blend shape correctives fixed as well.

Low Poly version of the male head’s expressions.

Tweaks done to the character’s blendshape correctives.
From substance I baked out normal maps for the expresions, then isolated them in photoshop and assembled them all into one texture.

Expressions Normalmap Texture
In the material, I isolate each section of the texture, then take the red and green channels that get added to the character’s regular normal. There’s a parameter to control the intensity of the wrinkle, as well as a parameter tied to the animation/expression value.

A close up of the anger brow section.

Happy faces updated.
Above is an improvement from one of my earlier blog posts where I had first put the second character into the engine and his smile looked very odd.

Old version.
And another expression example, showing a variation in the brow and mouth wrinkles.

Disgust faces.