Niagara issues and help

I asked the same thing on the discord the other day, i’m not sure if it’s even possible but i would love to know this as well.

1 Like

The short answer is, you probably shouldn’t.
Looping over an array of potentially hundreds of particles per spawned particles is just quite simply a bad idea.

There are two general options I can think of when running into this problem (although tbh, the solution here really depends heavily on what exactly you are trying to achieve)

  1. You build your algorithm to use nSamples per particle and guess at the actual value based on this short sample. This will make your algorithm inacurate, but potentially fast enough to be viable in game.
  2. You precalculate value’s for your set of paticles outside of the particle execution stages.(BP in the case of unreal) But that will only really work if the values you require for the particles are consistend across all particles.

If you really want to sample all particles per particles, I believe there might be looping functionality in the module script system somewhere, they hinted at it during the inside unreal talk. I have no idea where it is though.

The short answer is, you probably shouldn’t.
Looping over an array of potentially hundreds of particles per spawned particles is just quite simply a bad idea.

In my case i just wanted to know how to set it up (if it’s possible). I want to sample a total of 5 (non-looping) particles for a cinematic, and i’m the one controlling the amount spawned so the cost isn’t a risk factor for me.

You build your algorithm to use nSamples per particle and guess at the actual value based on this short sample. This will make your algorithm inacurate, but potentially fast enough to be viable in game.

Sorry, i’m not sure i’m following, algorithm? I’m only looking for something to input to my “Particle Index” that would let me sample 5 particles at the same time instead of 1 at a time. Is that possible?

You precalculate value’s for your set of paticles outside of the particle execution stages.(BP in the case of unreal) But that will only really work if the values you require for the particles are consistend across all particles.

I feel really slow today, what values are you referring to? The only thing I need is a way for the “Particle Index” input to encompass my total amount of particles spawned. Again, if it’s possible.

Why not copy the Get Vector by Index node 5 times? Sure, it’s not elegant, but it sounds like it would solve your problem in this case.

An algorithm is a series of actions.
for example, “Loop over all the particles and find the biggest one. Sample its position. Move me closer to that position.” is an algorithm.

No, it expects an int32 input. You cannot input anything also to it. (for now at least)

I’m using it to refer to the result of your calculations needed for whatever action you want to take.
Example;
Say you wanted to have every particle in your scene attracted to the center of mass of the entire group of particles. In that case you wouldn’t want to calculate that value for every particles, that would be a waste. Instead it would be better to first calculate that center of mass, then simulate the particles with the result of that as an input.


Perhaps you could try in a custom hlsl node with something like this. You’d have to figure out how to get this working though, because this doesn’t compile.

An algorithm is a series of actions.
for example, “Loop over all the particles and find the biggest one. Sample its position. Move me closer to that position.” is an algorithm.

I know what an algorithm is.
I just wasn’t sure why it went into “Algorithm”-territory when all that was asked was whether or not you can feed the “Particle Index” more than one integer at a time :slight_smile: It does seem to only be able to parse one at a time though.

Anyway, in my case I ended up altering the effect slightly so it would work with sampling the 5 particles one at a time.

Hey guys,

Are static mesh LODs available in Niagara mesh particles?
Or can I manually change the mesh used for particles via parameters?

Thanks in advance

I got a question about spare parameters on niagara. If I use module that made a lot of useless parameters and I use like 1-2. I is better to rewrite this module to fit my needs or compile process is so good that is just delete unused parameters?

1 Like

Having trouble using Dynamic Material Instances on Niagara particles, do they work?
image

Hi OgnjenIlkic, it’s all done in the Niagara system itself

Here you control the parameters made by the Material Dynamic parameters and the you control theses in Blueprints using a Niagara Parameter

1 Like

That is not the same thing :smiley:

I needed to use DMI to change Texture parameters dynamically. But looked everywhere, and I guess this is a known issue since a few versions ago :confused:

I think I am just a little confused as to what you are trying to achieve


image

So if you make the dynamic parameter and then make a user dynamic you then feed that into the Blueprint using the Niagara parameter.

Hi,

I’m trying to create a simple trail and noticed that niagara seems to handle ribbon mapping quite different than cascade if you use a tile distance in the ribbon renderer. Does somebody know how to achieve the cascade mapping style in niagara?

insta

1 Like

Hey guys,

is here any way to type in numerical values quickly inside a curve editor in Niagara? In Cascade I was able to add new curve poinst within seconds and type numerical values in, especially useful for 3D Vectors. The editing of curves is a much slower process in general, so maybe I’m missing something?

Creating a simple 3D curve with three points in Cascade takes be about 10 seconds (if I know what I’m going for), whereas in Niagara it’s about three to four times as long for exactly the same result. This is ,of course, only a problem if I need exact values.
I’ve created this beautiful picture to illustrate what I mean:

4 Likes

Hey Guys
Someone know if there is a medium hard or simple way to setup a skeletal mesh spawner that is spreading the particles evenly over the surface and not based on the try count ?
Usually the particles are getting spawned based on the try count so there will be more particles at hands and less over the body surface.
I have already found that video https://www.youtube.com/watch?v=DTBHTeja66k
the issue here is that particles are getting stackt over each other

Make sure you set CPU Access and Uniform Distribution on the Mesh and it will emit all over, not just in high poly areas.

You can now use the Initialize Mesh Reproduction Sprite and Update MRS Modules instead of Arts method. Not sure whats changed in 4.25.

2 Likes

Thank you that worket perfectly, dont know why I never was this easy solution inside a tutorial

just had the problem that i couldn’t see 1 of my 3 emitters. pressing “full rebuild” solved it: image

2 Likes

Hello,

I’m exploring the Initialize Mesh Reproduction Sprite and the Mesh Reproduction Sprite UVs to be able to match the colors. Wondering how to set the material when my skeletal mesh has multiple ID textures (head, body , leg…) .

thanks

1 Like

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