You could create a custom datastructure that stores individual bitmaps for each direction and animation. Ingame, you would calculate what bitmap you take and assign it's pointer to ->skin1 pointer of the Material of the character, which you then use in a shader as texture.
Skin UV shifting is possible, but dependent on your size of one (1) image, your input texture could 1) exceed the power of 2 texture constraint and 2) could exceed the max. texture size of the users machine. The bandwith usage would be also higher.