So, the tangents are calculated in code (using the velocity of the characters, the direction of the beam, and lerping between last frame(s) and current frame). Then pushed directly into the particle system as parameters. Could be done in blueprints as well, we just coded it for performance reasons.
I can then controll the ‘stiffness’ (by adjusting over how many frames tangents are lerped), and also how much the beam bends, right inside the particle system by adjusting the output values.
In addition we measure the beam length, so that it bends less when going further away.
Unfortunately I can’t share exactly how it works, but it looks similar to this inside the particle system:
We didn’t really concept vfx (would have been nice though ), I just created color schemes that would fit to each characters primary/secondary colors. We used LUTs/GradientMaps for most of the fx, also originally thinking we could create vfx skins relatively fast, by chaning the LUTs. This idea was scrapped later though, as it just really doesn’t work so well. It works for some effects and breaks for others. It’s also really hard to create all effects for a character re-using exactly the same LUTs etc. Saved me a lot of time though, as I was the only vfx artist on the project for most of the development.
Here are some of the LUTs we use: