Download

Panner node in Material BP strange behavior. Possibly a Bug?

I’ve created a material looks like this:

And then I’ve created a BP to control UVPannerY, from -5 to 0, using a timeline.

New Track 0 is a float from -5 to 0 with duration of 10 seconds.
The panning stops instead of the value of 0, it stops at around -2.5.
After -2.5, it begins to panning in opposite direction.
And when the value reaches to 0, it stops suddenly.
I’ve also tried everything that makes this parameter from -5 to 0 to make panning stops(FInterp, manually increase the variable, etc). But I never succeeded.
So did I miss something or this is a bug?

I’ve uploaded a test project.
I’m using the latest UE4.17.2.
Thanks for your time.

I think the panner node isn’t what you need. If you plug your UVPannerX and UVPannerY nodes into an append node and plug that into the UVs input of the SourceTexture node it should be all you need. Panner is an automated looping node where you plug in time and speed. You’re trying to manually control it.

Because it’s UV coordinates, a full ‘loop’ as it were is from 0 to 1, so your timeline output should range from 0 to 1 in order to do a full top to bottom pan.

Actually - just use your make float 2 instead of append.

I just want to control that speed parameter.
When I set this parameter manually, it works just fine.
Like, I set to -5, it pans very fast, -1 slower and 0 will stop.
But if I change this parameter in BP, then everything goes wrong.
Why is that happening?

Thing is that you can’t do it that way. Essentially, what a panner node does, it offsets UV by Speed each unit Time. Adjusting speed in realtime will result in weird motion. So does adjusting time. What you need is to pass a your own time scalar from BP timeline to material, instead of relying on material time.

Exactly. scaling the time node is like multiplying the current time by some value. since time probably started a long time ago, it will have the effect of going backward or forward in time dramatically.

ie if current time is 100 seconds and you change the speed multiplier from 1 to 0.5, you will instantly go from 100 to 50 seconds, appearing to blend backwards in time. The best way is to drive the value manually by incrementing a float variable. If you increment that manually by the current speed it will always be relative to now instead of the start of the game.

Thanks, guys!

I’ve written my own panner now.

Hello guys,

I still have this problem with panner and can’t solve it (even after reviewing every post about changing panner parameter in dynamic material instance, maybe I’m dumb, dunno).

I think I understand what I have to do to make the panner move a texture correctly but I don’t have an idea how to achieve it. I Can’t find a way to make a material parameter affect the float variable in blueprint. I’d be glad if anyone could explain or show the blueprint.

Nevermind now.

I achieved the goal in a different way. I made 3 planes in a row, set them to follow each other in looped matinee. Now I can controll speed of it by ‘Set play rate’ node. Works like panner :wink: