I managed to make a proof of concept of what you wanna achieve.
There should be several way to do this, the best way may be to use spatial layers, if you don't know what they are, take a look a this video. And maybe look at this page too. Despite the fact that it should be really cool to implement it that way, spatial layers are very expensive, and you should try a sober implementation.
An other approach could be to spawn infinite ribbon particles, from an initial position to an end position (the 'both ends'), and lerp the position depending of their distance of those 'ends'. Afterwards you can add different behavior to give it that cool shiny physically arc ribbon.
First, you will need to save some values in the spawn script:
- the ParticleId : id of the particle along the ribbon
- the RamapedId_01 : range between [0, 1] 0 = first particle, 1 = last particle, 0.5 = (n/2)th particle
- SpawnCount : total number of particles.
Then, in the evolve script, you can lerp the position depending of the particle distance from the closest 'ends' (look at the linked picture).
You should have a smooth position interpolation, and should be a good start for your effect.
Here, InitialPosition and EndPosition are sampled from ShapeSampler, but if you want to bind them to bones in an Engine, use attributes instead.
Here, some pictures:
Please tells me if you were able to reproduce it.
Just a last word:
This kind of effect is certainly doable with PoprocnFX, but, depending of the engine you are using, you should use engine incorporated feature, like a SkeletalMesh or a HingeJoin, since you may want to apply some physics, or others interaction with your game scene.