The VFX component is set to cull at 250 units (for the test). And as you can see in the picture, above 250U, the system still tries to playback the sounds.
From a design perspective it means, that if we keep adding FMOD play events in VFXs, we will have play requests (so voices used) for VFX that are not even in the surroundings.
Let’s imagine we have a lot of VFX with tiny sparks in a room. Even with a proper culling on the niagara component, those play events are still occuring if the player is 10000 units away from the room.
From my perspective, I’m assuming that if I’m setting the parameter “max distance” in the LOD param of a niagara component, the system should be culled and also the FMOD playback events.
But maybe I’m missing something, and neither of the UE5 or FMOD doc covers that very specific situation.
I did some testing with the Niagara system/emitter scalibilty in UE5.5 with FMOD 2.02.24 and it appeared to behave as I would expect, with the events only being triggered when the particles are.
In your screenshot, the slightly faded bars shown instances that are virtualized and should not be audible. It looks as though the niagara system is still playing events through the emitter but the events are outside of their FMOD Spatializer max distance.
Can you show more specifically how you are setting the culling and the settings you are using with it?
Don’t mind the 4000 value, it is the current default value. It was indeed at 250 during my tests when I realized we had a virtualization issue on the FMOD events.
The culling system was working as I did see the particle spawn below 250 and disappear above… and resulted in that virtualization behavior in the profiler.
It’s like, instead of not playing the events (which was my assumption and would be the ideal behavior), the events are virtualized instead. Which seems to be an intended design as technically, based on the FMOD event configuration, they should play back between 250 and 1000.
The ‘LOD’ settings don’t actually stop objects from spawning/updating, including particles from an emitter, it just stops the objects being rendered to the screen.
An easy way to see this is to open the Niagara Debugger, run the map with the emitter and move in and out of the LOD range.
eg. In range:
If you look into ‘scalibility’ I believe that will have the effect which you are looking for, similar to the FMOD stealing/virtualization system it can “cull” objects when out of range but also keep track of where they would be if in range.
Makes sense. My non-native english speaking might have played a role while reading the documentation… now that I re-read it, the “render” aspect of the LOD control is very obvious.
Sorry about that!
I indeed swapped to local scalability in the niagara system and it now properly culls the playback of the FMOD event.