Ribbons/Trails for Swords/etc

Overview

Info and Caveats about using Ribbon Emitters in ATLAS.

Reference

https://docs.unrealengine.com/en-us/Engine/Rendering/ParticleSystems/Reference/TypeData/Ribbon <https://docs.unrealengine.com/en-us/Engine/Rendering/ParticleSystems/Reference/TypeData/Ribbon>

Parameters

Max Trail Count

  • Should be ‘1’ - you are only creating one trail for a weapon. ‘30’ would be if you have 30 parent particles flying around and they are the ‘Source’ and you want to emit trails from all of them.

Spawn Rate

  • Is supposed to equate to ‘Particles Per Second’, so best guess is making the Spawn Rate 30 fps (with Rate Scale set to 1.0) might help the ribbon emission match up to the Animation better which likely updates at the lowest at 30 fps (not sure if it is playing at 30 fps or 60 fps).
  • (Try to make sure you are emitting every frame, because the tessellation can help smooth it out, but those areas pop in/out when particles birth/die. So it needs a combination of higher emission rate and then tessellation enough to smooth out the in-between areas)

Tiling Distance

  • Is “The (estimated) covered distance to tile the 2nd UV set at.” So if you have ‘5’ you will be creating a new UV 0-1 Tile every 5 units in World Space. If you have it set to ‘30’ you will be creating a new UV tile once every 30 units of World Space. The Tiling is based on world units and not any parameterization of the Ribbon. So for less tessellation (and therefore polygons) you need a higher ‘Tiling Distance’ value.

Distance Tessellation

  • Step Size that can help round out some areas in-between for fast moving swishes.

Ribbons UV co-ordinates

  • You can fade ribbons with with standard particle point color/opacity with ColorOverLife in Cascade as long as that is hooked up in your Ribbon shader.
  • The other thing you can do is if you checked ‘Tiling Distance’ it creates a second UV set. The standard UV set (UV0) goes from 0 to 1 along the full length of the Ribbon but the second tiling one (UV1) tiles but goes from 0 to the number of tiles that get created based on the Tiling Distance you set (and you can choose either in the TextureCoord Material Node by setting ‘0’ or ‘1’).
    • So for the Tiled UVs it might go from 0 to 5 (not 0 to 1 repeating over the ribbon) and your repeating texture just tiles nicely. This does allow for a better ability to select just the first tile by clamping the second UV to 0-1 to avoid a hard beginning edge, by the way.

Best Practices

Ribbons Bounds Issues

  • Another issue that happens with Ribbons is they will not render due to the size of the game world without fixed bounds.
  • In the emitter properties check “Use Fixed Relative Bounding Box” and set the dimensions to 1000 for X, Y and Z- or whatever is necessary depending on the size the effect takes up in World Space

Best Working Settings

  • Select the Ribbon module in Cascade and use these settings in the details tab for the best ribbon functionality in game.
../../_images/BestRibbonSettings.png
  • Use either Camera Up or Source up whichever works best for your fx and socket orientation
../../_images/RibbonLocalSpaceSettings.png

Known Issues

  • Ribbons on ships are still a problem and do not work correctly with base space.
  • Use Local Space and Force Absolute Local Space without local space uses base space enabled.

Ribbons with projectiles (World Space vs Local Space)

  • It was noticed during testing that Ribbons had segmented, hard edges when they were emitted in ‘World Space’, but when set it to ‘Local Space’ the ribbons silhouettes were nice and smooth. But the ‘Local Space’ caused some other issues, so test and make sure it works properly for your use.

Warning

read section about Base Space for creating Ribbons for Projectiles

Note

Using Ribbons for Projectile Trails is normally frowned upon if there ever might be a large number of projectiles in a scene at once due to performance concerns.