How do you make a particle's "add velocity" rotate in the direction of the parent's orientation?

I thought this would be easy but apparently not, and I can’t find any other forum posts talking about this which I find really surprising. Basically, I want to be able to have an object that’s rotatable on all 3 vectors by the player, and have a particle always firing straight out of a specific face of the object no matter what angle its rotated at. I’ve tried doing things like setting the rotation mode to yaw/pitch/roll and getting the XYZs of the object’s foward, up, and right vectors for it every tick but that didn’t work, and neither did setting the cone axis to the same thing. By the way, I’m wondering about this for both linear and in-cone velocity as I plan on using both at different times.

To make a particle’s “add velocity” rotate in the direction of the parent’s orientation, you need to align the particle system’s velocity with the parent object’s local forward vector.

You can achieve this by dynamically setting the particle velocity in the direction of the parent object’s forward vector. For example:
First create a particle system and add a dynamic parameter named VelocityDirection. Attach this particle system to your object in its Blueprint. Then, in the Blueprint’s Event Tick, get the object’s forward vector and set the VelocityDirection parameter to this vector. This way, in every frame, the particles will adjust to the object’s orientation, ensuring they always shoot out correctly regardless of rotation.

It’s been a while since I did this, but this is like an overall idea/outline.

Could you show me how you do it? Because I tried this before (and tried again now for posterity’s sake) and it does not work for me, both for the velocity’s axis vector and the rotation (and both linear & cone velocity).

Update: Apparently I managed to accidentally disable local space on the emitter properties at some point, and this was the cause of the problem. I feel dumb!

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.