I am trying to animate the speed of a wing flap that is accomplished using world position offset/vertex offset. So far, trying to animate the value using a curve in Niagara with a Dynamic Parameter has not worked. It appears the Time node doesn’t like being changed by the Dynamic Parameter using a curve… however, if I just make it a constant and change the value, the wing flap speed adjusts accordingly.
Is there some other way to do this so I can animate the speed of the wings using Dynamic Parameters in Niagara? I want them to start out fast and slow down over time. I’ve tried Lerps but those didn’t work either.
Any help or ideas would be greatly appreciated. Thank you!
You can build your own time in niagara (wtih a speed multiplier). Then push that throught the dynamic parameter.
To do this, create two float parameters in niagara ‘CustomTime’ & ‘SpeedMultiplier’. Then on update, set CustomTime to CustomTime + (DeltaTime * SpeedMultiplier).
Then push CustomTime into your Dynamic Parameter and use it directly in your material.
You might need to frac it if you just want it to go from 0-1.
Thank you for the reply! I will give that a try… I’m not terribly experienced using custom parameters, so I would like to clarify a couple things:
- “then on update”: do you mean system update, or particle update in the emitter?
- “set CustomTime to CustomTime + (DeltaTime * SpeedMultiplier)”: I have not used functions like this is Niagara; where do I set that? In a scratch pad module? Or in an expression?
Thanks again for your help - I have mostly just used the basic features in Niagara so some of these aspects of it are new to me.
Particle update. You want to do this per particle. Dynamic Parameters are also per particle. Also I just assumed you would want to adjust your wing flap speed per particle.
You could use an expression, but there is no need. Just do it with pre-existing modules. Like so:
No worries
Nigara is a beast and can easily be overwhelming at the beginning!
1 Like
Do we know why time doesn’t play nice with curve?
I was thinking if it’s possible to put that custom time += deltaTime in the material itself. But Material doesn’t seem to work that way, like it’s not a real time thingy? but if it’s not a real time thingy, how come Time works in it?
Is it possible to use a while loop in the material? While statement exists in hlsl, right?