Rotate Particle System based of Actor Rotation

Hi,

I’m trying to setup a Heat Distortion Particle Effect below my Actor’s root mesh:

It works as expected until I roll the ship - the Heat Distortion effect follows the socket correctly, but the direction of the effect stays the same (from top to bottom), so if I roll the ship 180 degrees, the effect still commute from top to bottom whilst it should render as bottom to top:

This happens because I have a TextureCoordinate with a fixed value connected to the Coordinate node of Panner:

Is there a way to dynamically change the TexCoord value based of my main Actor rotation?

Thanks.

You can add a [Custom Rotator] node between the [TexCoord] and [Panner] and drive it with one of the dynamic parameters that you already have in the material. [Custom Rotator] takes values from 0 to 1 which represent rotation from 0 to 360, so you’ll have to interpolate the rotation of your plane into 0-1 value.

BTW, you’re using a float variable as panner speed, it makes the texture move diagonally. You can either use a 2vector or set the speed in the panner node itself for it to move only on one axis.

P.S. What kind of material is that? It seems to be translucent and unlit, but takes a normal map in. How do you achieve that?

Hi, thanks for your reply, I’m gonna check the Custom Rotator and learn how to get it with a DynamicParameter.

Yeah, I noticed it was moving diagonally but didn’t know why, will check the 2vector node.

The material comes with UE Starter Content, check P_Fire and inside it you have a Distortion Emitter using the material M_Heat_Distortion, which is the one I’m using.

So I’ve created a new MaterialParameterCollection

Then linked it to my material

And finally set the rotation on my Pawn Event Tick

Now it is rotating as expected, thanks for the directions!