VFX Graph stops rendering particles if strip capacity and capacity are mismatched

When you use VFX Graph and attempt to set your Strip capacity to anything less than your particle capacity, once your particle ID goes over capacity, the system will only spawn particles based on the strip capacity.

Example: Initialize particles with capacity 100, set a periodic burst with rate 50, delay 1, set particle lifetime to 1. In your strip capacity, set strip capacity to 1. In the first two “iterations”, you’ll get the expected behaviour: 50 particles get spawned, they die after 1 second, 50 more are spawned and they die. But now we’re spawning particle 101, and from now on every burst you’ll only get 1 (strip capacity) particle each cycle. It’s very consistent, if you set strip capacity to 5, you’ll get exactly 5.

Now I’m not sure if this is by design or not, but it sounds like a bug to me. I stumbled upon this trying to have only a part of my particles spawn trails.

Minimal setup for reproduction:

My project is using URP 2D, running Unity 6000.0.21f1, but I found this old thread that mentioned 2022.3.14 being affected aswell: VFX Graph stops spawning particles if trigger event over time is active

Before capacity is full:
Unity_kF63pVQJ82

After the buffer gets populated:
Unity_rINsMHvF8q

Could you try to set your Child system’s Strip Capacity to a number equal or Greater to its parent velocity? By doing this, it should always work. Sadly, This is a limitation by design, if I’m correct.

You can take a look at this Post and Topic that talk a little bit about this.
And this one too.

Have a great day

1 Like