Unreal Niagara Fish WPO Example

Deforming a fish-mesh to let it wiggle is a common task. Took a while to get it running, though (thx to weird transforms).
ezgif.com-optimize(5)

Notes

:information_source: Particles are aligned along velocity (set in Mesh Renderer)

  1. Classic calculation but using the usual Object Position (Absolute) did NOT work! Had to use ObjectPivotPos !
  2. Make gradient be aligned along the Particle Mesh (X-Axis)
  3. Offset Fish Mesh along the local right/left

10 Likes

Is there a reason why you’re choosing to handle the offsets this way vs pushing the vertices around based on UVs?

In looking closer at the mesh, I may have reasoned through my own question.

It looks like you’re using a full 3d fish mesh? In which case, to do this with UVs you’d likely need a custom UV set in order to push the verts around with this motion, using vertex normals and a texture. Those UVs would probably look something like a side profile of the fish mesh and the results probably wouldn’t be very good, when looking from top down like you’re showing here.

Curious if you have other thoughts though! I appreciate the breakdown, I’m going to try this out on my end.

Yes, you are right. I could use a 2nd UV but I wanted to save the UV data and also find out how to do it in the shader - as a little challenge :slight_smile:
But you can not use the Vertex Normals. It would make the fish grow/shrink. To give it a wiggle-motion you need a constant “side-way”-vector modified by sine.

2 Likes