Particle Force

From Oldunreal-Wiki
Revision as of 22:05, 30 April 2018 by Hellkeeper (talk | contribs)
Jump to navigation Jump to search
The three ParticleForces: from left to right, Velocity Particle, ParticleConcentrate and KillParticle.

Particle Forces are new actors introduced by 227, designed to interact with a Particle Emitter. There are three different Forces: KillParticleForce, ParticleConcentrateForce and VelocityForce.

ParticleForces are added to the map and linked to a ParticleEmitter. When an emitter is linked to a force, the behaviour of its particles is modified whenever they enter the radius of the ParticleForce. KillParticle destroys particles. ParticleConcentrate acts a magnet, and the surrounding particles will be drawn towards the particle emitter or an offest point relative to it. VelocityForce modifies the speed at which the particles are moving.

To use a ParticleForce, add it to the map in the vicinity of a working emitter, and make sure you have activated the RealTime Preview. The classes you need to select in the ActorBrowser are the subclasses of XParticleForces*. When added to the map, it will affect nothing: to link it to an emitter, give the ParticleForce a tag, and in the properties of the emitter, under emForces, add the new tag to the list of ForcesTag. If you did it correctly, a line appears when the emitter (not the force) is selected, linking the forces to the emitter itself.

Notice the two blue lines linking the emitter to the two forces (map DmExar). Notice that you can give the same tag to several forces and link them all at once in the emitter.

Generic Force settings

All ParticleForces have the XParticleForces properties which are generic properties not dependant on the way the force itself acts.

  • bEnabled: Default True; Is the force active? You should not need to change this, except for testing purpose.
  • bUseBoxForcePosition: Default False; is set to False, the particles will be affected by the force when entering the spherical radius around the Force determined by the EffectingRadius property. If set to True, the particles will be affected when entering the box specified by the settings of EffectingBox.
  • EffectingBox: Default: all max to 200, all min to -200; Allows you to enter the boudaries of a box in which the particles will be affected instead of a radius. bUseBoxForcePosition must be set to true for this to have an impact.
  • EffectingRadius: Default 300; The size of the sphere in which the particles will be affected by the force. bUseBoxForcePosition must be set to False for this to have an impact.
  • EffectPartLifeTime: Default Min 0, Max 1; This property determines which particles are affected by the force: 0 is the moment a particle is spawned and 1 is the moment it is destroyed. A particle's lifetime is always ranged on such a 0-1 scale. If this property is set to Min 0.5, Max 1, only the particles that have lived half their lives will be affected. If you set it to Min 0, Max 0.5, particles will be affected from the moment they are spawned until they reach the middle of their lives.

ParticleConcentrateForce

The ParticleConcentrateForce sucks particles in its zone of effect towards a single point - by default, itself - and is the only ParticleForce to have its properties divided between two tabs, ParticleConcentrateForce and ParticleDistanceDrain.

ParticleConcentrateForce

bSetsAcceleration:False
bSetsAcceleration:True
  • bSetsAcceleration: Default False; This property determines how the particles are affected. When set to False, the particles will acquire speed as they are drawn towards the force, race beyond the center of attraction and then continue there journey at their original speed in the new direction they have acquired from being accelerated towards the "magnet". If set to True, the particles will be affected by the force and acquire speed as they are drawn toward the force. This will not be speed, but acceleration, which means their absolute speed will keep on increasing. Eventually they will race out of the ParticleConcentrate's radius, but keep their speed and continue their curved journey at an increased pace.
  • CenterPointOffset: Default, none; By default, the particles are sucked towards the position of the ParticleForce itself. This property allows you to offset the center of attraction.
  • DrainSpeed: Default 200; Speed of the attraction. The higher the value, the more powerful the attraction.

ParticleDistanceDrain

  • bActorDistanceSuckIn: Default False; If set to true, the closer the particles are to the center of attraction, the stronger the force becomes. This pretty much cancels most of the properties of ParticleConcentrateForce and XParticleForces.
  • MaxDistance: Default 0; Distance beyond which particles become totally unaffected by the force - this property is a radius setting specific to the ParticleConcentrateForce using the bActorDistanceSuckIn mode.

KillParticleForce

This ParticleForce is pretty simple: when an particle enters its radius, its lifetime is reduced. It has only one property under KillParticleForce:

  • LifeTimeDrainAmount: Default 4; number of seconds by which the lifetime of the particle is reduced. If the number is superior to the remaining lifetime of the particle, it is destroyed immediately.

VelocityForce

When a particle enters the radius of the VelocityForce, its speed changes. The VelocityForce has only three properties under VelocityForce:

  • bChangeAcceleration: Default, False; Changes the acceleration of the particle instead of its speed.
  • bInstantChange: Default, False; If set to True, the speed will be instantly used. If false, the velocity will be added to the current speed of the particle.
  • VelocityToAdd: Default: none; Velocity that will be added to the particle.
bChangeAcceleration: True; bInstantChange: False
bChangeAcceleration: True; bInstantChange: True

Because the two boolean values bChangeAcceleration and bInstantChange affect different variables of the particle's speed (its velocity and its acceleration), it is possible to have them interact. If InstantChange is True and Change Acceleration is false, any particle entering the radius of the VelocityForce will instantly lose any previous direction and speed and use the velocity specified in VelocityToAdd. If ChangeAcceleration is True and InstantChange is false, the particle will keep its current velocity but also drift away along the lines of VelocityToAdd. If Both are true, the particles entering the radius will keep their speed but also immediately start drifting away.

Final notes

You can use a great number of forces on a single emitter by entering all their tags in the emForces list of the emitter. You can also give several forces the same tag without problem. You can also link several emitters to the same forces and have interesting interactions. Remember that too much particles is a great performance killer and do not go overboard with them.