Due to the overwhelming success of a Reddit post in the Reddit Unity3D community, I’ve been asked to do a breakdown of how I managed to achieve the visual effects for the Stormlord spell, and the Demonic Invocation spell.
An important note for all of these effects. They wouldn’t look nearly as good as they do without a good bloom effect on the camera. I’m using Beautify which you can find on the Unity Asset Store.
First we’ll start with a point light placed a few units off the ground, casting a light blue light in the area.
Then we’ll start with our first particle effect. For this effect, we’re using an asset from the Unity Asset Store called the Magic Aura Set. I’m not an artist, so I pull most of what I need from the asset store.
The particle system is set to render as a mesh (quad), facing up, about 0.25 units off the ground. Don’t forget to set your material to use the Particles Additive shader!
I’ve set the color over lifetime to fade in and out, and the emission to 10 so that we get a nice, smooth glow effect on the runes.
Now lets move on to the lightning effect. Specifically the inner lightning effect (as there are two separate ones). For this visual effect, I’m using another asset called Town Portal Spells VFX. Our particle system is set to render a mesh (sphere), using the texture sheet animation. Color over lifetime is set to fade in and out very slightly. The shape is disabled (so we render at a fixed point). The 3D Start Size is enabled, and you can play around with this to get the sphere to be the correct dimensions for your effect. We’re also spawning it with a random rotation around the Y axis. The lifetime is set to live between 0.15 and 0.3 seconds, with an emission of 10.
Next up is the outer lightning effect. Its exactly the same as the above, except that we’ve modified the 3D Start Size to be larger, and brought the emission down from 10, to 1 making it less frequent.
Then we’ll look at the inner spiral effect. This is using another texture sheet animated effect from the previously mentioned asset package. We’ve set it to render as a horizontal billboard, with rotation over lifetime set to a high value (500ish).
Color over lifetime is set such that it fades out gradually. The shape is turned off, and the emission is set to 6. The start size varies between 10 and 12.
Now lets examine the twist effect. We’re using another texture sheet animated effect from the same asset package, set to render as a mesh (sphere). Rotation over lifetime is set to 3D with only the Y axis rotating. Color over lifetime is enabled (as always), and we’re using 3D start size to set the size of the sphere just like we did with the lightning effect. We’re also setting a random 3D start rotation with only the Y axis being random.
Lastly, lets look at the particles that look like they’ve been caught up in a storm. This is one is probably the most simple and uses just a few tricks to create this illusion. We’re using a standard billboard renderer with a fairly standard material (you can draw this yourself, its not hard). We’ve set the shape to render as a sphere with a radius to match the rest of the effects. We’re completely randomizing the start rotation, and the rotation over lifetime is 3D and ranges from 0 to 360 on X, Y, and Z. We’re using noise to give the particles some life, and then using a simple rotation script to rotate the entire particle effect on the Y axis. You can find scripts like these everywhere, or just write your own.
And that’s it for the Stormlord effect. Layer these effects together, and this is what you get!
Demonic Invocation Effect
Just like last time, we’ll start with a point light, this time set to a reddish/orange.
These runes are just like the last set of runes, just using a different material from the same asset package.
This time we’ve got some black runes set to render via a mesh (quad) slightly above the ground. We’re only emitting one particle at a time, and setting the size to our desired size. Very simple effect.
We’ve got this kind of ‘glow’ effect going on for this effect. Again its a mesh (quad), with a random rotation between 0 and 360. Color over lifetime is set to fade in and out, and rotation over lifetime is set to range from -10 to 10. Also, we’ve got the same particle rotate script from earlier on here, rotating along the Y axis.
Next up, we’ve got an effect that everyone asked about over in the Reddit thread. There’s actually two particle effects happening here, but they’re both very simple.One is just a circle that is emitting black particles to float up with negative gravity and noise enabled. This particle also has a sub-emitter enabled to render the trail. The sub-emitter just renders with distance (world position), and the particles decrease their size over time. Very simple!
This one’s a bit tricky. We’re using the tp-blue effect from the Town Portal asset package with a mesh (capsule) renderer. The texture sheet animation is on, along with color over lifetime (fading with color changes). We’re using a 3D start size with 6 for X and Z, and 1.5 for the Y. We’re using 3D start rotation to randomize the Y axis. The real trick here is that we’re using size over lifetime with the 3D setting on, keeping X and Z the same, and having Y increase from 0 to 1 over lifetime.
This twist effect is the same as the one for the Stormlord effect, but we’ve reduced the size and changed the color.
This is probably the only effect I won’t give a lot of details on. Its basically just two particle effects (a black one, large), and a red one (smaller and inside). Then I have a particle orbit script (you can find scripts like this everywhere), which makes it orbit around a given position. In my case, I have one orbiter start at 0 degrees, and one start at 180 degrees.
Lastly, the embers. This is just a simple particle (easy to draw), set to billboard with a circle shape and some noise. Negative gravity (-0.2) makes it float up. Randomize the start size and the lifetime a bit, and tada, its done!
And that’s it. Stack it all together for a really demonic effect!