Niagara Ribbon based on User Position Array


I’m a new to Niagara Particles and I’m looking for an approach to my idea:

I made a custom rope blueprint. The rope wraps around object, so the rope consists of start- and end-point and optional wrap points. All those are stored in a vector array.

Now my plan is to use a ribbon particle system to display the rope. Every tick I’m feeding the array with the positions into a Niagara System, where I have a User Position Array named ‘RopePositions’. That’s working so far. But how would I tell the ribbon particles to use the array’s positions? My current approach is a module, that gets the ExecutionIndex of the current particle and uses it as index in the position array. That value is then used for the current particles position. (see picture below)

That is not working too well though, the ribbon is jumping between points seemingly randomly. Is this the wrong approach, what might I be doing wrong? Maybe “Execution Index” is not the correct way to address the current particle? Please keep in mind that the array is changing in size, depending on the wrap points.

Thanks in advance!

1 Like

Use the particle ID instead, not the execution index.

Thanks for the answer, that didn’t improve it though. But now I also output the execution index into the Ribbon Link Order, and now the Ribbon knows which order it has to connect the positions and isn’t jumping anymore.