This plugin is a combination of SMeshWidget and UParticleSystemComponent. It spawns particle components in the scene, gets the particle data and generates vertices for Slate.
Example project: https://github.com/adolfans/uiparticlesamples
Here’s how to create a ui particle system:
1. Create a User interface material, for rendering particles on UI
2. Create a new particle system, specify the UI material on the emitter
Notes: Maybe it is rendering nothing in particle editor, ignore it.
3. Create a new widget blueprint.
4. Drag a Particle System Widget onto the UI.
5. Choose the particle we just created.
6. Compile the widget blueprint.
7. You can edit it in particle editor and preview it in UMG editor.
1. If the particles disappeared after editing, try compile the widget blueprint. Compiling will cause reactivate.
2. Particle emitters with UI materials may not being rendered correctly in Cascaded Particle Editor, but it works well in UMG Editor.
3. Do not share one material between a particle system widget and other types of widgets. I mean if you use one material both in a particle system widget and an Image widget at the same time, maybe it will crash.
4. Some of the material nodes are invalid for ui.
Use Vertex Color instead of Particle Color.
Use Texture Sample instead of Particle SubUV.
Use R and G of TexCoord instead of the first and second components of Dynamic Data.
5. Any emitters using AnimTrail, Beam, GPU Sprites or Mesh Type Data won’t be rendered on UI. Only CPU Sprites and Ribbon are supported.
- It is a rewrite for the rendering modules of Cascade ParticleSystem, rendered as a UMG widget.
- It technically supports version 4.18~4.24, but only built under 4.24.
- Because of the limited Instancing support of Slate, the particles are rendered directly without instancing. That is why mesh rendering is not valid.
- Only Camera-Facing orientation is implemented for Ribbon particles because I thought it was enough. If you really need other orientations, please tell me.
- This plugin is designed to avoid using of RenderTarget. So NEITHERE GPUParticles NOR Posteffect are supported. It means you cannot use bloom except you implement a blur in the materials. There’s only one postprocessing effect in UMG, BackgroundBlur. Anyway, you can also try to use a RetainerBox. If you really need bloom, you should use a RenderTarget with a ParticleSystem spawned in the world instead of this plugin.