WARNING : This site is outdated and the PopcornFX team will no longer answer your questions here.
For all support questions please go to our Discord server
0 like 0 dislike

Is there a way to make a ribbon have both ends attached to different points in space?

Or make a billboard behave like a soft cloth?

Thank you in advance. Something like this is what I'm trying to achieve (glowing string in shoulders):

by anibaaal (120 points)

1 Answer

0 like 0 dislike


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.


by Maxime (5.4k points)

Thanks a lot for this elaborate answer, this was certainly helpful, however I wasn't able to reproduce your steps.

I must say that this is all on me, I'm not a game developer, nor a VFX artist. I'm simply modding a game called Trove, as the game is based on user created content and I wanted to achieve this effect for a creation that I had in mind.

I got into PopcornFX because of this game, and I've learned enough to make very simple stuff, but nothing as advanced as this.

Anyway, thank you very much! And I'm sorry, I thought there could be a simpler way.