With the help of the factor graphs I made it so that the particle motion is determined by the "Velocity" in the beginning and by the "Weight" later on. It looks like this (Fig.09a, Fig.09b, Fig.10a & Fig.10b).
This way I've got the desired fire motion. As the real flame is first wider and then gets thinner in the upper position I adjusted the diagram "Size over life (factor)" like this (Fig.11).
You can watch the movement of only one particle if you check "Single particle" in the "Number of emitted particles" diagram. It is helpful when there are too many particles making it difficult to understand their motion. Now the flame is still rather intense and high. Decrease its height and imitate its fluctuations. This is what I've got after adjusting "Life of particle" and "Number of emitted particles" diagrams (Fig.12).
The interesting thing about the diagrams with two lines is that they allow you to get the random values in the interval between the green and the blue lines. This means that each created particle will get the different parameter's value.
Not a bad result, but to make the fire more vivid, let's make the particles spin. The diagram "Spin of particle" is set from 0 to 100, and the diagram "Spin over life (factor)" is made fading to eliminate the unnatural spin at the top
This is my result (Fig.14).
You can add some sparkles to the fire by creating a new particle type inside the emitter, and also adding some smoke.
For sparkles, paint a white dot or a stroke on a black background and use the "Intense" parameter. For smoke you'll have to experiment with textures. As smoke doesn't shine, turn the "Intense" off and set a blue tint in the colour settings.
This is my simple way of creating fire in particle editors. If you download
the file with the example and the textures you'll be able to see my fire version in Magic Particles.
Part 3: Export & Integration into a game
After the fire has been created it has to be integrated into a game. The simplest way in this case is to render the fire to a frame-by-frame animation and looping it after that. Then you'll be able to play this animation as sprites in any place within the game.
Unfortunately the nature of such editors doesn't allow you to make an infinite loop process, so we'll have to cheat! But first we have to get the sequence of frames. There is nothing difficult about it; have a look at the export window of Magic Particles(Fig.15).
Choose the frame size, usually a multiple of the power of 2 (for example 128, 256, 512), file type (any graphic format except lossy compression, alpha-channel not needed) and hit "Export". You'll get too many frames, so you'll need to select a small section, 1-3 seconds long. It'll be quite enough. To create a smooth transition I used Adobe After Effects. I'm not going to go into detail, but you can see a couple of snapshots in Fig.16.
Import the frame sequence into After Effects and copy the animation as a second layer. After that, "cut" the tracks in the middle and move them so that one track ends in the place of the cut and the other begins. Shorten the composition time to make the tracks overlap. Then adjust the opacity of the upper layer so that it changes from 0% to 100%; from A to B.
After this operation the transition becomes almost unnoticeable. We only have to render the composition into a frame sequence and see how it works in the game.
Another way to export fire into a game is to use a developer version of the program Magic Particles(Dev). This version has an API to export the special effects into the game engine at a level of processing particles. The example API use you can download here
By experimenting with your results you can make the fire as fierce as a forest fire or as calm as a gas stove fire. You can make it brighter or dimmer, quicker or slower. Real fire is sometimes very different and having toyed with the parameters you can make it the way you wish.
In conclusion I would like to thank Yasha a.k.a Snork, Alexei a.k.a. Odin_KG and Masha Zaitseva for the help in the lesson creation.
If you have any questions or comments then please do not hesitate to contact me.
With best wishes, Evgeni Vendigo Bulatov.
The original translation of this piece from Russian to English was done by Grigori Bulatov, with additional clean-up by Drew Sikora.