Niagara particle mesh scale does not scale the WorldOffset of the material like Cascade did?

I recently ported a particle system from Cascade to Niagara, which went pretty well (using this plugin) but has one problem!

I’ve got a simple mesh with a material that has a lot of WorldOffset, and the particle system grows the mesh over time. In Cascade, the scale of the material’s WorldOffsets was always proportional to the scale of the mesh. However, in Niagara, the material’s WorldOffset scale is static, which means it’s too big when the mesh is small and too small when the mesh grows bigger.

Here’s an illustration for what I mean. “What I want” is the Cascade way.

This is what it actually looks like in game, Cascade on the left, Niagara on the right.

This is when the mesh is small, it’s a bit hard to see, but notice how much more spikey the Niagara (right) version of the particle is. This is the same mesh with the same material, so it shouldn’t be different at all!

How can I get Niagara’s mesh scaling to keep the WorldOffset values proportional like Cascade did? Do I need to edit the material somehow?

Answering my own question for people who find this in the future:

World Position Offset is not naturally relative to scale. You can prove this to yourself by making a plain sphere staticmesh, covering it with your material, and just scaling it up and down in a level.

What you need to do is get an ObjectScale node in your Material and multiply that with the float3 you’re using for World Position Offset.

1 Like