Reimported all animation and scaled sparks up for better visibility. (The car is grey because textures hadn't been added yet.)
One comment I kept on getting from Professor Fowler was that they couldn't be seen, so I decided to test variants of their size and emission (size = 2 and emission = 1 in the above video):
Fountain Integration (02/07/2020)
I made a quick model of the cold spark machine and triangulated it for Unreal. I had to rotate it by -90 degrees on the X-axis to make it face Z-up by default when imported into Unreal.
In an actor blueprint, I imported the spark machine static mesh and then set up a blueprint that would spawn the fountain fireworks when the scene is played. It takes the world location of the blueprint and adds an offset to make the fountain spawn at the nozzle. This blueprint can now be placed anywhere in the level and will spawn the fountain fireworks when the scene is played.
Fireworks Fountain (02/05/2020)
For this iteration, I focused on pushing the look of the sparks to match reference. To keep it efficient, I changed the spark system to compute on the GPU instead of the CPU. GPU particles also allow more particles to be computed while minimizing computational time. One limitation of GPU particles is that they do not support all features of Niagara, including location events, which is why I couldn't use them for the sparks or the fireworks.
I changed the alpha over life values slightly to match my reference. Additionally, I ended up customizing the velocity quite a bit. A curl noise was added for variation, and I ended up tweaking the velocity so that it would drastically increase in X and Y values as it neared death, causing it to flare outwards. Setting variables in Niagara without using a Niagara Module script can be painful, but I did it. Here's the VEX equivalent:
Fireworks Fountain (02/04/2020)
After our meeting on yesterday, it was recommended that I switch to fountain fireworks similar to those found at concerts or other events. After a bit of digging, I found that these fountain fireworks are actually cold spark machines, which create sparks that are safe to touch. Some reference I found:
I set up the spark machine as a single emitter within a niagara system. Add Velocity in Cone helped me get the desired shape. A custom material modified from the default sprite material was used to get the glowy look of the sparks without adding a light emitter.