How to do this trail?<Battlerite>

hey guys,I saw this effect in battlerite.but i dont know how to do this.pleasle give me some advice

i dont know how to do its trail? use mesh panner uv ? or particle ribbon? and how to do this distortion shader.
pleasle give me some advice
thank everyone so much



Trail would be easy to do by just having 2 spiral meshes and scrolling a mask over it to make parts of it visible over time.
Just scale up the mesh in the side and up axis to get them to scroll out and fade opacity over time.

I’m not sure, but I don’t think there is a distortion shader on the effect. You could easily create this using only translucent and additive shaders.

Good luck :smiley:


Hey, the trails are just ribbons. They are being rotated and moved out to the side over time.
There’s no distortion.
Cheers! :slight_smile:


This is how I would have done it so I could depend on the trail not having any framerate dependency with ribbons. :slight_smile:
But lime suggests otherwise.


hey,thank you so much.
i just see unity 5.4 , particle system has a new function, paricle trail. wow amazing! i always use 4.7 so don’t know.
thanks so much.
in addition, is this trail same?


By the way, how can you apply noise/turbulence to particle trail renderers in Unity? Is it possible in not too expensive way?

I come up with two options:

  • Use vertex offset in Shader (but I don’t know about it, because of Billboard rendering of trails)
  • Change transforms of trail in script (I think this is pretty expensive, especially when trail have many triangles)
1 Like

You could just add particle system and, in the Emission tab, set the Rate over time to 0 and add a value to Rate over Distance. Then just play with the start size/over lifetime and add some trails in the trails tab. And end that with a noise.

Check my Demo Reel at 0:24 where you can have an example :

Update: don’t forget to drag the particle system that is used as a trail as a child then just use some script to move the projectile.


Thanks, but this is not exactly what I asked. Here is the example - Mr_Pol: Sketch#7 WIP

Turbulence/noise constantly affection trail’s positions.

1 Like

Hey. no problem! :slight_smile:
We use our own trails.
This is almost the same, the difference is this has scrolling uvs.



Sorry for reviving an old theme :smiley:

I’m trying to replicate the first trail, with the arrow in UE4. I have a question about ribbons. In this trail the texture seems to holds its place while it revels by distance. The further the arrow goes the ribbons just shows more. And at the end the texture scrolls in that direction and goes outside the ribbon.

Im having problems because my ribbon is using the texture and stretches it on the ribbon. At the beginning is squashed and later it stretches by distance. When the source dies, the texture stays on the ribbon and squashes to its death.

Can anyone help me with this?


I believe to fix the squashing you want to set the Coordinate Index to 1 on the TextureCoordinate node inside the trail material for UE4’s ribbons.

Difference between using UV0 and UV1:
UV_0 UV_1

You may also want to play with the “Tiling Distance” setting on the Ribbon Data module if you’re also using the Spawn PerUnit module.


@sskar Thank you! :smiley:

I will try it out, but i think it will work. Never understood what the Coordinate Index does :slight_smile:
And I am using Spawn PerUnit so i will defenetly tinker with it too :smiley:

1 Like

Never understood what the Coordinate Index does

The default index maps your texture across the whole length so it gets squashed or stretched depending of the global length. It’s good for masking the edges of your ribbons.

The index 1 is going to tile your texture across the length instead.
I can’t remember where is it you control your tiling, it’s been too long since I last used Unreal.

actually your answer is here:


@mkalt0235 Awesome, thanks! :slight_smile:

I get it now, will try it out and post the results :slight_smile:

1 Like

This is the way the trails and ribbons were coded in unreal so this is what index 0 or 1 does in that particular case but ultimately the index could mean many different results.
If you work with your own meshes you can create multiple UV sets and the index is going to pick which set a particular texture is going to refer to.

I’ve used spheres with 2 UV sets in the past. One with a planar projection, the other for spherical. I can’t remember why exactly, but I needed some textures to behave differently within a single material so I would pick index 0 or 1.

To give you another example, our characters have 2 UV sets. One were the character artists do whatever they need, the other one which we use for effects.
In their set, hands, eyes, body are split on different materials.
On the second set, the whole body is there and it’s layed out so the scale is even. This set is used for localized ingame blood splatters and global effects such as petrifying a character at run time.

1 Like


I did try out the coordinate index and tiling. It works. But the problems is that only the spiral texture uses that technique.

As i can see the fire around the arrow needs to travels with it and then it goes beyond the border of the ribbon when the arrow dies. Mine just reveals the fire texture just like the spirals. How do you think that is done?
Is that possible to do with dynamic parameter that scrolls the texture?


Can anyone help with the red fire around the arrow? :slight_smile:

1 Like

Hello, me again :smiley:

Different trail in question now, but it relates to most of the Battlerite trails as i can see.

How to do the Ribbon spiral scalling its radius over time?

And is the Ribbon attached to a rotating source?

1 Like

they might have some custom functionality to increase trail width over lifetime. In unity you would set the width of the trail to a curve.

Or potentially the trail is a custom mesh that spirals and becomes wider at one end. The effect is always straight?

1 Like

yeah its straight but its dynamic range. So ribbons are used fo sure.

I used parents like this (Cubes are just for presentation). So the one in the center is translated up, and rotated on Z axis. 2 Side parents are his children and offseted, and i attach ribbon emitters to it. The Ribbon emitter has velocity in 1 axis so it goes outwards by time.

Dont know if this is the right way of doing it Battlerite style, but it works. So, i hope this helps someone :smiley: