Michal Smolen - Niagara UI Renderer

Video: https://youtu.be/iFa40Sf4QPA

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:

Beginner Tutorial

Intermediate Tutorial

Advanced Tutorial

Features:

  •  Adds a Niagara System Widget

  •  Supports CPU particles only

  • Supports Sprite and Ribbon particles

  •  Allows remapping particle materials to the UI materials in the widget itself

  • Automatically convert particle materials to the UI materials

  • Directly transfers the widget location to the actor location so it supports moving / animating the widget

Does this plugin support for iOS?
Supported Target Platforms - has only android and windows

Hi, the answer is in the FAB FAQ section for this plugin. Cheers!

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.