Hey guys! I’m looking to use a sprite sheet on a particle system in a way that each particle spawned has a different sprite pulled randomly from a sprite sheet. I see there’s a way to animate each particle based on a sprite sheet, but I’m not looking to do sprite sheet animations. My goal is to avoid having to create multiple particle systems. I tried setting the animStartFrame variable in the update loop of an attached script component but it just causes the entire particle system to restart every frame.
Is there a way for me to assign a random sprite from a sprite sheet per particle in a particle system?
From what i’ve gathered, the particle system can’t currently support the randomisation of particle sprites from a single texture. Using animStartFrame could achieve this effect from a single sprite sheet but it’d require creating multiple particle systems, which you’ve said you’d like to avoid.
@LeXXik Thanks for the link. This example does modify the particle’s start frame, but it does it for every particle in the system. From what I can tell, that example has four separate particle systems and I’d like to achieve this effect with just one. (Though for my use case I don’t need the sprite animation.)
@Elliott I’m excited to hear that there are particle system functionality additions incoming! But until those additions arrive…
@Leonidas …thank you for sharing those code bits! It looks like a great starting point for me to dig in and try to implement this feature myself in the interim until it is officially added to the engine.
Essentially just shifting each particles texCoords u/v values to random coordinates on the texture. Bare in mind this is only modifying the mesh pathway for the particle system.
@Elliott That looks like it’ll do great, thanks so much! I was able to make a build and test it in my editor using the “use_local_engine” url tag. You did all the work for me.
After reading the recent engine release notes, I remembered this thread. I think the new feature matches your request, so adding it here for future reference: