Stars' light trails

I try to figure out how to have a light trail on stars, depending on the speed and the orientation of a ship.
The ship is seen as a third person.

I’m totally newbie with the particule system, but I first thought to create stars from a sphere in Cascade, to add a kill box to hide the ones too close to the ship, then add a ribbon emitter that I source to the first one’s particules.
But it can’t work, because the stars created from the first emitter don’t have to move depending on the ship position/orientation, so the ribbons can’t be visible.

It may be like the Motion Blur parameter turned on in the PostProcessVolume, but I want to see the motion ONLY on the stars and not to everything visible.

Any idea?
Thanks :slight_smile:

So you want to make kind of warp speed jump effect?

Try making emmiter with trails but check “use local space”
And add velocity. Spawn emitter stars in cylinder around ship.
Then control transparency/color of stars and velocity vector from blueprint.

Or you can make open tube mesh (only sides), flip faces so they face inside
Then make stars material that instead of stars has linear gradient lines.

To simulate “stripes”:
Use interpto on that gradient. Or just multiply, power and clamp, to control length of stripes.

Best would be to control length of those stripes with uv coordinates, but this also shifts origin point of stars.
I cannot think of such method (uv manipulation) that does not shift origin.

PS. There may be possible to do this effect with postprocess volume, that is kind of “smart” linear blurr.

Thanks Nawrot.
Yes we need a kind of warp speed effect, but this effect is caused by the velocity of the ship.
So if the ship doesn’t move, we just see the stars with no tail effect.
When it moves, then we can see the stars’ tails, and depending on his velocity and orientation, the tails will be longer and orientated to the same direction that the ship is.

The postprocess volume may be perfect excepted that it’s applied to all the moving objects, and we want it just to the stars.
Someone had the same issue with his GUI blurred depending on the motion blur, and he fixed it by adding it to a different renderpass. That’s an approach that I have to try too.

is there not a streak particle type? if so I would use that and tie the length to the travel velocity. Also just a though I would use a gradient with the full spectrum with white in the middle then the reverse so that as the streaks got longer you get a rainbow effect similar to what you see around ships at warp in star trek.

Do you have stars as actors in 3d space or only as material on skybox?
If you have them on skybox only as bright dots on texture then i am afraid only postprocess will work if you want to have trails exactly where stars are.

However i think that best (and easiest to do) would be effect as this:
Use material for star skybox, add to there hue shift to modify final color of stars.

When your spaceship accelerates, use hue shift to simulate shift to purlpe color in direction you move , and hue shift to red behind you , and lower brightness of stars, so all your stars will shift realistically. For more realistic view you should “pinch” all uv coordinates on skybox in direction you are moving your ship. Then when ship gets to speed of light, do very bright flash of skybox at direction you move.

Above hue shifts and brightness gradients you can easily calculate from dot product of ship velocity vector and negative normal of skybox. You will get nice constant gradient, pass ship velocity (normalized) as parameter to skybox material.

After that (right when you do that flash of going to FTL) you may spawn 100 or so star emmiters with trails.

I think this is easiest way to make FTL trails without much immersion breaking artifacts. Anything else may be just complicated hax.

AS for trail particles:

You can use beams with zero randomness and very long beams (i think this is easiest on engine)
or use trails, or use lots of stretched i velocity direction dot particles (but this will use lots of them)
Also use “local space” for particles, with initial velocity, and pass that velocity as parameter or rotate emitter.
Spawn all stars randomly around from single emmiter, not 100 emmiters that each spawns 1 stripe.