Beam VFX with multiple colors based on line trace
Change the color scale of the whole system with only one parameter?
Use a color curve to define each material
Add a curve atlas to the content folder
Then add a curve with the Linear Color class
Add some random colors to the curve
Edit the curve atlas's texture size to 128 width, 4 height, and assign the curve we just added to the Gradient Curves array
Since we're about to use a curve to define the color of the emitters, it's necessary to custom materials for them
I used the water normal and metallic texture in the starter pack to create this Voronoi effect and masked it with the Linear Gradient
The key thing is to multiply the mask by this curve parameter at the very end with our curve stuff assigned to it
Assign the material to a dynamic beam emitter preset with customed Beam End and Beam Width user parameters
And we have this result already
I duplicated the beam and made it slightly thicker with this material to create a black area around it
It has to come out from somewhere
Make 2 more materials to control the color of more emitters
a tiny trick to distort any texture
Assign them to the Single Looping Particle preset
Creating fire effect using UV animation with the fire sub uv from the starter content
What it looks like so far...
We'd expect something cool when it hits the ground!
Use the fire texture in the starter content to create this decal material (colored with the curve)
Wait, we do have the decal renderer but how do we adjust its size?
We need to find it here by typing "decal size" under particle attributes menu
Made this from the fountain emitter preset with a collision node add to it
Add a vortex force since the whole thing is spinning
Grab the previously made Core, Glare and Fire nodes to build this
And here's the result-
Additional blueprinting is needed to make it actually game-ready
Linetrace forward and return the hit location to be the beam end, with a maximum trace length
Then apply it to both of our systems-and make a public variable to control the beam width
Update it every tick, and spawn decals on the ground for an interval