–SCROLL TO BOTTOM OF THIS POST FOR UPDATE–
Hey. So I made a 3D volume emitter before that I packaged in with volumetric smoke - it was alright. However, from that original emitter, I made a more robust particle emitter. It is fairly useful, and has settings for speed, friction, growth, size, and the particles even scale their variables around so that lowering the frequency of their execution keeps them running at the same speed, which is useful for keeping Logic down for particle emission. Oh, and forgive me if I throw ‘Emittor’ and ‘Emitter’ around a lot; either way should be correct, English-wise, LOL.
So, I was thinking that others could use this and create some particle effects and post the blend files for everyone to benefit from - all of the assets posted here by me are free to use, even in commercial products, without crediting (though it would be nice; try to remember, please. It would be much appreciated). Anyway, here’s my first one:
2/18/11 Update - X-Emitter V1.1 Release
Thanks to Monster for the idea, X-Emitter has now been updated to version 1.1! This version allows users to set emitter behavior parameters directly in the emitter objects rather than using scripts.
2/25/11 Update - X-Emitter V1.2 Release
Version 1.2 has updates to the emitter and particle scripts. New features include camera culling for offscreen particles, the ability to randomly choose the color of particles from a list (rather than an even distribution of random values), a maximum number of particles allowed per emitters, and the capability to parent the particles to the emitter (a bit buggy; doesn’t follow rotation).
New particles --Snow–, --Bubbly Mist–, and --Sparks-- have been included.
3/11/11 Update - X-Emitter V1.3 Released
New gravity feature for particle effects. Also, new particles --Fire (Planar)–, --Smoke (Planar)–, --Sparkle–, --Gas–, --Stream-- have been added.
3/24/11 Update - X-Emitter V1.5 Released.
New particles (Fire (blob), enegy ball) along with new looping logic as opposed to per object logic makes this the fastest X-Emitter release to date.
4/5/11 Update - X-Emitter V1.6
A video of the new features!
New particle emission modes - Vertex and vertex-ordering modes. Slight performance upgrade.
EDIT: Sorry if I don’t say it - most of the emitters are off by default so that they don’t bog down the scene. To enable them, check the ‘emitteron’ property in each of the off emitters.
4/26/11 Update - X-Emitter V1.7
So in this version of X-Emitter, there have been some changes. Namely, that there is now capability for collisions for particles! It’s pretty basic, but already works well for a purpose. Note that it only works for speed, not force right now.
Since this version is pretty special, I’ve made some art to use with it - if you wish to attribute me for X-Emitter in your game, you can do so by simply putting one of the pictures included (or the picture below) in it, preferably at the beginning (like professional game companies do).
Note that was wholly rendered in the BGE. The only thing that I used a photo-editing program for was my name at the top.
4/28/11 Update - X-Emitter V1.7.1
Hey. I found a bug - if you delete an emitter, then the particles are left orphaned, and so aren’t updated or deleted. To fix this, I added a variable to handle particle and emitter deletion.
5/23/11 Update - X-Emitter V1.7.2
A very slight update, as this fixes a bug with the previous emitter destruction variable.
6/18/11 Update - X-Emitter V1.8
A major update that changes how the X-Emitter works. Basically, I moved the particle calculation from the emitter to a global object that calculates particles for each function in the scene. So, XParticle.Generic is a list of all particles in that system, MyParticle.Fire is a list of all particles in that system, and so forth. This all gives a pretty nice little speed increase, I believe.
This should work fine, but if it doesn’t tell me here, or e-mail me at [email protected] if there’s a problem.
7/17/11 Update - X-Emitter V1.9
Another update, this one featuring seed values for emitters. Using these, you can make a particle system, then find a particular random spawn pattern you like, and go with that one. All you have to do is select a non-negative value for the emitterseed property. If you select a negative value, the seed will be removed from the randomizations.
8/26/11 Update - X-Emitter V1.10.1
For some reason, I didn’t put anything about version 1.10, but anyway, here’s another update.
This is a bugfix version on top of X-Emitter V1.10, which added particle prototyping (only in the Generic XParticle script) as a potential speed-up. Particle prototyping is where the first particle is used as a ‘base’ for what the other particles do. Once that particle has finished its course, other particles copy its properties and live ‘its life’ as well. While the other particles can’t be randomly colored or be as unique, there can be a speed-up, depending on different factors. Another emitter has been added to the demo blend to showcase this.
This newest version (1.10.1) fixes moving between scenes with the X-Emitter - before, particles stayed in the global particle list, causing game-stopping bugs when scenes were switched because the particles didn’t exist anymore, but the calculator object was still attempting to calculate them. This release should fix that issue.
However, make sure that the calculator script executes first before any other particles are spawned, as well (click the ‘Mark Controller for Execution’ flag button on the Python controller), as the demo blend demonstrates.
11/1/11 Update - X-Emitter V1.10.2
Hey. Soo, I updated it to work a little bit better in this version. Basically, I changed how it handled invalid (dead) particles. Rather than wiping the global particle list when the calculator’s created (old method), it handles errors as they arise, and does so efficiently (only if there’s an error will the script intercept).