I have a fire shield effect I’m finishing up, and currently I have all the fire orbs spawning at the correct position, rotation, and they follow the player as expected. I’ve tried adding some particles to the orbs and I’m running into an issue to where the particles are moving with the velocity/position of the parent object and not the fire orbs themselves. I’ve tried local and world space, and inheriting velocity but can’t seem to get any combination to work. Any ideas? Video of what it looks like below. Thanks!
This is with Simulation Space World, if I use Local then I don’t get any trails at all when they rotate. The player is its own gameObject, and the fireShield object is as well, I just set its position equal to the players position as the player moves.
I’ve tried every combination of particle settings I can come up with. It has to be something with the object following the player position or something.
I’m confused: the video shows the particles moving with the orbs, which I guess is what you mean when you say you wan them to “move with the velocity/position of the fire orbs themselves”.
I only want the particles to follow the orbs as they rotate in a circle. I don’t want them to streak left or right or up or down when the character moves.
@arkano22 That got it pretty close! Definitely headed in the right direction. Now its not streaking when the player moves, its just rotating super fast to catch up to the direction I’m facing now. It only quickly catches up when changing direction, moving in one direction has the particles rotating fine after the character rotates to that direction.
Currently messing with emission and velocity settings but not having any luck. Super appreciate the help.
This is because as the player rotates, so do the particles as they’re simulated in the player’s local space. Ideal setup would then be:
Have a dummy object copy the position of the player, but not its rotation. Just dummy.transform.position = player.transform.position. We want the dummy to follow the player, but not rotate with it.
Make the dummy object’s transform the particle system’s custom space.
Place the orbs as children of the dummy, make them rotate by moving in a circle in the dummy’s local space (do not rotate the dummy object to make the orbs rotate!)
As a result of this setup, the particles will be simulated in the dummy’s local space which means they will rotate, translate and scale rigidly with it (as if parented to it). So when the dummy moves, particles move with it. The dummy doesn’t rotate so particles won’t be rotated as the player turns. And since the orbs rotate inside the dummy, they leave a trail behind while rotating.
If you accept a suggestion, I think you’d benefit from reading about vector spaces. They’re used for quite literally everywhere in games and understanding them opens up lots of possibilities
Got it working, thanks for the help. I had an empty container initially that was following the position of the player with the orbs as children, I just didn’t know about the customSimulationSpace parameter so I scrapped that and tried a few different things. That looks like that was the one thing I was missing. Very much appreciate the help @arkano22 . Will definitely brush up on my vector spaces, that was the one class in college that was my nemesis.