The Niagara UI Renderer Plugin adds a Niagara Particle System Widget that allows you to render Niagara particle systems directly into the UI. The plugin supports sprite and ribbon CPU particles.
With this plugin you can finally use Niagara particles in the UI, without the hassle of creating expensive render targets. Just drag the Niagara System Widget into your widget blueprint, select your Niagara particle system, add your materials into the Material Remap List and you're good to go! For the step by step guide, please visit the documentation.
This plugin was tested on Windows and Android, but it should work on other platforms too. They are not officialy supported, because I don't have a way to test in on the other platforms.
You can use "stat NiagaraUI" console command to check the performance of your particle systems. In my test scene running on an AMD Ryzen 9 5900X, it took 0.05ms to generate the sprite data and 0.1ms to generate the ribbon data for 1,000 particles.
If you want to get help getting started with this plugin, you can take a look at the tutorials:
will there be the ability to use mesh renderers in the future?
I have also noticed that if you change the pivot of a sprite in niagara, it ignores this in a widget
Hi, unfortunately the current feature set is pretty limited, and the mesh renderer and a custom pivot position are only two of many features that aren’t supported.
I was looking into fully rewriting the rendering to do it in a more proper way instead of using slate’s mesh widget, but I’ve only managed to get a proof of concept running. This would allow for more complete feature set and way better performance, but there’s still a ton of work. Therefore I don’t want to promise anything, especially since I don’t have much time to work on it.
After the full rewrite a mesh renderer support would be theoretically possible, but it still introduces more issues as how to deal with perspective projection of the mesh, how to light it, what scene data to pass in etc.
The UI material does not support the “Dynamic Parameter” node. After the automatic replacement, this node will no longer function. What are the solutions to this problem?
Hi, this is expected behavior since it’s a limitation of the way the plugin draws particles on screen. I recommend you to read the documentation which explains how you can get some of the functionality back. Here’s the section to save you time:
… For sprites, you can access Dynamic Parameter R and G data from Texture Coordinate with coordinate Index 1 …
(This also means you cannot access rest of the parameters, because of the limited data I can send to the renderer. In case you want to send more data you will need to smartly pack it)