Ok, this is it.
You have the time node in the material. Time is always increasing, but for some reason, when we set parameters in the material from a timeline in a blueprint, the time node starts using ‘game time’ rather than ‘material time’.
The solution, is the subtract game time, every time we re-run the timeline, like this
The material is
This is the new variable
and this part just makes the sin wave do it’s job properly. Otherwise it spends most of it’s time below zero, which doesn’t mean anything in materials
I suspect this strange time node functioning is a bit of a ‘feature’ and may disappear in later versions of the engine. In which case, your original method should be fine…



