Making magic FX for a 3d game


#1

Hi,

I need some help getting started on this and would appreciate any info or tutorial links you guys can give me.

I need to start making some nice looking magicFX for our 3d game. The basic things like fire balls, lighting bolts, etc… What is the best way to create these?(the art part, not programming). Are there any programs that help create the frames for you in a 2d texture as sprites? Or do you setup particles in a 3d program and render them frame by frame and paste them into a texture?

When looking at a game like Warcraft 3 that’s full of FX, I notice ones that are 3d as well, how is this done in general? Is the texture set to move(frame by frame) on the 3d object and eventually fade out-if so do you do the texture movement in the programming? For a game like this, are most of the spell FX 2d or 3d?(for some things it’s obvious, some hard to tell).


#2

Did I post this in the wrong section? Can someone give me some input, please?


#3

Hi Roja,
Love EL but haven’t played it in a while (since the big player wipe/startover)… need to revisit it sometime.

You could do it in any of the ways you’re describing… If you do the 2D effects route (or rendering from a 3d package into a series of sprites), you’ll have to make sure the sprites are facing the camera/player/whoever is viewing it for it to look right, but I’m sure the coders can handle that. I would probably suggest starting there. I think doing stuff in a 3d package and then exporting it as frames would probably be a reasonable way to start. You can always add some effects on top of that with overlays and alpha and all that… actual 3D effects will be harder to implement (but cooler in some situations, like if you have something swirling over someone or particles that need to move from one player to another) – lots of ugly math in there unless you’ve got some coders that are really math-strong. I know EL has a particle system but don’t know how advanced it is. (I actually worked on some magic/particle effect stuff but never got far enough to release /send back any of it) Your particle system is probably fine, but just needs the magic math to make it work.

If I’m not mistaken, Blender is the primary/only 3D app you use for EL, and I really have no idea where the state of the particle system is, so I can’t comment much on that. You can always try and find someone with a different app to export particles or rendered particle sequences that you can in blender or as sprites, respectively.

Hope this helps some.


#4

Thanks for the reply and advice.

Yes Blender has a pretty good particle engine, although I never played with it. Guess it’s time to start, always wanted to try it :slight_smile: I will try to make some 2d frames and see how it goes.

So making the FX in a 3d program and rendering them frame by frame is how most games do it?


#5

Most recent games? Probably not. I think most of the stuff you see these days is coded within a particle system within the game. But that doesn’t leave much for the artist. That’s why I was suggesting to start out with rendered effects and that way, you’ve got something there, and then move on to the coded 3D particle effects.


#6

check out a program called particle illusion.
http://www.wondertouch.com/
Its pretty intuitive and you can render out sprites


#7

Hi, Roja!

I made magic FX for my game, using generally 3 things.

  1. Environment mapping
    Using this feature you can make fireballs, ghosts or cartoon effects.[1st picture]

  2. Billboards (sprites).
    Plane, that always pointed to camera.
    Helps making explosion or something like this.

  3. Texture scrolling.
    Flame, flying fluids etc.[2nd picture]

[1st pic]

[2nd pic]


#8

Particle Illusion looks nice, but I’m not ready to spend that much money on a program.

Buck, is the “Environment mapping” just making 3d animated objects with a texture that has an alpha to get the transparency? I’m not sure I understand what you mean by that term.

And the texture scrolling, would that be just like different frames in a texture to get a 2d animation effect? Like if you had a 256 texture divided into many boxes, and each box had the next frame of the animation.


#9

Particle illusion wouldn’t do you much good for generating in game effects. It’s designed for rendering out particle effects in 2D. It is kind of nice for visualizing effects, though.
Here’s my remedial description of in game effects:
The effects in most games are sprite based. They rely on a particle system editor to generate a file (could be binary, could be text) that the game uses to recreate the effect in the engine. Most of the time you will start out with a 32 bit image created in a 2d package like Photoshop. The image should have an alpha channel that allows your sprite to have transparent edges and can represent many different things, like snowflakes, clouds, bits of fire, water spray, stars, etc. If you can model better than you can draw, you could build an object in a 3d package and render out an image that you could use as a sprite.
Some particle engines will allow you to feed in a series of these images and play them back sequentially as an animation mapped to your sprite. And some use a sprite page, like you mentioned, with each frame of the animation mapped to a portion of the texture map.
A sprite is really just a quad polygon that is mapped with an image that always faces the camera.
The spell type effects you are talking about from Warcraft are usually a combination of particle effects and animated geometry. Stuff like this:
http://www.blizzard.com/war3/screenshots/ss016-large.shtml
That effect in the center is just a couple of (warped) open ended cylinders with a transparent texture, and a glow effect added in game. It might also have alpha and color values applied to the vertices. This would allow you to use the same texture on each of the different cylinders, yet give them different colors. It would also allow you to fade them out at the top so you don’t end up with a hard edge. You can also animate the UV coordinates (or UV offset) on your object’s textures to get scrolling texture effects. But again, all of this is dependant on what your game engine supports. Some engines support glowing textures, some don’t. Some support scrolling textures, some don’t.

First thing you need to do is find out it there is any kind of documentation on what kind of effects are built into your game. Find out if there’s a particle editor.

  If you're playing around with the Unreal engine there is a ton of documentation out there:
   [http://udn.epicgames.com/Two/ParticleSystems](http://udn.epicgames.com/Two/ParticleSystems)
  
 Here's a particle editor for use with the Torque game engine:
  [http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=2472](http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=2472)
  [http://torque.feylab.com/downloads/ParticleEditor.zip](http://torque.feylab.com/downloads/ParticleEditor.zip) 
  
  Here's a forum post on editing particle effects in Doom 3:
  [http://www.doom3world.org/phpbb2/viewtopic.php?t=3333](http://www.doom3world.org/phpbb2/viewtopic.php?t=3333)
   
  Here's a forum link to a particle editor for the Ogre engine:
  [http://www.ogre3d.org/phpBB2/viewtopic.php?p=42694](http://www.ogre3d.org/phpBB2/viewtopic.php?p=42694)
  
  Talk to your programmers! They will guide you. 

Otherwise, you may just have to look at these other engines and hopefully get some similar tools made for you to do the job.

   ~M

#10

For my game we have our own engine, and we do have a particle engine in it too, but it is in need of further development. Basically waht I do is make a 2d particle, like say a gradient circle going from white->black(it’s an alpha). And then in the editor you can choose the colors, how fast it moves, how many particles, how big they are, etc. This is for static particles only however. Then you save it to it’s own particle file, and you can place them in the map editor. The first screen shot I attached shows some of the particles, and in the 2nd one is a shot form in the game with the particles. There’s a fire under the cauldron(that’s 1 particle file), then the green bubbles, the smoke, and there’s some waterfall like particles in the background.

Now that I’m thinking about it…our particle engine could really be all we need if some more things are added to it. Unfortunetly we’re lacking programmers right now, but I’m sure someone will come along eventually, it usually happens that way :slight_smile:

Anyway, Thanks for all the info! It helped me to understand this stuff more and how it works in games, because I really wasn’t sure how they did it.


#11

One thing your editor should have, and I would say is the most important, is a way to set a start middle and end setting for color and transparency over the life of the particle. That will let your particles fade in when they are born and fade out when they die, instead of popping in and out. If you already have that control and you want to get fancier, try to get them to give you a gradient color ramp to control those things. Gradients rock :slight_smile:

~M


#12

2 Roja

Environment map puts pixel by the angle between normal and camera… :slight_smile: (sorry for my english)…

And about texture scrolling.
I didn’t mean to use many textures. I used one texture and just scrolled it over the mesh.
If you have played in WarCraft, you can see some fluids flying above the main building of undead. I do believe, they did them by scrolling texture over the mesh that looks like stripes.


#13

Our particle engine can set the start & end color, and the start fade & end fade, but there is no middle. So they do fade out and look nice like that. But we lack simple things such as rotating the particles, so you have to set it the angle you want it in the game. And well now that I know more about how they do the particles, I could think of a lot of enhancements for our editor to create the magic effects :slight_smile:

BuckGFX, you mean to have the texture moveing ON the mesh, right? So like a 3d model with a moving dynamic texture?


#14

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.