Stopping a texture stretching

Hello,
I have a problem where I have a flat face that has a texture applied to it. The face then has a mouth that when animated to open or close etc, stretches the texture making it all contorted. Is there anyway to keep the texture fixed so that it doesn’t change when animating? I know this is probably quite an odd question and probably doesn’t have a solution but I thought I would at least try and see if anyone can help.
Thank you.

If I’m reading you correctly, this is a problem with the fact that the UV map stays the same shape while the 3D geometry moves around. This is probably a problem because of poor mesh topology; I believe if the mesh is mostly quads of roughly equal size and even proportions, contortion of the texture shouldn’t be too much of a problem, so the gold standard solution would be to retopologise your mesh to have good edge flow and face scaling.

You certainly can set up the texture so that it doesn’t change on the face, but I’m not convinced it’ll give you a good result, since the texture will appear to move over the face as the geometry deforms. The most simple way is probably to use generated texture coordinates via an input>texture coordinate node. You may need to do some tweaking with a vector>mapping node. The other potential way is to use a Project UV modifier.

These images might help describe the problem:

What it should look like when the mouth is animated (it is currently closed):


The mesh looks like this:


When the mouth is changed it looks like this:


The texture around the mouth is stretched. Is there a way around this? (I didn’t create the face rig by the way, but I did apply the texture.)

Hi, when you say that the texture will appear to move over the face as the geometry deforms, I think that is the kind of thing I am looking for. I’ve added some reference pictures to the thread below, they might help explain the problem I am having. Are the things you suggest still the correct solution?

Hi, I think that is the kind of thing I am looking for. I’ve added some reference pictures to the thread below, they might help explain the problem I am having. Are the things you suggest still the correct solution?