#Progress Report

Sep 27, 2013
3:46 PM
Steve Says:

3D Pixel Effects

Getting my head wrapped around doing effects for Super Hematoma has been a real challenge. I actually took some classical animation in college, but that was really focused on character animation more-so than effects. In fact I think I only did a couple of exercises on paper that involved any sort of effects, so it wasn’t until I started learning to do fluid dynamics in Maya that I began to really think about that side of production.


So starting my career with fluid dynamics, and then moving from there to particles, rigid bodies, and procedurally generated shader and geometry effects means that I probably think about things differently than a traditional or pixel art effects animator would. I’ve been reading through Joseph Gilland’s Elemental Magic books (Vol. 1 & Vol. 2), and there’s a lot about the character of effects that is really good to have introduced to my brain. It’s very different than the line of thinking I’ve developed over the years for realistic looking effects, and it’s a challenge to think differently.


I’ve been trying to work on the fire effects for Super Hematoma. As I discussed last time, we’ve got a level that catches on fire. Because this will be multiplayer and people will be at different points in the stage when it ignites, this means we’re going to have to have some sort of a flash/ignition effect, the flames will then spread across the level, cycle, and then die out. When dieing out, characters may be able to restart the intense burning cycle again and keep the flames going. I don’t think I’m going to be fancy and have any sort of extra flare-up happen if characters splash about in the liquid while it’s on fire. And of course, since there is a 3d environment, we’ve got to have the flames properly being masked out around rocks etc.


I’d kind of forgotten about this when I set out to start animating the fire that will happen from our molotov weapon itself:




You see, I started trying to get a nice flame going here that would spread out from the impact source, and then allow us to cycle the flames, and then have them die out. This is similar to how the flames will burn on the whole oil field. I was kind of pleased with the fire that I’d started, until I realized two other things. One: this fire really is kind of flat given that the games takes place in a three dimensional world… and Two: we’ve got platforms, and obstacles in this game that the fire will need to contend with. It can’t just be a one off crafted fire like what you see above, because in the event that the flames occur near the edge of something like a cliff…




…we run into a problem where I’m not really sure of a good way to deal with the flames. Afterall, we don’t really want flame burning in mid-air. Clipping the sprite looks atrocious though.


So what’s interesting/horrifying, is that (I see no other way around it) we’re going to have to build a particle system for our game the same way that we would be required to do if we were making a fully 3D game. Yet, if we’re going to maintain that pixel art look to everything, the flame really should still remain as a fairly straight forward sprite similar to what we’ve got below.




I’m sure the fire isn’t the only thing that will make use of particles. Maybe we should throw the clouds onto a particle system now. Instead of having one repeating tileable card that pans, we could just populate the clouds semi-randomly each time the level opens. We could have each individual cloud pan at an ever so slightly different speed. Exciting in a way, but it’s a bit of a set-back to have a new thing to engineer. It also means that I’m thinking about the fire differently now too. Whereas I was planning on having a bit more of a cartoony solid color to the flames (not just a single color like what you see above… but still opaque), I’m now looking at the fact that we’re going to have particles with sprites spread around a 3d scene. And transparency goes a long way to selling depth. For example if we look at this test below:




Ignoring the fact that we’ve got a single flame animation instanced around the character… and ignoring that the character is able to hold such a pose in the fire… you can see that having opaque fire tends to look a little clunky. Sure it looks like pixel art… but it’s hard to get a sense of depth out of that. If we’re going to make things take up three dimensional space, I’d like to make use of some of the shading methods I’m used to, and perhaps do a luminance look-up of the fire to have some transparency in the flames.




This gives us something that still has a pixely look to it… but I think is going to help make things come together a little more as an interactive environment. I doubt we can expect any change in the lighting from fire…. but giving some transparency does help give it a voluminous appearance. I don’t know that we’ll be able to get as charming of a “spreading ignition” effect out of these particles compared to the one-off effect that I had started with… but since particles will more easily be able to get depth, and not look like crap at the edge of platforms or when near collidable objects, I really think this is the approach to take.


I think we will be limiting the molotov’s behavior to ignition on impact with the ground (as opposed to ceilings or walls), but it will still have a bit of a fireball effect on impact…




…but it’s extremely difficult to get a sense of what this will all look like at the moment without a particle system in place for me to combine the different elements in-game.