how can I rig a 2D face onto a 3D model
I'd find it a bit hard to animate using textures, even though I know it is sometimes done. For Project Gooseberry, I read in one of the weeklies that they were thinking about animating UVs using drivers on bones to achieve this effect for the caterpillar scene, but it didn't look all too intuitive.

My approach would be to use the traditional armature tools, combined with a shrinkwrap modifier workflow. It would be too long to explain everything, so examine the (simple) blend here:



The trick is to have the armature deform the face mesh before projecting it onto the head mesh using shrinkwrap. So all deformation happens in a flat plane, the result is wrapped onto the head with some offset. This is what it look like before projection:



And this is after:



I use the same technique for the eyes, however you can see the distorsion on the circular shapes a bit too much for my taste, so here deeper involvement would be needed. For the mouth it works a lot better:



I really quickly hacked this together to show the concept only, much more dedication needs to go into carefully weighting this, but alas, where you take this approach to is up to you.