I’ve finally found some time to release this project onto the Unreal Marketplace. If you want to grab it from there and not worry about the plugin installation and maintenance feel free to do so. Alongside with it I’ve released the documentation for the plugin, with more in depth instructions on how to use it.
For the past couple of weeks I’ve been working on improving this plugin from usability perspective. I’ve added some features, that should make your life a lot easier, and other features, that should allow you to do more with the plugin, and create even better looking effects. You can find them in the new 1.1 release.
Thank you guys for your support on this project. It means a lot to me
Release notes:
Added warnings for invalid settings on the widget - There’s a new warning box in the editor, which allows you to see, what’s wrong with you particle system / setup, and allows you to automatically populate left side of the Material Remap List
Added functionality to automatically generate UI materials - Just right click on your regular particle material and press “Create Niagara UI Material”. This will duplicate your material, automatically change the material domain to user interface, and replace all particle color nodes with vertex color nodes. The conversion isn’t perfect, and should check if it gives you desired effect out of the box, and probably manually adjust the material, but it should give you solid starting point.
Since a few people were asking me to create a tutorial or help them set things up, I’ve decided to make some tutorials for you guys. I’ve made 3 of them ranging from the easy beginner effects to something a bit more advanced. I hope they’ll help you get started with this plugin, or maybe even inspire to create some cool effects.
Before you watch them, I would like to apologize for my English. I know that I have a lot to work on
Unfortunately Mac isn’t an officially supported platform since I don’t own one, and I don’t have a way to compile and maintain the plugin for it. Because of this, you need to compile your own version of the plugin if you’re using MAC. It’s not showing up because MAC isn’t whitelisted by default, so you need to edit the .uplugin file and add it to supported platforms and Whitelist Platforms. After that just recompile your project, and it should work just fine. I know people that have done that successfully.
I did add the Mac to the whitelist before i made the comment, perhaps i didn’t do it right…
Anyways i resolved the issue for now by just copying the 4.26 plugin into the 4.27 project and editing the .uplugin file to 4.27.0 instead and everything is back to normal.
Thanks for making the plugin available for free and for your support on even non targeted platforms.
Hello
First, thanks for this very nice plugin!
A dev in my team is using it, and we realized that the effects can be seen in the editor (in PIE), but not in packaged builds. I haven’t investigated a lot. I saw that you do not require any external third party DLL, so it looks like another issue.
Any idea as to where I should look for clues? (I am not a plugin user, but merely the team troubleshooting guy )
Thanks in advance!
I’ve tested this plugin in both development and shipping builds and all the features seem to work just fine. If everything’s set up properly, there shouldn’t be any issue with UI particles not rendering in the packaged game. The only reason why it wouldn’t work, that I can think of, is if your particle systems / materials are not included in the packaged build. If that’s not the case, I don’t know what’s causing the issue, and It’s very difficult for me to help you without more information, reproduction steps, or project files.
One more thing that I can think of would be packaging the game for some unsupported platform. Please keep in mind that only Windows and Android are officially supported platforms, so If you try running it on something else like iOS, you need to recompile your own version of the plugin, otherwise it won’t work.
My team have installed it for a project and are testing it out. The effects are working great, but there is one problem I am experiencing. I wonder if you can shed some light?
I add a NiagaraWidgetSystem to a widget, add the Niagara System and remap materials, all works fine.
However, even though I save, after rebooting UE4 I get this error:
Failed to load /Script/NiagaraUIRenderer.NiagaraSystemWidgetReferenced by WidgetTree
The NiagaraWidgetSystem is no longer in the widget.
I would be grateful if you could let me know how I can solve this.
This behavior is strange and I’ve never encountered this before. I don’t really know what’s causing it, and I can’t reproduce it. It sounds like it’s saving the Niagara Widget, but when you restart Unreal, it cannot load it. The first thing I would try is making sure that the plugin is installed properly, then delete all the Binaries and Intermediate folders, regenerated the project files and fully rebuilt the solution. I assume that all people from your team have the same version plugin installed, because if not, it could cause some weirdness. Other than that there’s no much I can help you with. I would either need reliable repro steps, or access to the machine where it’s happening, so I could debug what’s going on. If you manage to reproduce it in a clean project on multiple machines, please let me know the repro steps, so I can try to fix it.
I’m sorry, but that’s all I can tell you for now. I know, It’s not much.
One more thing that just came on my mind: I don’t even know if it’s possible but could you check if you don’t have multiple instances of the plugin installed. Let’s say one version in the engine and one in your project. I’m not sure how Unreal handles that, but that could cause some weirdness.
Great work on the plugin!
I have one major issue, the emitter origin weirdly offsets in play mode when you change the anchor point from the default top left.
I’m assuming that you’re using Spawn Burst Instantaneous on your particle system, with combination of spawning the particles the very first frame the game starts. There’s an issue that I’ve mentioned several times that causes the spawn location to be calculated incorrectly if they’re spawned the very first frame of the widgets life.
I’m planning to fix this issue, but I’ve been very busy for the past couple of months.
Luckily, there’s a simple workaround: Just untick the “Interpolated Spawning” tick in the emitter properties, and in the “Spawn Burst Instantaneous” module set the “Spawn Time” to a very small number (something like 0.01), so the particles won’t be spawned the very first frame, but the frame after.
Hi, this plugin is great, thank you for making it free!
I’ve just been having one issue, it seems like colors can’t be higher than 1 or the particles just go white (even if they look fine outside of UI). I’m using the Vertex Color nodes and UI materials. Any ideas why this might be happening?
Unfortunately yes, the vertex color in Unreal Engine is 8 bits per channel, which means you can only get 0 - 1 float (0 - 255 int) values. I know it can be a bit frustrating if you’re trying to use the value to drive some effect, but in most cases it shouldn’t be a huge issue, since in UI rendering you don’t have any post processing effects like bloom, so larger values wouldn’t look like they’re glowing, but would just get clipped.
For this reason every time I’ve wanted to create a glowing effect in the sample project, I would fake the glow material. It’s pretty easy to do so. There are examples in the sample project, and I’m explaining how it works in one of my tutorials. If you want to change the glow intensity, you can expose it as a material parameter, and change that per material instance.
If you’re trying to do something else, I’m afraid that I can’t help you much. This system has some limitations, that don’t allow you to do everything you could with Niagara in “normal” world rendering. For sprites, you can access Dynamic Parameter R and G data from Texture Coordinate with coordinate Index 1. This could help you, if you need to pass some additional data from your particles to the material.