How to achieve this motion in Niagara Particle?

Recently, I am working on a Unreal VFX Niagara. I am trying to make the particle to move in those direction like the reference I shared. I wonder if anyone know if is there any technique-term or math formula that I could look? Or there alternative way that you guy might work around it.

I will really appreciate anyone give me a few pointer. Thanks!
(Btw, I have tried use unreal forces( vortex, attraction to point, drag and etc. I find it a bit hard to control on the overall speed since there are multiple forces on the particle.)

Is this right?

The former with an aligned fashion:

The latter which has empty space at the center in a scattered fashion:

1 Like

Yup, this is what i was look for. May i know how did u achieve the movement?

Certainly.

It doesn’t utilize the built-in unreal forces but “scratch pad module”. This is node-based programming like Blueprint’s graphs and is so flexible compared to the built-in forces on this page.

I implemented the behavior above in the following way. I’m sure there are other ways though.

1 Like

where ”first call” and “first loc” is Newly defined variables as “Particle Attributes”. This means these variables are created per particle.

“first loc” is set at “Make new>Common>Position” on the Parameters Panel. And it needs to set the default value of (0,0,0).

“first call” is set by selecting “Make new>Common>bool” with the default value of “true”

For the UniqueID, is it refer to the particle ID? Inside UniqueID, It have particle rotation data which is why we can give rotation value from there?

I am referring to the red arrow below. It’s not rotation data but just int32.

A remaining issue, however, is that it’s not working properly when the Niagara actor is moved from a spawned position. This is because the node script I posted is using the “SimulationPosition” variable which is used to calculate the trajectory properly, which is unfortunately not affected by any move after spawning, just continuing to indicate an initial absolute position. And I have no idea about this problem… If you mind, please ask others.

And it seems it cannot handle rotation properly on the viewport. I think the axes in the scripts should be transposed for it. Anyway please alter it as you want.

Thanks for the explanation and also highlighting the issue. The overall set up is good, it had give me a deep insight and understand on the particle system. I will go explore on it more.

Thank you aaa! :smiley:

I’m glad to hear that. Have a nice day :zzz:

1 Like

Sorry to post many times. I revised the previous node script so that it reflects a location and rotation modification after spawning correctly.

And please tick “Properties>Emitter>Local Space”

I’m sorry for the lack of readability. But feel free to use and modify it.

1 Like

Omg thanks alot. Ya :smiley: