Part

From OuroDev
Revision as of 22:57, 20 June 2019 by pc>Kurai3

This is official Paragon Documentation discovered in the CoH Costume Updater Utility.


Gravity

Gravity 0.0

Every frame, change the particle's velocity by this much on the y axis. Positive gravity moves down, negative gravity moves up. (rem: if WorldOrLocalPosition = local means local gravity, too)


Drag

Drag 0.0

Range: 0 to 1

Air resistance per frame, between 0.0 and 1.0. The particle's speed is multiplied by this number every frame. Therefore 0.0 = vacuum of space, 1.0 = air is like rock.


Burst

Burst 1

The burst of particles that appears when the system is born. Useful for kick-starting systems.


NewPerFrame

NewPerFrame 0.0

All time is measured in 30ths of a second. 1 frame = 1/30th of a second. This can be a fraction. Not making this unnecessarily high is important for performance.


BurbleAmplitude

BurbleAmplitude 1.0

Burbling is a way to vary the number of particles that are newly created each frame. It's much easier to explain on a white board than write down. Mostly you can set BurbleAmplitude to 0.0 and ignore it.


BurbleType

BurbleType 0

Which Burble function to use

0 = Sine Wave: use a sine wave to vary the number of new particle.

1 = Random Curve: use a noise function to vary the number of new particles.


BurbleFrequency

BurbleFrequency 1.0

How quickly to move through the burble function.


BurbleThreshold

BurbleThreshold 0.0

Between 0 and 1. The cut off below which the system won't burble at all this frame.


EmissionLifeSpan

EmissionLifeSpan 0.0

After the age of the particle system exceeds this number, the system continues to run but no longer emits. Similar to maxparticles, but does not require calculating rate of creation. Values of 0.0 or less are ignored.


EmissionLifeSpanJitter

EmissionLifeSpanJitter 0.0

Adds +/- jitter to the emission lifespan. For example, EmissionLifeSpan of 100 with EmissionLifeSpanJitter of 50 means you will get values from 50 to 150, uniformly distributed.


EmissionType

EmissionType 0

Where new particles appear

0 = Point: Emit from system's origin position

1 = Line: Emit at random points along a line between the system's origin point and 'other' point. (To use this parameter, you must define a second point using 'POther' in the fxinfo file that owns this system.)

2 = Cylinder Emit at a random point on a cylinder defined in x and z by EmissionRadius and in y by EmissionHeight. (EmissionHeight 0.0 gives you a circle.)

3 = Even Trail: Emit evenly along a line from the system's current position to its position last frame. Useful for preventing clumping in traveling effects.

4 = Sphere: Emit randomly on a sphere defined by the EmissionRadius

5 = Line Even: Emit evenly along a line between the system's origin point and 'other' point. (To use this parameter, you must define a second point using 'POther' in the fxinfo file that owns this system.)


EmissionRadius

EmissionRadius 0.0

:Used when emission type is cylinder or sphere


EmissionHeight

EmissionHeight 0.0

:Used when emission type is cylinder


EmissionStartJitter

EmissionStartJitter 0.0 0.0 0.0

x, y, z. Area around emission point in which a new particle can randomly appear. (Bug note: for world space particles, EmissionStartJitter is NOT xformed by the particle system's matrix like InitialVelocity is. I'll try to fix this. )


InitialVelocity

InitialVelocity 0.0 0.0 0.0

Starting speed of a particle in x,y,z.


InitialVelocityJitter

InitialVelocityJitter 0.0 0.0 0.0

Random Starting speed of a particle in x,y,z. Useful for burst effects. (Bug note: for world space particles, InitialVelocityJitter is NOT xformed by the particle system's matrix like InitialVelocity is. I'll try to fix this. )


VelocityJitter

VelocityJitter 0.0 0.0 0.0

Per frame random change in speed and direction per particle. Makes particles seem to wander aimlessly. Combined with a strong initial velocity, they start out purposeful, then wander off. Combined with a magnet, they act mothlike. Too much of this quickly causes particles to leave the scene.


Magnetism

Magnetism 0.0

Every frame, change the particle's velocity by this much on the x,y,and z axes in the direction of the magnet defined by the fx. (Negative magnetism repels)


WorldOrLocalPosition

WorldOrLocalPosition 0

The fx system that owns this particle system will give it a matrix every frame based on the node the system is attached to. The particle system uses this matrix to position itself in one of two ways:

0 = World: Particles are placed in world space. Particles use the matrix for their starting position, and to transform new particle's InitialVelocity

1 = Local: Particles are placed in local space. All transforms on particles in this system are relative to this matrix. So when the matrix moves, all particles in the system move with it.


FrontOrLocalFacing

FrontOrLocalFacing 0

0 = Front: particles face the camera (mostly this is right)

1 = Local: particles face up the y axis of the particle system's matrix (See WorldOrLocalPostion)


Stickiness

Stickiness 1.0

Special feature to keep particle systems whose origin point moves from breaking apart. Every frame the particle tries this much to keep up with the movements of its emitter.

0.0 particles ignore the movements of the emitter

1.0 particles copy 100% of the movement of the emitter in addition to their other movements


MoveScale

MoveScale 1.0

Scale the number of particles emitted by the movement rate of the system. So if a system was motionless, emit zero particles, if the system moved 1 foot, emit NewPerFrame particles, and if the system moved 10 feet, emit NewPerFrame x 10 particles. Notes: EmissionType 3 (Even Trail) is a natural fit with this parameter. Also, remember that local systems (WorldOrLocalPosition 1) only know they are moving when they are moving relative to their parent.

Negative MoveScale dampens new per frame. The curve is a little different than positive move scale, so small moves have relatively little effect on the particle output, but there's a pretty quick drop off to zero output.


TightenUp

TightenUp 0.0

Pull the particle toward the camera by this much (or push it away for negative values). Useful for reducing clipping with geometry. For example, fire particles on a torch look better with a little TightenUp. Too much looks weird, especially on the edges of the screen because of the simple frontfacing particle draw routine.


StreakType

StreakType 0

0 = NOSTREAK ignore streaking

1 = VELOCITY direction of velocity, Use StreakScale and StreakDirection

2 = GRAVITY streak upwards by gravity times StreakScale

3 = ORIGIN connect back to the start point

4 = MAGNET connect back to the magnet point

5 = OTHER connect back to the other point

7 = CHAIN connect to the particle created right before you

8 = VPARENT direction of parent's velocity, Use StreakScale and StreakDirection


StreakScale

StreakScale 20

Makes streaks longer than they would otherwise be by this factor. For example, if you are scaling by velocity, and the velocity is 2, StreakScale 20 would make the actual scale value be 2 * 20 = 40 and stretch the particle to 40 times more than it would otherwise be.


StreakOrient

StreakOrient 1

Whether or not to try to orient stretched particles toward the camera. Almost always 1, (which incidentally disables spin). StreakOrient 0, Combined with spin, used for tree leaves. Possibly flying glass?

1 = Orient try your best to make this particle front facing

0 = No Orient don't try to make this particle front facing


StreakDirection

StreakDirection 1

Which direction to apply the StreakScale, in the direction you are going, or the direction you came from.

0 = The direction you came from

1 = The direction you are going


KickStart

KickStart 1

If you want a world effect to appear as if had been going on forever instead of initializing once it's draw distance is reached and then begin to create particles. If you use this, you also need to use TimeToFull. Example:

KickStart 1 TimeToFull 30 (This will advance the particle system to one second into it's life.)


TimeToFull

TimeToFull 0

Default is 10. It is how long the system takes to get to full strength. Useful for world fx like fountains that need to appear and disappear.


AlwaysDraw

Flags AlwaysDraw

There is a new scheme for not updating particle systems that aren't visible. Some particle systems are tricky, though, and we might not want them to not update. For them we can add Flags ALWAYSDRAW.


SortBias

SortBias 0.5

adjusts draw order in the z buffer to compersate for alpha sorting issues. Particularly useful if you have several systems with almost, but not quite the same center point, and aren't additive. Fixes flickering as it changes which system gets drawn first.


DieLikeThis

DieLikeThis :BobbleDeath.part

Gives system parameters to switch to when the system is told to die. New system can't have newperframe or burble. All the particles begin to obey the rules of the new system. (Note if the system died because it was out of particles in the first place, this parameter has no meaning.) 0 = don't go to any other system.


DeathAgeToZero

DeathAgeToZero 0

0 = keep the particles' ages from the old system.

1 = when you go to the death system, reset the age of all the particles to zero.


StartSize

StartSize 5.0

Start size of new particles (relative to sprite texture size).


StartSizeJitter

StartSizeJitter 0.1

Variation in StartSize per particle. Thus StartSize 5.0 and StartSizeJitter of 6.0 means particles will start between 2.0 and 8.0 in size.


ExpandRate

ExpandRate 0.1

Amount to change the size of the particle per frame. Positive or negative. Particle grows (or shrinks if ExpandRate is negative.)


ExpandType

ExpandType 0

What to do when the particle reaches it's end size.

0 = Expand Forever. Ignore EndSize and grow at the ExpandRate your whole life.

1 = Expand and Stop. When you come to the EndSize, stop growing.

2 = Ping Pong. When you come to EndSize, shrink back to StartSize, repeat.


EndSize

EndSize 5.0

Not used if ExpandRate or ExpandType is 0.


OrientationJitter

OrientationJitter 0

When a particle is created, this is the range of angles it can appear at. Range is 0 to 128.

0 = always appear straight up and down.

128 = appear at a random orientation.


Spin

Spin 0

turn this much (-127 to 127). Positive spins cw, negative, ccw. Disabled if streakorient is used. NEW: This is adjusted for framerate and has a reasonable range now...


SpinJitter

SpinJitter 5

Add or subtract as much as this from Spin

A Spin of 5 with SpinJitter of 10 means each particle will be given a spin between -5 and 15. SpinJitter is only calculated once, when the particle is created.



Blend_mode

Blend_mode Normal

Normal (string, or integer 0). fog IS applied - Basically AlphaBlend

Additive (string, or integer 1). fog IS NOT applied

Subtractive (string, or integer 2). fog IS NOT applied

PreMultipliedAlpha (string, or integer 3). Not working quite as expected right now

Multiply (String, or integer 4). - Multiples background by RGB of sprite.

SubtractiveInverse (String, or integer 5). - For use with subtractive color customization. Works like Subtractive mode, but inverts the RGB value right before rendering. (This allows the player, and the artist, to select color swatches in the character creator and see those same colors, instead of their inverses, appear in the power.)


TextureName

TextureName white.tga

Texture 1 name. Always maps the entire texture, so be sure to fill the texture up, otherwise the particle will seem small, but you are still paying the fill cost for a big particle.


TexScroll1

TexScroll1 0.0 0.0 0.0

Vector by which to scroll the texture every frame. The z value is disregarded.


TexScrollJitter1

TexScrollJitter1 0.0 0.0 0.0

Vector by which to change TexScroll Vector each frame, much like VelocityJitter.


AnimFrames1

AnimFrames1 12

Number of Frames of Animation to play. Zero (or one) is no animation. You've gotta set up the frames in the texure in this format:

<=2 frames: 2x1 <= 4 frames: 2x2 <= 8 frames 4x2 <=16 frames 4x4 <=32 frames: 8x4

AnimPace1 0.1

How many animation frames to play every game frame. 0.5 means play one frame every other game frame, or 15 frames per second

AnimType1 0

What happens when the animation ends:

0 = loop

1 = go to the end and stop

2 = ping pong


TextureName2

TextureName2 spark.tga

Name of the second texture (default white) This texture has it's own version of all the parameters of the first(TexScroll2, TexScrollJitter2, AnimFrames2, AnimPace2, AnimType2)


Alpha

Alpha 255

Maximum alpha value of the particles in this system. In other words, the alpha of the particle after it has faded completely in, but before it begins to fade out. If you leave it out, it will default to 255.


FadeInBy

FadeInBy 20

Alpha starts at zero, and goes to its full intensity (defined by Alpha) by this frame. Set this to 0 to get it to pop to full opacity.


FadeOutStart

FadeOutStart 40

On this frame, start to fade out, and fade to 0 opacity by the FadeOutBy frame. Set FadeOutStart and FadeOutBy to the same to get it to pop out of existance.


FadeOutBy

FadeOutBy 60

Die on this frame. Make sure FadeInBy <= FadeOutStart <= FadeOutBy.


StartColor

StartColor 255 255 255

The RGB color of the particle when it is created. If ByTime1 is 0, this will always be the particle's color.


ColorChangeType

ColorChangeType 0

When the particle comes to the end of the ByTime/BeColor sequencer, what should it do?

0 = Stop at the last color

1 = Loop back to the beginning. (If you use this, you should make the last color equal the StartColor, or the color will pop.)


PrimaryTint

PrimaryTint 0 (Range 0-100) - Inherit this percentage of the Primary color tint from the parent.


SecondaryTint

SecondaryTint 0 (Range 0-100) - Inherit this percentage of the Primary color tint from the parent.


ByTime1

ByTime1 50

ByTime/BeColor is used to change the color of particles over time. ByTime defines the time in frames. BeColor defines the RGB value to use. A Particle System can use up to four ByTime/BeColor definitions. If ByTime is 0, that means stop with the previous Color and ignore this Color and every Color after this. Interpolation between colors is linear. If a ByTime value is greater than the particle's FadeOutBy, the particle will ramp towards the color untill it fades out, but it will never arrive at that final color value. Primary and Secondary tint values are used to specify how much of the primary and secondary tint colors the particle inherits at this point. If the FadeOutTime is longer than any defined Primary or Secondary tint value, the tint value will revert to 0% for both primary and secondary...so make sure that you have a ByTime defined that matches or exceeds the FadeOutTime.


BeColor1

BeColor1 100 200 50

ByTime/BeColor is used to change the color of particles over time. ByTime defines the time in frames. BeColor defines the RGB value to use. A Particle System can use up to four ByTime/BeColor definitions. If ByTime is 0, that means stop with the previous Color and ignore this Color and every Color after this. Interpolation between colors is linear. If a ByTime value is greater than the particle's FadeOutBy, the particle will ramp towards the color untill it fades out, but it will never arrive at that final color value. Primary and Secondary tint values are used to specify how much of the primary and secondary tint colors the particle inherits at this point. If the FadeOutTime is longer than any defined Primary or Secondary tint value, the tint value will revert to 0% for both primary and secondary...so make sure that you have a ByTime defined that matches or exceeds the FadeOutTime.


PrimaryTint1

PrimaryTint1 0 (Range 0-100) - Inherit this percentage of the Primary color tint from the parent.


SecondaryTint1

SecondaryTint1 0 (Range 0-100) - Inherit this percentage of the Primary color tint from the parent.


ByTime2

ByTime2 50

ByTime/BeColor is used to change the color of particles over time. ByTime defines the time in frames. BeColor defines the RGB value to use. A Particle System can use up to four ByTime/BeColor definitions. If ByTime is 0, that means stop with the previous Color and ignore this Color and every Color after this. Interpolation between colors is linear. If a ByTime value is greater than the particle's FadeOutBy, the particle will ramp towards the color untill it fades out, but it will never arrive at that final color value. Primary and Secondary tint values are used to specify how much of the primary and secondary tint colors the particle inherits at this point. If the FadeOutTime is longer than any defined Primary or Secondary tint value, the tint value will revert to 0% for both primary and secondary...so make sure that you have a ByTime defined that matches or exceeds the FadeOutTime.


BeColor2

BeColor2 100 200 50

ByTime/BeColor is used to change the color of particles over time. ByTime defines the time in frames. BeColor defines the RGB value to use. A Particle System can use up to four ByTime/BeColor definitions. If ByTime is 0, that means stop with the previous Color and ignore this Color and every Color after this. Interpolation between colors is linear. If a ByTime value is greater than the particle's FadeOutBy, the particle will ramp towards the color untill it fades out, but it will never arrive at that final color value. Primary and Secondary tint values are used to specify how much of the primary and secondary tint colors the particle inherits at this point. If the FadeOutTime is longer than any defined Primary or Secondary tint value, the tint value will revert to 0% for both primary and secondary...so make sure that you have a ByTime defined that matches or exceeds the FadeOutTime.


PrimaryTint2

PrimaryTint2 0 (Range 0-100) - Inherit this percentage of the Primary color tint from the parent.


SecondaryTint2

SecondaryTint2 0 (Range 0-100) - Inherit this percentage of the Primary color tint from the parent.


ByTime3

ByTime3 50

ByTime/BeColor is used to change the color of particles over time. ByTime defines the time in frames. BeColor defines the RGB value to use. A Particle System can use up to four ByTime/BeColor definitions. If ByTime is 0, that means stop with the previous Color and ignore this Color and every Color after this. Interpolation between colors is linear. If a ByTime value is greater than the particle's FadeOutBy, the particle will ramp towards the color untill it fades out, but it will never arrive at that final color value. Primary and Secondary tint values are used to specify how much of the primary and secondary tint colors the particle inherits at this point. If the FadeOutTime is longer than any defined Primary or Secondary tint value, the tint value will revert to 0% for both primary and secondary...so make sure that you have a ByTime defined that matches or exceeds the FadeOutTime.


BeColor3

BeColor3 100 200 50

ByTime/BeColor is used to change the color of particles over time. ByTime defines the time in frames. BeColor defines the RGB value to use. A Particle System can use up to four ByTime/BeColor definitions. If ByTime is 0, that means stop with the previous Color and ignore this Color and every Color after this. Interpolation between colors is linear. If a ByTime value is greater than the particle's FadeOutBy, the particle will ramp towards the color untill it fades out, but it will never arrive at that final color value. Primary and Secondary tint values are used to specify how much of the primary and secondary tint colors the particle inherits at this point. If the FadeOutTime is longer than any defined Primary or Secondary tint value, the tint value will revert to 0% for both primary and secondary...so make sure that you have a ByTime defined that matches or exceeds the FadeOutTime.


PrimaryTint3

PrimaryTint3 0 (Range 0-100) - Inherit this percentage of the Primary color tint from the parent.


SecondaryTint3

SecondaryTint3 0 (Range 0-100) - Inherit this percentage of the Primary color tint from the parent.


ByTime4

ByTime4 50

ByTime/BeColor is used to change the color of particles over time. ByTime defines the time in frames. BeColor defines the RGB value to use. A Particle System can use up to four ByTime/BeColor definitions. If ByTime is 0, that means stop with the previous Color and ignore this Color and every Color after this. Interpolation between colors is linear. If a ByTime value is greater than the particle's FadeOutBy, the particle will ramp towards the color untill it fades out, but it will never arrive at that final color value. Primary and Secondary tint values are used to specify how much of the primary and secondary tint colors the particle inherits at this point. If the FadeOutTime is longer than any defined Primary or Secondary tint value, the tint value will revert to 0% for both primary and secondary...so make sure that you have a ByTime defined that matches or exceeds the FadeOutTime.


BeColor4

BeColor4 100 200 50

ByTime/BeColor is used to change the color of particles over time. ByTime defines the time in frames. BeColor defines the RGB value to use. A Particle System can use up to four ByTime/BeColor definitions. If ByTime is 0, that means stop with the previous Color and ignore this Color and every Color after this. Interpolation between colors is linear. If a ByTime value is greater than the particle's FadeOutBy, the particle will ramp towards the color untill it fades out, but it will never arrive at that final color value. Primary and Secondary tint values are used to specify how much of the primary and secondary tint colors the particle inherits at this point. If the FadeOutTime is longer than any defined Primary or Secondary tint value, the tint value will revert to 0% for both primary and secondary...so make sure that you have a ByTime defined that matches or exceeds the FadeOutTime.


PrimaryTint4

PrimaryTint4 0 (Range 0-100) - Inherit this percentage of the Primary color tint from the parent.


SecondaryTint4

SecondaryTint4 0 (Range 0-100) - Inherit this percentage of the Primary color tint from the parent.



ColorOffset

ColorOffset 0 0 0

ColorOffset is RGB, but each color can be positive or negative, and is added to the whole color path.

For example: ColorOffset -10 0 34 & ColorOffsetJitter 0 50 0, will shift the red by -10 (out of 255), the green by between -50 and 50, and the blue up by 34. If the offset or the jitter causes an RGB value to go below 0 or above 255, it is capped at those values.


ColorOffsetJitter

ColorOffsetJitter 0 0 0

ColorOffsetJitter is also RGB, and is added on top of ColorOffset to the whole colorpath. ColorOffsetJitter is randomly calculated once per particle system, but not per-particle. So each time you create a particle system, the ColorOffset will be jittered by the ColorOffsetJitter, but it will be the same for every particle in that particle system. Doing it per-particle would incur a significant performance hit.

For example: ColorOffset -10 0 34 & ColorOffsetJitter 0 50 0, will shift the red by -10 (out of 255), the green by between -50 and 50, and the blue up by 34. If the offset or the jitter causes an RGB value to go below 0 or above 255, it is capped at those values.


IgnoreFxTint

Flags IgnoreFxTint

This flag will prevent the system from being colorshifted by the parent FX. This normally occurs, for instance, when a particle system is attached to a costume piece.