Offsetting a UVmap using the UVwarp Modifier

I asked this question inside this other thread, but the subject strayed a bit away from the original topic, so I’m creating a thread for it. Basically, I want to “slide” a distortion over a video texture. Here is what I last posted in the other thread:

Hi guys, I’ve had some time to think about the problem. I’m looking to have the distortions produced from twisting, nudging, and bulging vertices change their central positions from frame to frame to match the new location of a character in a video texture.

The warp modifier almost does this, but I don’t have much control over how it distorts the mesh. The distortions needs to stay within the X and Y axises of the plane. I also don’t have the ability to distort by twisting.

Dynamic paint doesn’t help either. It’s just good for dynamically creating a vertex group which could be used to restrict the effect of the warp modifier. It won’t allow me to do the same things I can do with the twist and nudge sculpt tools. I would also like to use shapekeys (or something similar) to shift between the warped and unwarped textures.

I think I can achieve what I want to do by moving the UVmap and camera at the same time. I used the UVwarp modifier to do this, but now I’m having trouble getting it to move the UVmap at the same rate the camera moves. I think it needs a new parameter that we could use to adjust how much to move the UVmap in relation to another object.

Here is the project and video file. I had to compress it so that the site would let me upload it:
warpingVideo.zip (3.0 MB)

I also almost had some luck producing the effect I want using nodes by keeping the image in one spot while the plane moves. Transforming the UVmap to world space and adding it to window coordinates almost does this. The trouble is that the UVmap repeats itself and there is still some movement. A node based approach is probably beyond my understanding atm.

I rendered out my best attempt at this effect (I want the video to stay with the camera as it moves):

For every one unit your camera moves, the UVWarp modifier moves your texture one texture width. To make your texture move like it’s fixed to your camera make your texture one unit wide in the 3d view.

Quick (but not exact) instructions to do this:

  • Scale your ‘test’ object by 1.21.
  • Apply scale (the UVWarp modifier doesn’t seem to respect an objects scale).

If you want the texture to fit inside the camera then also change the ‘Orthographic Scale’ of the camera to 1.0.

1 Like

Thanks, your advice made it work the way I wanted.

I think they should expose the movement scale in the modifier itself. Adjusting the movement of the UV with it is confusing. That or maybe a setting that dynamically adjusts the movement scale to match the scale objects move in.