x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Material Panner with parameter value goes too fast when changing

Video explanation

Update 1: Video with more information of problem

Update 2: I see the problem now, the panner node doesn't increment offset every tick based on current speed. I checked the code, and the panner just calculates offset = time * speed

Arg2 = Compiler->PeriodicHint(Compiler->Mul(TimeArg, SpeedYArg));

This is still problematic for me, however I'll just find another way around this. So I'm unsure if this is a definite BUG, or just efficient behavior.

Edit 3: UE-45602 link

Material: Panner uses parameter value SpeedY

Level Blueprint: Update material instance with scalar parameter SpeedY from timeline

Timeline: Ranges from 0 - 2

Level: Fly into trigger area to see bug

With this setup, while the timeline is updating the SpeedY value, the texture flies all over the place. Refer to the video link at the top for demonstration.

Product Version: UE 4.15
Tags:
more ▼

asked May 24 '17 at 05:58 AM in Bug Reports

avatar image

BenVlodgi
2.2k 40 17 52

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

2 answers: sort voted first

Hello Ben,

I believe this is working as intended. The reason you are getting the flickering is because when you update the value of the panner, it resets but it also is moving because you are setting a value. This constant updating causes the flickering you are seeing, and why it the flickering stops when the timeline is finished.

Cheers!

more ▼

answered May 24 '17 at 03:04 PM

avatar image

Thomas G ♦♦ STAFF
7k 64 4 54

avatar image BenVlodgi May 24 '17 at 03:58 PM

Hey Thomas,

I could understand if it was resetting every time, that would cause the flickering. To test, I slowed down the timeline to 5 seconds. and found, that this was not the cause. I made an updated video and linked it above. It appears that it has to do also with current game time.

avatar image Thomas G ♦♦ STAFF Jun 01 '17 at 06:32 PM

Hello again Ben,

I have submitted a bug report for this issue on your behalf, which you can view here:

https://issues.unrealengine.com/issue/UE-45602

You can track the report's status as the issue is reviewed by our development staff. Please be aware that this issue may not be prioritized or fixed soon.

avatar image BenVlodgi Jun 02 '17 at 08:31 PM

Thanks Thomas! if you check above, I've Identified why this behavior happens in the code. I don't think there's a way to rewrite this without reducing performance, or precision. I think the way it is currently implemented is efficient for designers who don't want the pan speed to change. It would be better if the Panner node perhaps had a Dynamic speed option that used cumulative tick based offset. This might be a tiny bit less precise due to floatingpoint fun, but would be a good solution IMO.

avatar image Smalts Oct 05 '18 at 03:06 PM

Very late to the party but I have come across this issue also. I tried also staying away from using a timeline to see if I could work a way around it but still had the flicker. I used "Set Timer by Function name" and still got the issue when looping.

alt text

sampleissue.png (124.4 kB)
avatar image BenVlodgi Oct 05 '18 at 10:48 PM

I had updated my post with the problem. The Panner node is not meant to have its speed change dynamically. The way it calculates the UV offset is based on elapsed time and speed. If the speed is to be dynamic, then you can't use the Panner node, and must instead calculate the offset in a bp, and set the offset values.

Looking at your bp code: Don't create a dynamic instance each time the function is called. Create that dynamic instance once, then just store a ref to it for later. Maintain a float for current offset, then OnTick, or in TimeLine increment the offset by speed * deltatime and set the parameter on the material instance ref.

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

Hello,

I think you mistake on Panner function. It must be used with a constant speed, because the time value used for the function is the global time (not a time increased according to the speed and delta time).

For example : if you start your game since 45s and you change your speed from 0.1 to 0.12, it will involuntarily increase the offset of your TexCoord from (0.12 - 0.1) x 45 (and the scrolling will be faster).

The only way to do what you want is to manually increase a time parameter (and not using Time function).

Panner function explanation alt text

Custom Panner function alt text

Dynamic speed blueprint code alt text

more ▼

answered Jan 19 '19 at 12:46 AM

avatar image

bstt
111 1 3 2

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question