Hi everyone, my name is Sid, though you’ll also find me as Sidremus online. I’m the resident VFX artist on the Sanctuary team. Welcome to my first developer log!
A few words about me, before this endeavor I’ve spent what feels like an eternity in the academic world, studying Philosophy and English, and working at university as well as a pretty wide variety of odd-jobs. All the while I’ve been looking for and finding ways to express myself creatively. Drawing, painting, photography, 3D modeling and I’ve been gaming, of course. I’m a severe Sci-Fi nut, and while I have my favorites, of course, I’m really not that picky. The easiest way to win me over is with big, flashy, very cool, super futuristic special effects. Think laser beams, big explosions, energy shields, plasma grenades, etc. I love seeing them, I love making them, and now we’re here!
Today I’ll take you along through how one of the visual effects is made. We will start where I usually start, the problem:
The Guard needs a new projectile
To begin, we have to find out what the effect is supposed to accomplish. Every bit of VFX has to find a balance between pure visual flair and communicating relevant gameplay information. What does that mean in practice?
Consider the burning Eiffel Tower from the level Burning Paris as seen in Killing Floor 2 versus the “Hadouken” of Ryu as seen in Street Fighter.
The tower is a perfect example of a purely-for-style effect. It’s positioned quite far away and out of the playable area of the game. It’s in the background and can not be reached by the player. It’s only there to improve the menacing atmosphere of a post-apocalyptic Paris. Making it may have had some technical constraints, but creatively speaking, it’s whatever-looks-good.
The Hadouken special attack on the other hand, while still pretty cool visually, has to accomplish a lot more. First off, it has to accurately communicate the hit-box of the attack. For this it’s especially important that the forward facing edge is sharp and that the flames on the sides don’t extend so far as to imply that the attack is dangerous beyond the area it can actually hit. The timing of the animation (not pictured here) should also match with the traversal speed of the projectile as to not mislead the eye and thus allow for precise evasion with good player inputs.
So how does this relate to our Guard projectile?
On the one hand it has to look the part. Taste is ultimately subjective of course, yet we can measure the quality of this effect by how well it fits the visual theme of the world it’s in. In our case that means it has to fit:
Sanctuary, a game set on a Dyson-sphere in the far future of our solar system.
The Guard, a faction consisting of an AI controlling uncountable machines that exist to protect the sphere. Visual style markers are raw looking machines, built without regard for human comfort or aesthetics, and the bright flames of the sun, from which they draw their energy.
On the gameplay side of the constraints we’re actually pretty lucky. Since Sanctuary’s battles happen on a pretty grand scale we have to keep in mind the following:
You’re not going to be expected to dodge single, low tier projectiles. So we can be a little looser around things like impacts and precise collision.
It’s a smaller projectile, fired from a lower tiered tank. While it should still look deadly, it also shouldn’t overshadow the effects of larger, more powerful weapons.
Since most players will be far enough away while managing their forces, the effect has to be read from a good distance still. While subtle detail is always nice to have, it will probably be lost to the viewer most of the time.
Since it’s moving pretty quickly, it should give some indication of its direction. This is important especially in singleplayer/replays as the game can be paused at any time and the player should still be able to know which direction things are moving when they’re frozen in time. A trail will help us here. More on that later!
The animation has to allow for variable flight times. That means it has to loop seamlessly without visibly skipping to the beginning of the animation.
Out with the old
The old test projectile is functional, but it’s a bit too simple for our taste. It’s generic to a point where it could be from any faction that uses energy weapons and doesn’t say “Guard” very much at all. Also, it looks a little too familiar and we wouldn’t want to get sued by the Mouse.
Very early build. Useful for testing code, but not good enough to ship.
So, let’s use Adobe After Effects to make ourselves a nice new, fiery solar projectile!
The phases of making an effect.
Here’s what I did, I sketched in a basic shape I had in mind, then grabbed a stock effect which has two very important features. It can be made to follow the mask shape I’ve drawn and it has properties that can be animated over time. After that’s locked in, I’ll add a couple of effects to make it a little more dynamic, then I fray and mask out the leading edge and finally bring it back a bit to make it more pronounced.
After that the animation process starts. I render the entire clip as a black and white image sequence, and, while I’m at it, make it loop seamlessly by doubling the clip and making it fade in on an earlier part of the animation. This is a neat trick, though it only ever works with pretty chaotic visuals. No luck for things like walking animations or the sort.
Then it’s time to export the entire thing as an image sequence before a transparent background. Finally, this is then assembled into a sprite sheet, which the particle system in Unity can sample from.
A looped 16-frame fireball effect.
Overall this process, I reckon, is highly individual to me. There really isn’t one way to make VFX and while some tools out there are more common than others, probably every artist has their own way to make these kinds of effects.
V is for Visual, F is for Effects, and X is for...
So, we’re now finally switching over to Unity. The Unity particle system, Shuriken, is quite powerful and to give just an overview would already take too long here. However, the gist of it is that the sprite sheet we have can now get fed into Shuriken. In the particle system about a million parameters can be set for our projectile. Emission, lifetime, and its movement will in the end be determined by the game logic. However the things we do want to control still are how it looks.
While I’ll make it short here, this is where I spend most of my time. Now comes the endless fiddling to get it all to feel just right. The animation we built is played back, frame by frame, at a rate we can set. We’ll also add some extra glow so the particle will be picked up by our post processing. Size matters too (at least for particles). For the final bit of Zwoosh, a little trail of sparks. They are also particles, by the way. So all the controls we have for our main particle, we have for those too.
Here I’ll use some very versatile stretched, white lines. The faster they are, the longer they are too. And they’ll inherit some velocity from the main particle and wiggle around a bit from random noise. At the end of it all, we end up with this:
What a better looking projectile looks like.