…using Simulation Space World, I can get the desired rotation I want by choosing to simulate based on Local space but I need the already spawned particles to be left behind because the emitter is moving, but I also need that the particles gets spawned with the same rotation of the emitter.
Is there a way to do this? It’s a pretty basic thing, but I can’t find a way to do it…
Yes, I want it to inherit the rotation of the emitter (to be more correct, the ParticleSystem is nested under another two objects, but I want to inherit its world space anyway). I’m trying to make footsteps, I was spawning quads and destroying them but I want to use particles for it instead because it’s more perfomant.
you’ll want to spawn an emitter outside your characters hierarchy based on foot location according to an event and use local_space. foot steps that use the same material will batch
but wait I think align_to_direction is what you want in the shape tab. i think this was added to allow you to fling a deck of cards in an arc. Eh it’s not working the way you’d want either
Ah, yes, this works! I spent 1 hour trying to understand how it works, it seems like it doesn’t work with meshes, I was using a quad mesh and it was not aligning, I switched back to billboard now it works! Thanks a lot!
The results:
Edit: ah, nevermind, this way, the particles spawned previously changes their direction when the emitter changes too, I just want to inherit the rotation in the spawn process… I will need to set the startRotationY…
You probably not gonna like this, but updating the transform.eulerAngles of the particle system object to the 3D start rotation of the particle system is probably the most straightforward approach (may still need to ± 90deg of each axis to the resultant rotation). Of course it still requires using the “world” billboard alignment but you can disable the shape module which is pointless now.
I’ve added an item to our roadmap to make this easier.
In theory, I think you should use Align to Direction to achieve this. However, the problem is that this locks you into Local Render Alignment. This means future emitter rotations also rotate the existing particles, which you have discovered.
What I think we need to do, is allow World Render Alignment in this mode too, so old particles aren’t affected by new emitter rotations.
For now, I hope one of the suggested workarounds gets you what you want!
i’m concerned when using mesh renderer … well let’s say I’m imagining a character throwing saw blades with slight start_rotation randomness + rotation over lifetime gyroscopic + pivot offset
Simulation Space Local is not an option for me since the particle system is nested in the character, this way if I set to local the particle will spawn with the same rotation of the feet (ok) but the character will “carry” those already spawned particles/footsteps with him, I have the shape module disabled because I don’t want them to spawn within a space range, nothing new there, I want them to spawn in a fixed point.
So my current setup is Simulation Space: World, no shape, BUT, the particles always gets spawned facing the world.forward so I using my third post’s method, setting startRotationY (I’m using a custom mesh which is a quad facing up, can’t remember why using horizontal billboard wasn’t working for me) before calling Play().
Yes, exactly what I’m doing. You have some cool particles btw!
Maybe a “Align only at birth” bool?
Thanks! The more options the best!
Things can get a little messy, haha… but, as long as it works we are good!
Thanks for the replies guys, everything is working now!
Oh, just one more thing, I needed to invert the sign of transform.eulerAngles.y * Mathf.Deg2Rad, I was getting a mirrored rotation, forward and back was alright but left and right was inverted, the value in the start rotation field was correct, but the particle rotation itself was mirrored.
I dont see align to velocity anywhere in the renderer. You mention you choose mesh > quad, but there is no such thing. Well there is - but if i choose mesh then select a quad (also the standard quad) then that is still just an ordinary mesh.