Niagara issues and help

Hi there,

Long time reader, first time caller.

I’m having an issue with Niagara where I’m trying to have the particle system delay each loop with a uniform random float, and have this synced across all emitters in the system.

I have been able to get things to sync, and I can set a system delay, but it doesn’t set a new delay each loop (it’s always the largest value), and thus all placed particle systems spawn with identical delays. Which is not great.

This was never an issue in Cascade. Does anyone know if there’s a bug with the delay module in UE4.24 or something?

Its working fine with me in ue4. 26

1 Like

Probably worth mentioning I am working in UE4.24

Hey all!

I’m trying to incrementally add a value to a Dynamic Material Parameter in Niagara and nothing seems to work.

For example: MyValue = MyValue + DeltaTime * Rate

Also, does anyone know how to get a curve to use it’s Post-Infinity extrapolation

Hello guys! I know this is probably a silly question, but does anybody know the shortcut for simulation of niagara particles in level? Currently I kinda have to keep spamming the compile button to see whats happening in level and it always comes with a bit of a lag since its compile isnt meant for this.

I searched for any button that would do that and when I didnt manage to google it out anywhere.

When you have the Niagara system open, you can click the preview window and simply press Spacebar to have the system play, this will play the system in the main editor as well.

2 Likes

Hello!

Is there a way to create a global parameter in a system that can be updated by one emitter and read by a different emitter in the same system? I know there are the events, but those seem limited to location, death and collision.

Alternatively, is there an easy way to animate a system parameter on the timeline? I love the timeline concept but it seems limited to only basic spawn parameters unless I’m missing something.

Thanks!

Particle Attribute Reader

2 Likes

Exactly what I needed. Thank you!

1 Like

What’s the best way to trigger a system-wide event via Blueprint? I’m trying to trigger an effect from Blueprint that would spawn some extra particles and change some parameters (e.g. color intensity) in the Niagara system. My initial idea was to simply create a event write module that would call an event when a boolean at system level was flipped, drop it into the system update, and have event handlers on each emitter hooked up to it. However, it seems that event handlers cannot receive events from either system or emitter level, but rather they have to be written in particle spawn or update (since this is triggered at runtime, this means I have to write it at particle update, not particle spawn).

This made my initial plan a lot more complicated. Running it in particle update means I cannot set system or emitter variables via the event module and that it will run every tick (my idea was to flip a bool if it has been called once, but even this has to be per particle, due to the module not being able to flip a bool in the system or emitter). Besides making things more complicated, this also means I’m writing this event and running the logic per particle per tick, when it really isn’t needed (the only thing that would need to run per particle are the consequences of the event triggering).

I could of course simply create a User.Color etc that the particles use and set them one by one via BP, but I was hoping to streamline the process (where I simply flip a bool or call an event and the Niagara system itself then does what needs to be done on a per-system basis).

So basically my questions are these:

  1. Is it possible to have an event handler receive an event that is in system or emitter update, rather than particle update?
  2. Is it possible for a module to “write up”, such as a particle update module setting a emitter variable?`
  3. Is flipping a boolean that is checked in system/emitter/particle update the best way to trigger events like this, or is there a better way?

You can set an emitter color variable to a user color variable and all particles can read the emitter one.
I’ve used the boolean method before (basically setting a bool to true for a very short amount of time), pushing tha into the Niagara system to spawn new particles, without interfering with the old particles.

But for your use case in particular, why don’t you create a bool and use that everywhere in the system to toggle the colors?
There are no events like this afaik, especially not for GPU emitters.

But for your use case in particular, why don’t you create a bool and use that everywhere in the system to toggle the colors?

The initial idea was to just supply every Niagara system with the same generic boolean that my class(es) set at runtime, then let the consequences of that be handled by each system individually. The first use case was going to be colors, but later on other particle systems might have done completely different things when the bool was flipped (hence wanted to trigger an event handler with it).

In any case now that I know that I’m not missing some simpler intended workflow for this, I’ll do as you suggested and simply read the bool, thanks. For more complex stuff I’ll probably just have system update modify custom system parameters based on that boolean that particles then read.

Hi, I’m having a little problem.
I set myself the task of making a system that will respond to skeletal meshes. There is a cloud of particles, if the character approaches him, then I want the cloud to move apart in front of him.
I know of a setup where particles react to distance field, but skeletal mesh does not contain distance field. I also know a setup where particles can take the form of a skeletal mesh (a bunch of tutorials).
As a crutch, I use a solution where, inside the blueprint of the character, I place an invisible cube with a distance field, but it still casts a shadow and there is nothing to do with it.
I would like to know how to do this correctly, even in setups where there are many skeletal characters on the stage and everyone has to react with particles.

(There are still collisions, but I don’t want the particles to hit the character, I want them to “be afraid” of him)

Hi Niagara people!
I’m pretty new to Niagara and I’m having an issue with the Niagara timeline and EmitterState module in UE 4.26.
I’m sorry if this issue has already been solved earlier in this thread, I didn’t found a solution for now so here comes the issue I was talking about:

Whenever I use an EmitterState module to control duration and loop behavior, my timeline becomes totally unresponsive. Here’s an example:


image
Above, I modified the timeline to add a 2sec delay, but within the emitter my loop delay is unchanged. If I make any modification within the timeline, it won’t change anything in my EmitterState module.
And, if I work the opposite way, and change a value in my EmitterState module, my timeline will reset and be like an infinite one (see picture below)

I quickly understood that my timeline and my EmmiterState module weren’t linked properly to each other. And I found this warning popup in the timeline editor:

I tried to open the Epic content example project with UE4.26 and the same issue occurs within Niagara systems displayed as an example. Then I tried to open the same Epic content example project with UE4.25 and all seemed to work perfectly fine with the exact same parameters and options in each project. So this issue should be related to the 4.26 update, and I could just work with the 4.25 for now to avoid this. BUT, the Niagara VFX I wanted to make was planned to be used with an already made project using 4.26, and switching to an older version of the engine with an already advanced project would not be my first choice…

I hope I made myself enough clear with this issue I’m having. Feel free to ask me some questions if needed for a proper reply or to share some issue solving process if you have some!

Thank you for reading this, and may the VFX be with you guys! :wink:

1 Like

I’m quite new to the niagara and cascade business so bear with me.

I am working on a personal project to recreate a vfx from a manga I recently read.
My problem at the moment is that I can hardly see my effect in the preview window. I would like to change the background image. I know there is a background color function but I’m wondering if and how you change it to a picture.

Although I have been searching I feel kind of stupid for not being able to find it yet.

Thank you in advance!

You can use distance fields, buy just attaching static meshes to your skelmesh. It’s a workaround, but it should work, if you don’t need perfect accuracy. You can hide the distance field mesh. Just give it an invisible material (masked). It should not cast a shadow then, you can also disable shadow casting on it ofc.
Or you can use actual collision (ray traced) on your particles, rather than distance field collision, that should work too, it’s just more expensive.

I usually don’t touch the timeline. I know some people do, but i personally just adjust timings/delays in the emitter state. Seems to be more accurate to me and i’m used to it, coming from Cascade.

You can change the preview settings like so, and save different profiles.
If you wanted a different image in the background you will need to create an HDRI cubemap.

1 Like

Hi all :slight_smile:

Does anyone know if its possible to have niagara simulation stages be reset when the the emitter loops? I have one simulation stage that has the Emitter reset only tick box checked on, but when the emitter loops, the sim stage doesn’t run.

in fact, I also described this fake method in my question, apparently, there are no other ways