Gah - a solution with more questions. – EntropicLqd

Legacy:ParticleEmitter/Collision

From Unreal Wiki, The Unreal Engine Documentation Site
Jump to: navigation, search
UT2003 :: Object >> ParticleEmitter (Property Group: Collision)

This group controls the particles' collision behavior. By default, UseCollision is false and particles collide with nothing in the world.

Colliding particles falling through objects[edit]

If you want particles to fall through certain objects (eg static meshes that represent grates), set Collision -> bCollideActors on these. (But this will caused players to fall through them too.... :( )You will need to do a rebuild for the ParticleEmitter to notice that this property has changed.

Idle particles causing framerate hit and collision sounds playing every frame[edit]

Colliding particles that stay on ground after bouncing (ie: DampingFactorRange<1, Acceleration.Z<0 and MaxCollisions=0) can waste obscene amounts of cpu time. This happens because they aren't really idle, they are making infinitely small bounces at least once per frame. Sometimes this movement is visible, the particle vibrates and travels very slowly up slopes. When such emitter has collision sound set up it will be replayed every frame once particle is "idle" on ground.

To "freeze" particle in place once it's idle use the MinSquaredVelocity property, values around 2000 (45uu/s) work well. The idle particle framerate hit will be gone and collision sounds will play properly.

Properties[edit]

array<plane> CollisionPlanes 
Can be used to specify planes in the Unreal world the particle will collide with. The planes will be used for collision when UseCollisionPlanes is True.
rangevector DampingFactorRange 
Damping applied to the particle's velocity when it collides with something.
vector ExtentMultiplier 
A multiplier for the particles' size for collision calculations.
range MaxCollisions 
Maximum number of collisions before the particle is destroyed. This property will only be used when UseMaxCollisions is True.
int SpawnAmount 
The number of sub-particles spawned when the particles collide with something.
rangevector SpawnedVelocityScaleRange 
The velocity of the spawned sub-particles.
int SpawnFromOtherEmitter 
The ParticleEmitter within the same Emitter actor used for the sub-particles.
bool UseCollision 
Whether the particles should use collision. If False, they will fall through static meshes, BSP, etc.
bool UseCollisionPlanes 
Whether the particles should collide with the CollisionPlanes.
bool UseMaxCollisions 
Whether the particles should be destroyed when they reach their maximum number of collisons.
bool UseSpawnedVelocityScale 
Whether to use SpawnedVelocityScaleRange for collision sub-particles.