I search for solutions in this order: Past Code, Unreal Source, Wiki, BUF, groups.yahoo, google, screaming at monitor. – RegularX
Legacy:Emitter
The Emitter class is Epic's particle emitter system (the other system is the xEmitter). These can be placed in maps for a large variety of effects (waterfall, fog, smoke, sparks); they are also used by scripted elements such as the Redeemer explosion, the swirly lights over weapon bases, and the Ion Cannon explosion and beam.
The Emitter system works by using subobjects, which are all ParticleEmitters (or child classes of this). It's these subobjects than actually generate particles, and one Emitter can hold many of them.
Remember to set bNoDelete=False if you want to create a spawnable subclass.
Contents
Properties[edit]
Emitter[edit]
- array<ParticleEmitter> Emitters
The Emitter -> Emitters array holds inline objects: the property dialog expands to show their properties. See Add An Inline Object for how to use this.
It is possible to add an object to this array using unrealscript. Emitters is a regular dynamic array of ParticleEmitters. Whether the new ParticleEmitters will work is untested.
Using the same ParticleEmitter object within another Emitter means you get the same properties – but only half the particles for each Emitter. The maximum number of particles is being shared out between them. The velocity goes weird too.
Main[edit]
- bool AutoDestroy
- If this is set to true, the emitter will destroy itself when all the particles of its emitters have died.
- bool AutoReset
- If this is set to true, the emitter will reset itself and all its emitters when all the particles of its emitters have died.
- bool DisableFogging
- Distance fog will have no effect on particles.
- rangevector GlobalOffsetRange
- range TimeTillResetRange
- If AutoReset is true, this is the time delay range for resetting.
Hidden[edit]
- bool ActorForcesEnabled
- box BoundingBox
- bool DeleteParticleEmitters
- float EmitterHeight
- float EmitterRadius
- vector GlobalOffset
- int Initialized
- ParticleMaterial ParticleMaterial
- float TimeTillReset
- bool UseParticleProjectors
Known Subclasses[edit]
- BulldogDust
- DeResPart
- LavaDeath
- MutantGlow (Epic Bonuspack)
- NewIonEffect
- PlayerSpawnEffect (actually this is the pickup respawn effect)
- RedeemerExplosion
- RedeemerTrail
- Spiral (the sparkly things over xPickUpBases)
Related Topics[edit]
- Particle System
- ParticleEmitter
- ParticleEmitter Cookbook
- udn2:EmittersReference
- udn2:EmittersExamples
Custom Emitters[edit]
Discussion[edit]
Foxpaw: Apparently if you get too many particles, the game exits without any error messages or anything - just drops back to windows. At first I thought it was my crappy video card overheating or something, but then I found that it was actually a result of a particle system I had made. (actually, a particle system composed of a pile of other particle systems.)
EricBlade: I just discovered that Emitters[0].MaxActiveParticles *= 1.2 will crash. Anything between 0.0 and 1.19 seems to work, 1.2 or higher is a crash. Unfortunatly, this only seems to affect placed in level Emitters, and not dynamically Spawn()ed emitters. And the MaxParticles is a const, so no access to that one from the code. :-S
MythOpus: Using an animated texture with an emitter also crashes UnrealEd.
Vaptor: i found theres 1 exception Firetextures/WetTextures they seem to work no crashes.
However Editor sometimes will corrupt the new texture package when you try to save a firetexture.
how it was corrupted is the worst part the data looks fine but crashes when it tries loading.
Murphy: Animated textures work on emitters in UT2004. I don't know since which engine version, but I used a two-frame animated texture in an emitter without problems (v3369) and it works in Killing Floor, too. Just to let everyone know so no one shies away from using this because they read on unreal wiki that it crashes unrealed. :)