Difference between revisions of "Particle Emitter"

From Oldunreal-Wiki
Jump to navigation Jump to search
m
(Cleaned up article. Note for the future: <br> is the devil, please avoid.)
Line 5: Line 5:
|IncVersion =227a
|IncVersion =227a
}}
}}
The Unreal 227 '''Particle Emitter''' system is a potent tool for mappers and modders, as it allows to add a great deal of advanced effects to both environments and actors. It currently supports 5 different types of emitters; [[#Emitter|Normal]], [[#Sprite Emitter|Sprite]] (adds rotation support), [[#Mesh Emitter|Mesh]], [[#Weather Emitter|Weather]] and [[#Beam Emitter|Beam]]. Since 227f, it is also possible to combine multiple emitters using the Combiner class.
The Unreal 227 '''Particle Emitter''' system is a potent tool for mappers and modders, as it allows to add a great deal of advanced effects to both environments and actors.  
 
'''Note''': When creating Emitter subclasses for usage in UScript code, subclass the classes prepended with an '''X''', such as ''XMeshEmitter'' etc. For placement in maps, use classes without the X such as ''Emitter'', ''SpriteEmitter'' etc. Triggered emitters should use ''Network'' classes.


== Emitter Types ==
== Emitter Types ==
The Particle Emitter classes come in various flavors: [[#Emitter|Normal]], [[#Sprite Emitter|Sprite]] (adds rotation support), [[#Mesh Emitter|Mesh]], [[#Weather Emitter|Weather]] and [[#Beam Emitter|Beam]]. Since 227f, it is also possible to combine multiple emitters into one connected system using the Combiner properties.
=== Emitter ===
=== Emitter ===


'''EmGeneral:'''<br>
This is simplest form of particle emitter with the best in-game performance which can be used for most effects.
''bDisabled'' - Emitter is disable, no more spawning new particles.<br>
 
''bRespawnParticles'' - Respawn particles that have died.<br>
'''EmGeneral:'''
''bAutoDestroy'' - Auto-destroy emitter actor after all particles have died (can be used for temp effects).<br>
*''bDisabled'' - Emitter is disable, no more spawning new particles.
''bAutoReset'' - Auto-reset emitter after all particles have died and AutoResetTime has passed.<br>
*''bRespawnParticles'' - Respawn particles that have died.
''bSpawnInitParticles'' - Spawn initial particles, or else wait for possible auto-reset (only when bRespawnParticles is false).<br>
*''bAutoDestroy'' - Auto-destroy emitter actor after all particles have died (can be used for temp effects).
''MaxParticles'' - Maximum amount of particles.<br>
*''bAutoReset'' - Auto-reset emitter after all particles have died and AutoResetTime has passed.
''ParticlesPerSec'' - Amount of particles to spawn per second (0 = auto assign the value).<br>
*''bSpawnInitParticles'' - Spawn initial particles, or else wait for possible auto-reset (only when bRespawnParticles is false).
''LifetimeRange'' - How long time particles should live.<br>
*''MaxParticles'' - Maximum amount of particles.
'''EmVisibility:'''<br>
*''ParticlesPerSec'' - Amount of particles to spawn per second (0 = auto assign the value).
''bStasisEmitter'' - Similar to Actor bStasis, but stop hide particles once player isn't seeing the emitter's zone.<br>
*''LifetimeRange'' - How long time particles should live.
''bBoxVisibility'' - If enabled, visibility box will be used.<br>
 
''VisibilityBox'' - Only update when any parts of this box radius is within player camera sight.<br>
'''EmVisibility:'''
''bDistanceCulling'' - If enabled, use distance culling.<br>
*''bStasisEmitter'' - Similar to Actor bStasis, but stop hide particles once player isn't seeing the emitter's zone.
''CullDistance'' - If player camera is beyond this distance, don't render.<br>
*''bBoxVisibility'' - If enabled, visibility box will be used.
''bNoUpdateOnInvis'' - When not rendering emitter actor, do not update the particles either.<br>
*''VisibilityBox'' - Only update when any parts of this box radius is within player camera sight.
'''EmCorona''':<br>
*''bDistanceCulling'' - If enabled, use distance culling.
''CoronaColor'' - Corona color range.<br>
*''CullDistance'' - If player camera is beyond this distance, don't render.
''CoronaTexture'' - Corona texture.<br>
*''bNoUpdateOnInvis'' - When not rendering emitter actor, do not update the particles either.
''bCheckLineOfSight'' - Should coronas disappear when behind some wall?<br>
 
''bParticleCoronaEnabled'' - Whatever if particle coronas are enabled.<br>
'''EmCorona''':
''CoronaFadeTimeScale'' - The time it will take for coronas to fade in/out when falling out of sight or back in sight.<br>
*''CoronaColor'' - Corona color range.
''CoronaMaxScale'' - Maximum corona scaling.<br>
*''CoronaTexture'' - Corona texture.
''CoronaScaling'' - The scale of the coronas.<br>
*''bCheckLineOfSight'' - Should coronas disappear when behind some wall?
''MaxCoronaDistance'' - Maximum distance coronas should appear in.<br>
*''bParticleCoronaEnabled'' - Whatever if particle coronas are enabled.
''CoronaOffset'' - Offset of the coronas in the particles.<br>
*''CoronaFadeTimeScale'' - The time it will take for coronas to fade in/out when falling out of sight or back in sight.
''bCOffsetRelativeToRot'' - Whatever if corona offset should be relative to particle rotation.<br>
*''CoronaMaxScale'' - Maximum corona scaling.
'''EmRevolution''':<br>
*''CoronaScaling'' - The scale of the coronas.
''bRevolutionEnabled'' - Particle revolving should be enabled.<br>
*''MaxCoronaDistance'' - Maximum distance coronas should appear in.
''RevolutionOffset'' - Revolving offset for the particles.<br>
*''CoronaOffset'' - Offset of the coronas in the particles.
''RevolutionsPerSec'' - Revolving speed.<br>
*''bCOffsetRelativeToRot'' - Whatever if corona offset should be relative to particle rotation.
'''EmVisuals:'''<br>
 
''ParticleTextures'' - Random/Animation sprite frames for particles.<br>
'''EmRevolution''':
''bUseRandomTex'' - Should use random frame or else animate the textures.<br>
*''bRevolutionEnabled'' - Particle revolving should be enabled.
''ParticleStyle'' - The style of the particles.<br>
*''RevolutionOffset'' - Revolving offset for the particles.
''StartingScale'' - Starting scale of the particles.<br>
*''RevolutionsPerSec'' - Revolving speed.
''TimeScale'' - Time scaling of the particles (timescale 0-1).<br>
 
''PartSpriteForwardZ'' - The particles render forward Z (render trick).<br>
'''EmVisuals''':
''ParticleColor'' - The color of the particles.<br>
*''ParticleTextures'' - Random/Animation sprite frames for particles.
''ParticleColorScale'' - Color time scaling.<br>
*''bUseRandomTex'' - Should use random frame or else animate the textures.
'''EmFade:'''<br>
*''ParticleStyle'' - The style of the particles.
''FadeInTime'' - Fade in time scale (0-1).<br>
*''StartingScale'' - Starting scale of the particles.
''FadeOutTime'' - Fade out start time (0-1).<br>
*''TimeScale'' - Time scaling of the particles (timescale 0-1).
''FadeInMaxAmount'' - Max. scale glow when fully faded in (0-2).<br>
*''PartSpriteForwardZ'' - The particles render forward Z (render trick).
'''EmPosition:'''<br>
*''ParticleColor'' - The color of the particles.
''SpawnPosType'' - Should use Box/Sphere/Cylinder spawn offset?<br>
*''ParticleColorScale'' - Color time scaling.
''BoxLocation'' - Box spawning offset for particles.<br>
 
''SphereCylinderRange'' - Sphere/Cylinder offset range.<br>
'''EmFade:'''
''bRelativeToRotation'' - Spawning offset should be in relative to actor rotation.<br>
*''FadeInTime'' - Fade in time scale (0-1).
''bUseRelativeLocation'' - All particles location/rotation/velocity should be relative to actor?<br>
*''FadeOutTime'' - Fade out start time (0-1).
'''EmTrigger:'''<br>
*''FadeInMaxAmount'' - Max. scale glow when fully faded in (0-2).
''TriggerAction'' - Emitter actor triggering action.<br>
 
''SpawnParts'' - If spawn particles, then how many?<br>
'''EmPosition:'''
'''EmSpeed:'''<br>
*''SpawnPosType'' - Should use Box/Sphere/Cylinder spawn offset?
''SpeedScale'' - Particles speed scale in relative time (0-1).<br>
*''BoxLocation'' - Box spawning offset for particles.
''ParticleAcceleration'' - Particles acceleration range.<br>
*''SphereCylinderRange'' - Sphere/Cylinder offset range.
''SpawnVelType'' - Whatever it should use Box/Sphere/Cylinder velocity for the particle.<br>
*''bRelativeToRotation'' - Spawning offset should be in relative to actor rotation.
''BoxVelocity'' - Box velocity for particles.<br>
*''bUseRelativeLocation'' - All particles location/rotation/velocity should be relative to actor?
''SphereCylVelocity'' - Sphere/Cylinder range.<br>
 
''bVelRelativeToRotation'' - Velocity should be relative to actor rotation?<br>
'''EmTrigger:'''
''bCylRangeBasedOnPos'' - Sphere/Cylinder velocity range should be relative to particle spawn offset?<br>
*''TriggerAction'' - Emitter actor triggering action.
''EmCollision'':<br>
*''SpawnParts'' - If spawn particles, then how many?
''ParticleCollision'' - Collision type: Nothing/Walls/All Actors/Projectile target actors.<br>
 
''ParticleExtent'' - Particle collision size.<br>
'''EmSpeed:'''
''ParticleBounchyness'' - Bounchyness of the particles (when hitting wall/actor).<br>
*''SpeedScale'' - Particles speed scale in relative time (0-1).
'''EmLight (not present in 227f any more):'''<br>
*''ParticleAcceleration'' - Particles acceleration range.
''bLightParticles'' - Particles should have lighting.<br>
*''SpawnVelType'' - Whatever it should use Box/Sphere/Cylinder velocity for the particle.
''PartLightBrightness'' - Particle light brightness.<br>
*''BoxVelocity'' - Box velocity for particles.
''PartHue'' - Light hue.<br>
*''SphereCylVelocity'' - Sphere/Cylinder range.
''PartSaturation'' - Light saturation.<br>
*''bVelRelativeToRotation'' - Velocity should be relative to actor rotation?
''PartLightRadius'' - Light radius.<br>
*''bCylRangeBasedOnPos'' - Sphere/Cylinder velocity range should be relative to particle spawn offset?
'''EmSound:'''<br>
 
''ImpactSound'' - Particle impact sound (when hitting wall/actor).<br>
'''EmCollision''':
''SpawnSound'' - Particle spawn sound.<br>
*''ParticleCollision'' - Collision type: Nothing/Walls/All Actors/Projectile target actors.
''DestroySound'' - Particle destroy sound.<br>
*''ParticleExtent'' - Particle collision size.
'''EmMeshPos:'''<br>
*''ParticleBounchyness'' - Bounchyness of the particles (when hitting wall/actor).
''UseActorCoords'' - Use this mesh actor's vertex points positions.<br>
 
''VertexLimitBBox'' - Box limitation of which vertexes it should only emit in.<br>
'''EmSound:'''
''SingleIVert'' - Single vertex number it should emit on.<br>
*''ImpactSound'' - Particle impact sound (when hitting wall/actor).
''bUseMeshAnim'' - Whatever if it should use animated frame rather than first static frame (slower option).<br>
*''SpawnSound'' - Particle spawn sound.
'''EmCombiner:'''<br>
*''DestroySound'' - Particle destroy sound.
''ParticleSpawnTag'' - Combiner emitter which should spawn an own particle at newly spawned particles position.<br>
 
''ParticleKillTag'' - Combiner emitter which should spawn an own particle at a newly destructed particle position.<br>
'''EmMeshPos:'''
''ParticleWallHitTag'' - Same as above except spawn at the point where particles hit a wall.<br>
*''UseActorCoords'' - Use this mesh actor's vertex points positions.
''ParticleLifeTimeTag'' - Same as above except spawn particles constantly at the living particles.<br>
*''VertexLimitBBox'' - Box limitation of which vertexes it should only emit in.
''ParticleLifeTimeSDelay'' - The time delay how often lifespan particles should be spawned.<br>
*''SingleIVert'' - Single vertex number it should emit on.
''CombinedParticleCount'' - When this emitter actor is being used as combiner emitter, spawn this many particles on my combining emitter actor.<br>
*''bUseMeshAnim'' - Whatever if it should use animated frame rather than first static frame (slower option).
'''EmForces:'''<br>
 
''ForcesTags'' - The tags of the emitter force actors that should be applied on our particles.<br>
'''EmCombiner:'''
<br>
*''ParticleSpawnTag'' - Combiner emitter which should spawn an own particle at newly spawned particles position.
This is simplest form of particle emitter with the best performance in game which can be used for most effects.<br>
*''ParticleKillTag'' - Combiner emitter which should spawn an own particle at a newly destructed particle position.
*''ParticleWallHitTag'' - Same as above except spawn at the point where particles hit a wall.
*''ParticleLifeTimeTag'' - Same as above except spawn particles constantly at the living particles.
*''ParticleLifeTimeSDelay'' - The time delay how often lifespan particles should be spawned.
*''CombinedParticleCount'' - When this emitter actor is being used as combiner emitter, spawn this many particles on my combining emitter actor.
*'''EmForces:'''
*''ForcesTags'' - The tags of the emitter force actors that should be applied on our particles.
 
The following properties are no longer present in 227f as beyond:
 
'''EmLight:'''
*''bLightParticles'' - Particles should have lighting.
*''PartLightBrightness'' - Particle light brightness.
*''PartHue'' - Light hue.
*''PartSaturation'' - Light saturation.
*''PartLightRadius'' - Light radius.


=== Sprite Emitter ===
=== Sprite Emitter ===


'''EmRotation:'''<br>
Basically the same as Emitter, but supports rotating particles.
''RotationsPerSec'' - How fast the particles should rotate.<br>
 
''InitialRot'' - The initial rotation of the particles.<br>
'''EmRotation:'''
''RotNormal'' - For specific particle direction.<br>
*''RotationsPerSec'' - How fast the particles should rotate.
''ParticleRotation'' - Type of direction the particles should have (i.e.: face the direction they are flying or face normal direction).<br>
*''InitialRot'' - The initial rotation of the particles.
<br>
*''RotNormal'' - For specific particle direction.
Basicly alike Emitter but supports rotating particles.
*''ParticleRotation'' - Type of direction the particles should have (i.e.: face the direction they are flying or face normal direction).


=== Mesh Emitter ===
=== Mesh Emitter ===


'''EmMesh:'''<br>
This emitter's particles are rendered as meshes and can even be animated.
''ParticleMesh'' - Display mesh of the particle.<br>
 
''bRenderParticles'' - Should render mesh in "bParticles".<br>
'''EmMesh:'''
''bParticlesRandFrame'' - Should particles mesh use random texture animation frame.<br>
*''ParticleMesh'' - Display mesh of the particle.
'''EmRotation:'''<br>
*''bRenderParticles'' - Should render mesh in "bParticles".
''ParticleRotation'' - Particles rotation type.<br>
*''bParticlesRandFrame'' - Should particles mesh use random texture animation frame.
''bRelativeToMoveDir'' - Particles should have rotation relative to movement direction.<br>
*'''EmRotation:'''
''RotationsPerSec'' - Rotation rate of particles.<br>
*''ParticleRotation'' - Particles rotation type.
''InitialRot'' - Initial rotation of the particles.<br>
*''bRelativeToMoveDir'' - Particles should have rotation relative to movement direction.
'''EmAnim:'''<br>
*''RotationsPerSec'' - Rotation rate of particles.
''bAnimateParticles'' - Particles should animate.<br>
*''InitialRot'' - Initial rotation of the particles.
''ParticleAnim'' - Particle animation sequence.<br>
*'''EmAnim:'''
''PartAnimRate'' - Particle animation rate.<br>
*''bAnimateParticles'' - Particles should animate.
''bPartAnimLoop'' - Particle should loop animation.<br>
*''ParticleAnim'' - Particle animation sequence.
<br>
*''PartAnimRate'' - Particle animation rate.
This supports emitting mesh particles (with animations), nothing special.<br>
*''bPartAnimLoop'' - Particle should loop animation.


=== Weather Emitter ===
=== Weather Emitter ===


''PartTextures'' - Random texture for the particles.<br>
An easy way of adding nice weather effect to your map (such as rain, snow or dust).
''Position'' - Spawning offset around player camera.<br>
 
''AppearArea'' - Appearance area around actor location (when AppearAreaType is Area).<br>
Note that the emitter is directional; particles move according to its rotation.
''Lifetime'' - Particle lifetime.<br>
 
''Speed'' - Particle speed.<br>
'''EmWeather:'''
''Size'' - Particle size.<br>
''PartTextures'' - Random texture for the particles.
''WeatherType'' - Whatever the weather type is Rain/Snow/Dust (falling type).<br>
''Position'' - Spawning offset around player camera.
''ParticleCount'' - Maximum number of particles.<br>
''AppearArea'' - Appearance area around actor location (when AppearAreaType is Area).
''PartStyle'' - Style of particles.<br>
''Lifetime'' - Particle lifetime.
<br>
''Speed'' - Particle speed.
Easy way of adding nice weather effect to your map (such as rain, snow or dust), notice that particles fly in actor direction.
''Size'' - Particle size.
''WeatherType'' - Whatever the weather type is Rain/Snow/Dust (falling type).
''ParticleCount'' - Maximum number of particles.
''PartStyle'' - Style of particles.
 


=== Beam Emitter ===
=== Beam Emitter ===
Line 151: Line 174:
== Particle Forces ==
== Particle Forces ==


These forces can be applied for in level Emitter actors to have some special reactions at specific parts of the map (such as a vent that sucks up smoke).<br>
These forces can be applied to in-level Emitter actors to have some special reactions at specific parts of the map (such as a vent that sucks up smoke).
<br>
 
''KillParticleForce'' - Kills any nearby particles.<br>
''KillParticleForce'' - Kills any nearby particles.
''ParticleConcentrateForce'' - Concentrate all particles to fly toward this actor.<br>
''ParticleConcentrateForce'' - Concentrate all particles to fly toward this actor.
''VelocityForce'' - Force particles to fly toward some specific direction.<br>
''VelocityForce'' - Force particles to fly toward some specific direction.


== Misc features ==
== Misc features ==


''CollisionMeshActor'' - Possibility to give mesh actors a 3D collision shape.<br>
''CollisionMeshActor'' - Possibility to give mesh actors a 3D collision shape.
''ActorAttachActorRI'' - Render iterator type, attach actor on some other actor.<br>
''ActorAttachActorRI'' - Render iterator type, attach actor on some other actor.
''ActorAttachMeshActorRI'' - Render iterator type, attach actor on some other mesh actor's mesh surface.<br>
''ActorAttachMeshActorRI'' - Render iterator type, attach actor on some other mesh actor's mesh surface.
''ActorFaceCameraRI'' - Render iterator type, force actor to face camera at all time.<br>
''ActorFaceCameraRI'' - Render iterator type, force actor to face camera at all time.
''DistantLightActor'' - Normal light actor with an extended lighting distance option.<br>
''DistantLightActor'' - Normal light actor with an extended lighting distance option.
''SpecialTextObj'' - Can render text with color tags and EMO-icons in a fast method.<br>
''SpecialTextObj'' - Can render text with color tags and EMO-icons in a fast method.
''EmitterAPIMisc'' - Misc UnrealScript features.<br>
''EmitterAPIMisc'' - Misc UnrealScript features.


==Triggering an Emitter==
==Triggering an Emitter==

Revision as of 14:21, 12 June 2014

ParticleEmitterActor.png

Emitter
Subclass of: Actor> XParticleEmitter > XEmitter
Included since: 227a

The Unreal 227 Particle Emitter system is a potent tool for mappers and modders, as it allows to add a great deal of advanced effects to both environments and actors.

Note: When creating Emitter subclasses for usage in UScript code, subclass the classes prepended with an X, such as XMeshEmitter etc. For placement in maps, use classes without the X such as Emitter, SpriteEmitter etc. Triggered emitters should use Network classes.

Emitter Types

The Particle Emitter classes come in various flavors: Normal, Sprite (adds rotation support), Mesh, Weather and Beam. Since 227f, it is also possible to combine multiple emitters into one connected system using the Combiner properties.

Emitter

This is simplest form of particle emitter with the best in-game performance which can be used for most effects.

EmGeneral:

  • bDisabled - Emitter is disable, no more spawning new particles.
  • bRespawnParticles - Respawn particles that have died.
  • bAutoDestroy - Auto-destroy emitter actor after all particles have died (can be used for temp effects).
  • bAutoReset - Auto-reset emitter after all particles have died and AutoResetTime has passed.
  • bSpawnInitParticles - Spawn initial particles, or else wait for possible auto-reset (only when bRespawnParticles is false).
  • MaxParticles - Maximum amount of particles.
  • ParticlesPerSec - Amount of particles to spawn per second (0 = auto assign the value).
  • LifetimeRange - How long time particles should live.

EmVisibility:

  • bStasisEmitter - Similar to Actor bStasis, but stop hide particles once player isn't seeing the emitter's zone.
  • bBoxVisibility - If enabled, visibility box will be used.
  • VisibilityBox - Only update when any parts of this box radius is within player camera sight.
  • bDistanceCulling - If enabled, use distance culling.
  • CullDistance - If player camera is beyond this distance, don't render.
  • bNoUpdateOnInvis - When not rendering emitter actor, do not update the particles either.

EmCorona:

  • CoronaColor - Corona color range.
  • CoronaTexture - Corona texture.
  • bCheckLineOfSight - Should coronas disappear when behind some wall?
  • bParticleCoronaEnabled - Whatever if particle coronas are enabled.
  • CoronaFadeTimeScale - The time it will take for coronas to fade in/out when falling out of sight or back in sight.
  • CoronaMaxScale - Maximum corona scaling.
  • CoronaScaling - The scale of the coronas.
  • MaxCoronaDistance - Maximum distance coronas should appear in.
  • CoronaOffset - Offset of the coronas in the particles.
  • bCOffsetRelativeToRot - Whatever if corona offset should be relative to particle rotation.

EmRevolution:

  • bRevolutionEnabled - Particle revolving should be enabled.
  • RevolutionOffset - Revolving offset for the particles.
  • RevolutionsPerSec - Revolving speed.

EmVisuals:

  • ParticleTextures - Random/Animation sprite frames for particles.
  • bUseRandomTex - Should use random frame or else animate the textures.
  • ParticleStyle - The style of the particles.
  • StartingScale - Starting scale of the particles.
  • TimeScale - Time scaling of the particles (timescale 0-1).
  • PartSpriteForwardZ - The particles render forward Z (render trick).
  • ParticleColor - The color of the particles.
  • ParticleColorScale - Color time scaling.

EmFade:

  • FadeInTime - Fade in time scale (0-1).
  • FadeOutTime - Fade out start time (0-1).
  • FadeInMaxAmount - Max. scale glow when fully faded in (0-2).

EmPosition:

  • SpawnPosType - Should use Box/Sphere/Cylinder spawn offset?
  • BoxLocation - Box spawning offset for particles.
  • SphereCylinderRange - Sphere/Cylinder offset range.
  • bRelativeToRotation - Spawning offset should be in relative to actor rotation.
  • bUseRelativeLocation - All particles location/rotation/velocity should be relative to actor?

EmTrigger:

  • TriggerAction - Emitter actor triggering action.
  • SpawnParts - If spawn particles, then how many?

EmSpeed:

  • SpeedScale - Particles speed scale in relative time (0-1).
  • ParticleAcceleration - Particles acceleration range.
  • SpawnVelType - Whatever it should use Box/Sphere/Cylinder velocity for the particle.
  • BoxVelocity - Box velocity for particles.
  • SphereCylVelocity - Sphere/Cylinder range.
  • bVelRelativeToRotation - Velocity should be relative to actor rotation?
  • bCylRangeBasedOnPos - Sphere/Cylinder velocity range should be relative to particle spawn offset?

EmCollision:

  • ParticleCollision - Collision type: Nothing/Walls/All Actors/Projectile target actors.
  • ParticleExtent - Particle collision size.
  • ParticleBounchyness - Bounchyness of the particles (when hitting wall/actor).

EmSound:

  • ImpactSound - Particle impact sound (when hitting wall/actor).
  • SpawnSound - Particle spawn sound.
  • DestroySound - Particle destroy sound.

EmMeshPos:

  • UseActorCoords - Use this mesh actor's vertex points positions.
  • VertexLimitBBox - Box limitation of which vertexes it should only emit in.
  • SingleIVert - Single vertex number it should emit on.
  • bUseMeshAnim - Whatever if it should use animated frame rather than first static frame (slower option).

EmCombiner:

  • ParticleSpawnTag - Combiner emitter which should spawn an own particle at newly spawned particles position.
  • ParticleKillTag - Combiner emitter which should spawn an own particle at a newly destructed particle position.
  • ParticleWallHitTag - Same as above except spawn at the point where particles hit a wall.
  • ParticleLifeTimeTag - Same as above except spawn particles constantly at the living particles.
  • ParticleLifeTimeSDelay - The time delay how often lifespan particles should be spawned.
  • CombinedParticleCount - When this emitter actor is being used as combiner emitter, spawn this many particles on my combining emitter actor.
  • EmForces:
  • ForcesTags - The tags of the emitter force actors that should be applied on our particles.

The following properties are no longer present in 227f as beyond:

EmLight:

  • bLightParticles - Particles should have lighting.
  • PartLightBrightness - Particle light brightness.
  • PartHue - Light hue.
  • PartSaturation - Light saturation.
  • PartLightRadius - Light radius.

Sprite Emitter

Basically the same as Emitter, but supports rotating particles.

EmRotation:

  • RotationsPerSec - How fast the particles should rotate.
  • InitialRot - The initial rotation of the particles.
  • RotNormal - For specific particle direction.
  • ParticleRotation - Type of direction the particles should have (i.e.: face the direction they are flying or face normal direction).

Mesh Emitter

This emitter's particles are rendered as meshes and can even be animated.

EmMesh:

  • ParticleMesh - Display mesh of the particle.
  • bRenderParticles - Should render mesh in "bParticles".
  • bParticlesRandFrame - Should particles mesh use random texture animation frame.
  • EmRotation:
  • ParticleRotation - Particles rotation type.
  • bRelativeToMoveDir - Particles should have rotation relative to movement direction.
  • RotationsPerSec - Rotation rate of particles.
  • InitialRot - Initial rotation of the particles.
  • EmAnim:
  • bAnimateParticles - Particles should animate.
  • ParticleAnim - Particle animation sequence.
  • PartAnimRate - Particle animation rate.
  • bPartAnimLoop - Particle should loop animation.

Weather Emitter

An easy way of adding nice weather effect to your map (such as rain, snow or dust).

Note that the emitter is directional; particles move according to its rotation.

EmWeather: PartTextures - Random texture for the particles. Position - Spawning offset around player camera. AppearArea - Appearance area around actor location (when AppearAreaType is Area). Lifetime - Particle lifetime. Speed - Particle speed. Size - Particle size. WeatherType - Whatever the weather type is Rain/Snow/Dust (falling type). ParticleCount - Maximum number of particles. PartStyle - Style of particles.


Beam Emitter

TODO: Add information!!

Particle Forces

These forces can be applied to in-level Emitter actors to have some special reactions at specific parts of the map (such as a vent that sucks up smoke).

KillParticleForce - Kills any nearby particles. ParticleConcentrateForce - Concentrate all particles to fly toward this actor. VelocityForce - Force particles to fly toward some specific direction.

Misc features

CollisionMeshActor - Possibility to give mesh actors a 3D collision shape. ActorAttachActorRI - Render iterator type, attach actor on some other actor. ActorAttachMeshActorRI - Render iterator type, attach actor on some other mesh actor's mesh surface. ActorFaceCameraRI - Render iterator type, force actor to face camera at all time. DistantLightActor - Normal light actor with an extended lighting distance option. SpecialTextObj - Can render text with color tags and EMO-icons in a fast method. EmitterAPIMisc - Misc UnrealScript features.

Triggering an Emitter

To add a triggerable emitter, create and set your emitter as desired. In emGeneral, set bDisabled to TRUE, so that it is not on by default, and make sure emTrigger has TriggerAction set to ToggleDisabled. Your effect is now set on and off by the triggering of the emitter via normal triggers. If you want your emitter to be on by default, simply put bDisabled to FALSE, so that the first triggering of the emitter will set it off.

You can also make your emitter emit only once after it is triggered. Set bDisabled to TRUE, and in the emitter properties, still in emGeneral, set bRespawnParticles to FALSE, so that after emitting the number of particles specified in MaxParticles, the emitter stops emitting. I recommend setting bAutoDestroy to true afterwards, so that the actor is destroyed in the game and does not use memory - useful if you have many such triggerable effects.

Spawning by bursts

If you want all the particles to be emitted at once when the emitter goes on - at the beginning of the game by default, or when triggered if set up this way -, simple set ParticlesPerSec to a huge number greatly superior to the MaxParticles value. If you want to emit 200 particles in one huge burst, set ParticlesPerSec to something like 5000. This will insure the game spawns your 200 particles as quickly as if it had to spawn these 5000 particles in the same second. As soon as one particle is destroyed, however, another one will be spawned, which means you will have several successive bursts. If your lifetime has a wide range (for example Max = 15 and Min = 5), the second burst will be much less immediate and may take some time, as the engine waits for one particle to die to spawn another one. If you want your bursts to be evenly spaced and of the same duration, make sure the difference betweent he Min and Max values of your particles' lifetime is very small or non-existent (same Min and Max). If you set bRespawnParticles to False with this template, your entire emitter will drop its entire load of particles in one go and then be useless - remember to set it to bAutoDestroy.