I use Niagara to emit particles in my scene, but my use case is a bit different from classical games because this is an interactive art installation in a VR headset in which I want to manipulate particles.
I have created a GPU particle emitter (based on the Niagara Content Example - but with GPU instead of CPU) and added some logic to change the color of particles. This works fine.
I use GPU particles because I have 5000+ particles. Also, I use mesh rendering because I’d like my particles to be 3D and not just 2D sprites.
What I want to do is have access in my blueprints to some information about the particle emitters and if possible individual particles. I would like to have information like total number of particles, total number of particles that have already collided, particle bounding zone. An even better thing would be to have an event triggered when a particle collides with a mesh so that I could use that information to trigger some interactivity.
Now, I see in the Niagara emitter editor that I can use stuff like the fact that a particle has collided with another mesh to change the color (or lifetime) of a particle.
This works fine, but I see no way of accessing these settings outside the emitter editor. Could those settings be exposed via a new Niagara Module Script?
My main question is: **can I access particle emitter and even particle-level information outside of the Niagara editors? **(Why not?)
I understand that GPU rendering has the advantage of running in parallel (and therefore having better performance), but does that mean that all those VFX are visual only and there is no way of accessing the information in my CPU? I guess Niagara was built for typical games, where you generate particles to look good but don’t need to extract information about them at runtime. I’m just hoping that maybe all of that information is available to the CPU somehow.
Thank you for any help.