Godot Version
4.2.2.stable
Question
Howdy! I have a quick question about making a GPUParticle3D with a 2D animated texture as the material for the plane meshes it draws. The 2D animated texture plays a short animation and then I when it’s done I want the individual particle to disappear. Unfortunately, the lifespan of the particle is longer than the animation so it loops and I can’t get the lifespan exactly where I want it to be. When I enable oneshot for the animated texture, it simply freezes on the last frame of the animation and lingers before it’s lifespan runs out. How can I make the lifespan end when the animation ends? Thank you kindly!
I’m tired, so bear with me, I’m not entirely sure what you want to happen, but I’m reading it as you have an animation that plays, and when that ends you want the particles to end?
The following could work:
$Animation.Play("my_animation")
await AnimationPlayer.animation_finished
$GPUParticleNode.hide()
That would work if the animation of the particle was being played from an animationplayer, but it’s being played by an animated texture material. Let me illustrate better:
I have this basic 5 frame animated texture
And then I have the particle system that creates little flat planes with the animated texture as it’s material. It’s supposed to look like raindrop splashes are appearing on the floor, and when the short 5 frame animation ends I want the particles to disappear but instead they last longer than the animation lasts.