Character facial expressions
This is easy to setup with the UV Warp modifier. This will allow you to change the UV mapping and map the face to different places on the texture, where you will have all the facial expressions:



These expressions can be part of your other textures. UV unwrap the face to the first expression:



Add the modifier to the character. Create a vertex group for the face and setup 2 objects that will define the UV warping transformation. If your character is rigged, you can have 2 bones inside the rig for this purpose:



Animate an Action for the To object with keyframe on each facial expression. This way your expressions could be randomly placed in the UV where there happens to be space for them. When you move the current frame number in the Timeline, your character should swap faces now.

To control this from the rig, you just have to put an Action constraint on the object/bone that is responsible for transforming the UVs. We will drive this Action constraint from another object/bone, let's call it Control. Now moving this Control on single axis on integer values should show all the expressions (keep the Max and End parameters the same):



Now you can set an integer property on your head object or bone, that will drive the Control location: