As Explained by Xahlt on the Bioware Forums (2002)
Someone asked for this stuff and I wasn’t sure if anyone had ever posted details on it. This is just my understanding from working with the emitters, so I could be dead wrong on several of these items.
COLOR, ALPHA AND SIZE
Color is controlled by two properties:
colorStart [r] [g] (b)
colorEnd [r] [g] (b)
where r,g,b are red, green and blue in a value from 0.0 to 1.0. (with 0 being black, or no color, and 1 being white or full color). So
colorStart 0 0 0
is pure black
colorStart 0 0 1
is pure blue.
These specify the color of the particle group" over life expectancy. So
colorStart 1 0 0
colorEnd 0 0 1
specifies that a particle group will change from red to blue over the life of a particle.
Alpha transparency is handled similarly.
alphaStart [0 to 1]
alphaEnd [0 to 1]
where 0 is completely transparent and 1 is completely opaque, so
alphaStart 1
alphaStart 0
nicely fades out a particle over it’s life.
Size is also handled similarly.
sizeStart [0 to arbitrary value]
sizeEnd [0 to arbitrary value]
the values seem fairly arbitrary and dependent on the effect, so you will have to do experimenting to get them right, although 1 is the standard value. 0 will scale to 0%, however, and the effect won’t be visible.
Next there is a control function for scaling the y axis only
sizeStart_y [0 to arbitrary value]
sizeEnd_y [0 to arbitrary value]
note this works differently from the normal size parameters, as 0 simply means no extra scaling on y-axis (i.e. x=y), and 1 = 100% scaling.
Next there is frame control
frameStart [1 to arbitrary value]
frameEnd [1 to arbitrary value]
not really sure what this does as it doesn’t seem to affect most emitter types, however I have seen emitters triggered by animation in a model so it may possible control which frames an emitter plays at.
PARTICLE LIFE
Next, the rate at which new particle groups are born:
birthrate [0 to arbitrary value]
where any number < 1 will result in no “births”. A value of one seems to indicated a birth about every 1/2 sec to me, but I’m not sure how consistent that is (or whether it’s affected by another timing scale I’m not noticing)
Next, life expectancy
lifeExp [0 to arbitrary value]
where the value is number of seconds a particle group will “live”
PARTICLE VOLUME AND BEHAVIOR
First, is mass:
mass [0 to arbitrary value]
where 0 is no mass. This is an interesting control which affects the amount “gravity” will pull on particles. In other words, how much the particles will be pulled down the z-axis over their lifetime. A particle group with no mass will continue forever in the direction of it’s velocity vector if this property is given a non-zero value.
Spread:
spread [0 to arbitrary value]
controls the directional variation with which particles are emitted. 0 is a very narrow stream, whereas a high number like 100 would spread particles in random directions.
Rotation:
particleRot [0 to arbitrary value]
where 0 is no rotational speed. This really affects a particle group rotating about itself, creating either a starry effect or swarm type effect depending on the particle.
Velocity:
velocity [0 to arbitrary value]
where 0 is no velocity. Obviously, affects the constant speed at which a particle group travels from it’s birth point.
Randomizing velocity
randvel [0 to arbitrary value]
where 0 is no randomization. Allows particles to have slightly (or vastly) different speeds randomly.
OTHER
FPS
fps [?]
assuming that this stands for frames per second, I still have yet to get this to affect anything.
XSIZE & YSIZE
xsize [0 to arbitrary value]
ysize [0 to arbitrary value]
this appears to control the areas in which particles can be “birthed” - a large xsize and ysize value result in a large area in which particles can be born. A value of 0 and 0 result in all particles being born from the same point.
Blur length
blurlength [0 to arbitrary value]
obviously this has something to do with blurring, but I’m unable to see any resultant effect.
RENDERING
Update
update [Fountain, Explosion, Single]
controls the method by which particles are spawned from an emitter. Single creates one and only one particle - if you choose this, properties such as birth rate become meaningless. Fountain creates a continuous stream. Not sure what explosion does.
Render method
render [Normal, Billboard_to_World_Z]
Normal is (duh) normal. Billboard to World Z essentially flattens the effect along the z axis so it is not visible from the sides, only from top and bottom angles.
Blend mode
blend [Normal, Lighten, Punchthrough]
These modes are identical to the blending modes available in texture files. Normal is normal; lighten lightens the luminosity of the color hues behind it. No idea what punchthrough does.
Texture
texture [valid texture image]
Probably the most important part. A particle with no texture is simply a square - a valid texture image should be an alpha textured tga which describes a sprite-like geometry for the particle.
Grid
xgrid [1 to arbitrary value]
ygrid [1 to arbitrary value]
Appears to control scaling of texture onto particle. 1, 1 results into an even ratio. Higher numbers scale the texture so that only portions of it will fit on particles.
END
These are just my results from experimenting, please let me know if you have a better idea of what these functions do.