Tuesday, December 12, 2023
HomeVisual EffectsTaking part in a Niagara System in Reverse

Taking part in a Niagara System in Reverse


Hey all once more,

Been awhile and thanks once more for all of the assist in previous instances.

So I wished to ask everybody their ideas on reversing a Niagara system, as in taking part in a Niagara system in realtime backwards.

From preliminary experiments I assumed because it may play backwards within the sequencer, that I’d be capable to do the identical in actual time. Nevertheless after investigation, it looks as if technically if you find yourself taking part in a Niagara system backwards its truly doing one other sim, so in my scenario that isn’t what I’m on the lookout for.

After wanting additional into it, I’ve examine driving a Niagara techniques not by time however by a price that I cross in.

The top objective is to have the ability to play a Niagara system by a parameter (set between 0-1) in order that at 1 its the top of the techniques life cycle and 0 is the beginning, so it may be performed forwards and backwards.

I puzzled if this was a legitimate method of going? Anybody had expertise on this or have a greater advice?

All enter is all the time appreciated, cheers all!


It appears like one thing in Life Is Unusual 1, isn’t it? I don’t have any precise expertise in such impact, however I believe UE 5.1’s new function for Niagara “Simulation Cache” would curiosity you, however it’s an early experimental function. There isn’t a official documentation about it in any respect, I don’t see any related useful resource in Epic’s Content material Examples both, however I might be improper. Even in case you may get Sim Cache to work now, there isn’t a assure it could work within the subsequent UE replace.

A fairly primitive method as you’ve already urged is to make use of a float consumer parameter to behave as a lerp alpha/curve index/time base to slip between the preliminary and vacation spot positions of all particles. You may’t rewind velocity/drive pushed movement (not with out Sim Cache anyway), so all particle actions should be faked by direct manipulation of the binding place attribute.

I set the System attribute “CustomTime” in System Replace stage so I don’t want to make use of a BP to manage the consumer parameter or slide the time worth manually. Once more you’d expose the float worth through consumer parameter and fetch the time worth from blueprint.



1 Like

Hey @ifurkend,

Thanks alot for this. Actually helped get me began.

I used to be capable of drive a system utilizing a consumer time and nonetheless utilizing the identical nodes plugged into them. So I used to be capable of swap across the modules to get one thing that’s working effectively (largely by including particle replace nodes into particle spawn part).

My query now’s I cant appear to get spawn charge to work with a consumer time. I cant add the spawn charge to the emitter spawn part like I did with different modules (or a minimum of it didn’t work for me). I additionally tried configuring this part of the module to get it to work (by changing delta time with my customized time with no luck):

I puzzled you probably have any perception into getting spawn charge working with a customized usertime variable?

You talked about sim caches. I can report a sim cache, however how do you play a sim cache again? Do you employ the identical system?

Once more thanks for any enter!

Quick reply: I don’t know.

Lengthy reply: There doesn’t appear to be any official sources or instance undertaking of Niagara Simulation Cache so it’s all however a black field. I’m not an Epic TA or aware of any, so I simply don’t have the time and useful resource to decipher one thing like that.

As for making spawn charge to work with consumer time, I don’t assume so. You can not kill a particle and revive it once more (Though I’ve heard that it’s potential beneath a really uncommon circumstance, I’d fairly not try it). First let me get it straight, my consumer time rewind technique doesn’t work with velocity. I’ve to state that once more as a result of in your display shot you continue to have all the rate/forces modules in your “reverse demo” emitter.

My technique additionally requires all of the particles to not be killed till the Niagara System occasion is destroyed externally.

What you possibly can truly do is to pretend spawn charge by delaying all burst particles by particle’s uniqueID: max(Person.UserTime – Particles.UniqueID * ConstantRate, 0).



1 Like

Thanks for reply @ifurkend.

I used to be attempting to implement the spawn myself however it appears to error when attempting to entry Particles.UniqueID.

Any concepts what im lacking?

I don’t imply to manage the spawn rely, however to create a brand new float parameter in Particle Replace stage “CustomTimeDelay” and substitute the System.CustomTime within the particle place curve index.

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments