Gah - a solution with more questions. – EntropicLqd
Legacy:ParticleEmitter/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.