You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Setting sub-emission "At End" fires before the particle dies. This bug is stretched together with the main particle's lifetime.
The expected behavior would be for the main particle to die and for the subemitter's particle to spawn, both at the same frame.
A workaround I've found is setting an Alpha Curve to hide the particle just before it dies.
But, if you use random lifetime, it doesn't work well on versions prior to 4.2-beta2. (maybe it was fixed in PR #83488 ?)
Steps to reproduce
The reproduction project has "main_2d" and "main_3d" scenes that show the issue, even in the editor.
Seems to still happen in godot 4.3-stable. Although it can only be triggered once after opening the scene containing particles after which it doesn't seem to trigger at all.
I've re-tested my sample with v4.2, v4.3 and v4.4 dev6. Here is what I've noticed for v4.3+:
The sub-particles are now spawning in the expected timings for every particle.
It still feels like there is a consistent 1 or 2 frames of difference between spawning the sub-particle and killing the main particle.
This difference is more visible in the 3D particles.
2D and 3D sub-emitters sometimes emit double the amount.
3D sub-emitters sometimes don't spawn for the normal lifetime particle when using 30fps.
I could not reproduce the issue mentioned by warriormaster12 with my sample project.
From my tests, I can say that the spawn timing issue has been mostly fixed. It would be nice for them to spawn on the same frame, if it's not technically possible, then this issue is the most fixed it can be.
I'm not exactly sure if the spawning amount inconsistency is related to this issue, or if I should open a separate one about it. But I'm sure it was introduced in v4.3.
I'm re-uploading the sample for 4.4 as there seems to be some changes to the particle system. I also removed the Alpha Curve workaround, since it's no longer needed.
Godot version
v4.1.2; v4.2-beta2
System information
Godot v4.2.beta2 - Windows 10.0.19045 - Vulkan (Forward+, Mobile) - dedicated NVIDIA GeForce GTX 1650 (NVIDIA; 31.0.15.3742) - Intel(R) Core(TM) i7-2600K CPU @ 3.40GHz (8 Threads)
Issue description
Setting sub-emission "At End" fires before the particle dies. This bug is stretched together with the main particle's lifetime.
The expected behavior would be for the main particle to die and for the subemitter's particle to spawn, both at the same frame.
A workaround I've found is setting an Alpha Curve to hide the particle just before it dies.
But, if you use random lifetime, it doesn't work well on versions prior to 4.2-beta2. (maybe it was fixed in PR #83488 ?)
Steps to reproduce
The reproduction project has "main_2d" and "main_3d" scenes that show the issue, even in the editor.
Minimal reproduction project
GPUParticles Subemitter.zip
The text was updated successfully, but these errors were encountered: