From e411c79c49f406c085c00792f87a5b781a881e3b Mon Sep 17 00:00:00 2001 From: Spoike Date: Thu, 7 Jan 2010 02:10:03 +0000 Subject: [PATCH] git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@3489 fc73d0e0-1445-4013-8a0c-d673dee63da5 --- specs/particles.txt | 273 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 specs/particles.txt diff --git a/specs/particles.txt b/specs/particles.txt new file mode 100644 index 00000000..8e76cae7 --- /dev/null +++ b/specs/particles.txt @@ -0,0 +1,273 @@ +Example: +r_part blah +{ + texture textures/particles/myimage.tga + tcoords 0 0 64 64 64 + die 2 + scalefactor 1 + scale 20 + alpha 0.5 + rgb 255 0 0 + rgbdelta 0 128 128 + spawnmode ball + spawnorg 32 +} + +will give transparent (0.5) red particles that will fade to fully white when they go fully transparent 2 seconds later. +they will spawn within a ball of 32 units radius. + + + + +texture + specifies to use an image named TEXTURENAME for this effect. + +tcoords [tscale] [rsmax] [rsstep] + specifies to use a subsection of the image. + if tscale is set, all units are divided by this. it is the virtual size of your texture. So a value of 1 means that your texture coords must be between 0 and 1. But if it properly matches your texture's size, the coords are in pixels. + if rsmax is present, each particle will use a random image. These images must be on a single row in your particle font. + rsstep specifies the stride (gap from one to the next) in your particle font, and is only needed if rsmax is present and greater than 1. + +rotationstart [max] + the particle will start with a rotation rotated between min and max. + if max is missing, the particle will always start with the min value. + +beamtexstep + only valid if the effect is a beam. + specifies the number of quake units per beam texture repitition. + +beamtexspeed + only valid if the effect is a beam. + controls how fast the texture scrolls on the beam. + +scale [max] + particles will start with a diameter of this many quake units. + actual scale will be randomly chosen between min and max (max defaults to equal min is missing) + +scalerand + obsolete + overrides the scale max value + actual scale will be now be randomly chosen between min and min+extra + +scalefactor + controls how the particle scales with distance. + 1 makes the particle scale the same as anything else + 0 makes the particle not change size no matter how far it is + +scaledelta + controls how the particle scales over time + specifies the change in the particle scale per second. + +step + trails/beams only + specifies the distance between each particle in the trail (or beam). + +count + point/box effects only (not trails or beams) + specifies how many particles are spawned per effect (some classic effects contain an extra scaler which is multiplied by the resulting value) + +alpha + specifies the initial alpha value of the effect + +alphadelta + specifies how much the alpha value of the effect changes per second (subtracted) + +die + specifies the maximum age of the particle + +diesubrand + specifies the maximum starting age of the particle. + basically the particle will live up to this much less time. the alpha value will also be aged by the amount chosen by this value + +randomvel [vert] + controls how fast the particle moves when it spawns. This works regardless of any requested velocities. + if vert is not specified, horiz is used instead. + +veladd + controls how much of the effect's spawn velocity is used, can be greater than 1, or negative. + +orgadd + biases how much to add to the starting origin relative to the requested velocity. + +friction <1> <2> <3> + FIXME + +gravity + amount that the particle's velocity changes per second, in quake units. + +clipbounce + how much of the particle's velocity to use if the particle is clipped. See cliptype. + Defaults to 0.8 + +cliptype + Specifies which new effect to spawn when the particle hits something. + The origin and velocity of the particle are used to spawn the new effect. + The clipbounce value is used as a scaler for the reflected velocity. + If the effect named is the effect itself, the particle will merely bounce, instead of spawning a new effect. + FIXME: make default to bounce if clipbounce is set without cliptype. + +clipcount + The scaler to use for the number of particles to spawn upon a clip event. + Only valid in conjunction with cliptype. + +assoc + Specifies another effect to spawn at the same time that this effect is spawned. + Thus allowing two sets of particles from one effect. + +inwater + Specifies a replacement effect to use when this one is spawned underwater. + assoc used is the replacement effect. the assoc value from the replaced effect is ignored. + +colorindex [rand] + Specifies a palette index to spawn the particle with. + The index used is between index and index+rand. + overrides the normal starting colours. + +colorrand + obsolete. + replaces the [rand] part of the colorindex setting. + +citracer + only valid if colorindex is set. + adds a palette index between 0 and 3, based on the particle index in the effect or trail. + +red +green +blue +rgb +rgb + Specifies the initial red, green, and/or blue values for each particle. + Fully opaque is 255 or above. + Values above 255 are valid, but will remain opaque until the value drops below 255 from the colour deltas. + +redrand +greenrand +bluerand +rgbrand +rgbrand + Specifies how much extra red, green, and/or blue there may be for particles. + The initial colour will be multiplied by this amount before addition. + Each componant is separately randomized. EG, red might add nothing, while the full green is added, and only half the blue. + Fully opaque is 255 or above. + +redrandsync +greenrandsync +bluerandsync +rgbrandsync +rgbrandsync + Specifies how much extra red, green, and/or blue there may be for particles. + The initial colour will be multiplied by this amount before addition. + Componants are syncronised. EG, if the full amount of red is added, the full amount of green and blue will also be added. + Fully opaque is 255 or above. + +reddelta +greendelta +bluedelta +rgbdelta +rgbdelta + Specifies how much the red, green, and/or blue values of each particle change over time. + The value 255 is the value required to go from opaque to invisible in 1 second. + +rgbdeltatime + Specifies for how long the particle may change colours for. After this many seconds, the particle may no longer change colours (delta becomes 0). + +rampmode + mode may be one of: + none: uses rgb+rand+sync+delta+scale+scaledelta values. + absolute: the ramp overrides all colour+scale values. The effect moves from one absolute ramp index to the next. + delta: uses rgb+rand+sync+scale, but not delta values. All delta values come from the colour ramp instead. + + if not none, the ramp index used is based upon the particle's age, its lifetime, and how many ramp elements there are. + +rampindexlist [ [idx3 ...]] + Scale used is the currently set scale value. + Specifies a set of palette index values to use for the effect as part of the effect's colour ramp. + +rampindex + Specifies an individual palette index value and particle scale to use for the effect as part of the effect's colour ramp + +ramp [alpha] [scale] + Specifies a ramp index in rgb terms, regardless of palette. + +stains + How much the effect discolours the wall upon impact. + The stained colour is based upon the colour of the particle upon impact. + +blend + mode may be one of: add, subtract, blendcolour/blendcolor, blend + if the texture used is actually a shader, this is ignored. + +spawnmode [arg1] [arg2] + This affects how particles are positioned when they first spawn, and their initial velocities. + for point effects, mode may be one of: + circle: particles spawn within a ball with uniform distance from the center + ball: particles spawn randomly within a ball. + telebox: matches quake's telebox + lavasplash: like chthon's lava splash + uniformcircle: particles are spawned in a circle with uniform distance between and from the center. z=0. + syncfield: particles spawn at predictable locations based upon time within a rough sphere. Only useful for effects that are regenerated+replaced every frame. + distball: + *default*: regular box. particles are spawned inside an axially aligned box. + + for trail effects, mode may be one of: + spiral: particles are given velocities perpendicular to the direction based on the distance moved. + tracer: particles spawn with alternating horizontal velocities (a wake effect). + *default*: particles spawn as a regular trail. + +spawnparam1 + obsolete + +spawnparam2 + obsolete + +up + the particle's origin is moved upwards by this amount + +type + How the particles look. + mode may be: + beam: valid only for trails. Particles form a single textured beam acting as nodes along it. + spark: particles are lines, their length depending upon their speed. + sparkfan: particles are non-planar triangle fans, their length depending upon their speed. + texturedspark: textured particles are aligned along their direction of movement, their length depending upon their speed. + decal: particles are spawned only upon bsp geometry. They are clipped by it. + *default*: Particles are regular, rotating, 2d images. + +isbeam + obsolete. + please use 'type beam' instead. + +spawntime +spawnchance + + +emit + Specifies the effect to periodically emit. + +emitinterval + Particles will not emit additional effects for this duration after emitting one. + +emitintervalrand + FIXME: fold into emitinterval + + +emitstart + Prevents the particle from emitting anything for this duration when it first spawns. + +spawnorg [vert] +spawnvel [vert] + +perframe + apply inverse frametime to count (causes emits to be per frame) + +averageout + average trail points from start to end, useful with t_lightning, etc + +nostate + Causes the particle system to ignore all state information. + +nospreadfirst + don't randomize org/vel for first generated particle + +nospreadlast + don't randomize org/vel for last generated particle