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.
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!
Exactly what I needed. Thank you!
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:
- Is it possible to have an event handler receive an event that is in system or emitter update, rather than particle update?
- Is it possible for a module to āwrite upā, such as a particle update module setting a emitter variable?`
- 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:
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!
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.
Hi all
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
Hello there again, I am currently having a hard time making my sparkles collide with mesh emitter that just hangs in the air. Both of them are in one niagara system. I need them to collide so the spark can die and spawn another particle upon collision. So far it only passes through the plane mesh. Any ideas?
Iām not sure, but I donāt think Mesh particles can collide with other Mesh particles out-of-the-box, you would have to write your own PBD solver for something like that.
If your collision mesh is supposed to be in a fixed position, I would suggest using Analytical Plane collision under Collision Type in your Spark emitter, then you can set a fixed Vec3 position where you want the plane to be.