User Tools

Site Tools


particle_editor
Advertisement

The Particle Editor

The particle editor is accessed from the top menu bar → Build → Object → Edit Particles. It allows you to create a particle system in a prim (or object), setting all the parameters you wish, and observing them change as you do so. When you are satisfied with the results, you can “inject” a particle script into the object. The script produced will invoke the llParticleSystem function with the appropriate parameters.

NOTE: The object in question must be modifiable for you.

Particle Editor

To start, right-click and edit the prim or object you wish to work on (if you wish to insert the script into a specific linked prim, then select Edit Linked Parts, and click on the desired prim). Then select Build → Object → Edit particles. A window like the one on the right will open. There are a great many options available to control the particle effect. This wiki page cannot give a full tutorial on what all can be achieved with particles. For that, we highly recommend the renowned Particle Lab, created by Jopsy Pendragon.

Parameters (Rules)

  • Pattern: This can assume one of the following values:
    • Explode: Sprays particles outwards in a spherical area. The Initial velocity of each particle is determined by Burst Speed Min and Burst Speed Max. The EXPLODE pattern ignores the Angle parameters.
    • Angle: Sprays particles outward in a flat circular, semi-circular, arc or ray shaped areas, as defined by Angle Begin and Angle End. The circular pattern radiates outwards around the prim's local X axis line.
    • Angle Cone: Sprays particles outwards in a spherical, sub-spherical, conical or ring shaped area, as defined by the parameters Angle Begin and Angle End. This pattern can be used to imitate the Explode pattern by explicitly setting angle Begin to 0.00000 and Angle End to 3.14159 (or PI) (or vice versa).
    • Angel Cone Empty: (incomplete implementation) Acts the same as the Drop pattern.
    • Drop: Creates particles with no initial velocity. This pattern will override any values given for Burst Radius, Burst Speed Min, and Burst Speed Max, setting each to 0.00000. (All patterns will behave like the Drop pattern, if Radius, Speed Min and Speed max are explicitly set to 0.0000.)
  • Burst Rate: Specifies the time interval, in seconds, between “bursts” of particles being emitted. Specifying a value of 0.0 will cause the emission of particles as fast as the viewer can do so.
  • Burst Count: Specifies the number of particles emitted in each “burst”.
  • Angle Begin: Specifies a half angle, in radians, of a circular or spherical “dimple” or conic section (starting from the emitter facing) within which particles will NOT be emitted. Valid values are the same as for Angle End, though the effects are reversed accordingly. If the pattern is Angle, the presentation is a 2D flat circular section. If Angle Cone or Angle Cone Empty is used, the presentation is a 3D spherical section. Note that the value of this parameter and Angle End are internally re-ordered such that this parameter gets the smaller of the two values.
  • Angle End: Specifies a half angle, in radians, of a circular or spherical “dimple” or conic section (starting from the emitter facing) within which particles will NOT be emitted. Valid values are 0.0, which will result in particles being emitted in a straight line in the direction of the emitter facing, to PI, which will result in particles being emitted in a full circular or spherical arc around the emitter, not including the “dimple” or conic section defined by Angle Begin. If the pattern is Angle, the presentation is a 2D flat circular section. If Angle Cone or Angle Cone Empty is used, the presentation is a 3D spherical section. Note that the value of this parameter and Angle Begin are internally re-ordered such that this parameter gets the larger of the two values.
  • Source Max Age: Specifies the length of time, in seconds, that the emitter will operate upon coming into view range (if the particle system is already set) or upon execution of this function (if already in view range). Upon expiration, no more particles will be emitted, except as specified above. Zero will give the particle system an infinite duration. 7)
  • Particles Max Age: Specifies the lifetime of each particle emitted, in seconds. Maximum is 30.0 seconds. During this time, the particle will appear, change appearance and move according to the parameters specified in the other sections, and then disappear.
  • Start Glow: Specifies the glow of the particles upon emission. Valid values are in the range of 0.0 (no glow) to 1.0 (full glow).
  • End Glow: Specifies the glow that the particles transition to during their lifetime. Valid values are the same as PSYS_PART_START_GLOW.
  • Scale Start: Specifies the scale or size of the particles upon emission. Valid values for each direction are 0.03125 to 4.0, in meters. The actual particle size is always a multiple of 0.03125. Smaller changes don't have any effect. Since particles are essentially 2D sprites, no Z component is offered.
  • Scale End: Specifies the scale or size the particles transition to during their lifetime. Only used if the Interpolate Scale flag is set. Valid values are the same as Scale Start.
  • Burst Radius: Specifies the distance from the emitter where particles will be created. This rule is ignored when the Follow Source flag is set. The maximum value is 50.00.
  • Burst Speed Min: Specifies the minimum value of a random range of values which is selected for each particle in a burst as its initial speed upon emission, in meters per second. Note that the value of this parameter and Burst Speed Max are internally re-ordered such that this parameter gets the smaller of the two values.
  • Burst Speed Max: Specifies the maximum value of a random range of values which is selected for each particle in a burst as its initial speed upon emission, in meters per second. Note that the value of this parameter and Burst Speed Min are internally re-ordered such that this parameter gets the larger of the two values.
  • Start Alpha: Specifies the alpha of the particles upon emission. Valid values are in the range 0.0 to 1.0. Lower values are more transparent; higher ones are more opaque.
  • End Alpha: Specifies the alpha the particles transition to during their lifetime. Only used if the Interpolate Color flag is set. Valid values are the same as Start Alpha.
  • Blend Src Alpha: Specifies how blending function uses the incoming particle's color and alpha information to produce the rendered result. Defaults to PSYS_PART_BF_SOURCE_ALPHA.
  • Blend 1 - Src alpha: Specifies how blending function uses the current framebuffer's color and alpha information to produce the rendered result. Defaults to PSYS_PART_BF_ONE_MINUS_SOURCE_ALPHA.
  • Target Key: Specifies the key of a target object, prim, or agent towards which the particles will change course and move. They will attempt to end up at the geometric center of the target at the end of their lifetime. Requires the Target Position flag be set. 8)
    To enable the field, first enable Target Position. Click the box icon to enable a picker; this allows you to auto-fill the target key field with the UUID of the prim you want. To remove the UUID, click the X icon.
  • Acceleration: Specifies a directional acceleration vector applied to each particle as it is emitted, in meters per second. Valid values are 0.0 to 100.0 for each direction both positive and negative, as region coordinates.
  • Omega: Specifies the rotational spin of the emitter in radians per second along each axis. This “unsticks” the emitter facing from the prim's positive Z axis and is noticeable in directional presentations. Prim spin (via llTargetOmega) has no effect on emitter spin. 9) 10)
  • Start Color: A vector specifying the color of the particles upon emission. Clicking it will open a color picker.
  • End Color: A vector specifying the color the particles transition to during their lifetime. Only used if the Interpolate Color flag is set.

Flags

  • Bounce: When set, specifies particles will bounce off a plane at the region Z height of the emitter. On “bounce”, each particle reverses velocity and angle. This only works for particles above the plane falling down on it.
  • Emissive: When set, particles are full-bright and are unaffected by global lighting (sunlight). Otherwise, particles will be lit depending on the current global lighting conditions. Note that point lights do illuminate non-emissive particles.
  • Follow Source: When set, particles move relative to the position of the emitter. Otherwise, particle position and movement are unaffected by the position/movement of the emitter. This flag disables the Burst Radius rule.
  • Follow Velocity: When set, particles rotate to orient their “top” towards the direction of movement or emission. Otherwise, particles are oriented vertically as their textures would appear (top of texture at top, left at left).
  • Interpolate Color: When set, particle color and alpha transition from their Start settings to their End settings during the particle's lifetime. The transition is a smooth interpolation.
  • Interpolate Scale: When set, particle size/scale transitions from its Start setting to its End setting during the particle's lifetime.
  • Target Position: When set, emitted particles change course during their lifetime, attempting to move towards the target specified by the Target Key rule by the time they expire. Note that if no target is specified, the target moves out of range, or an invalid target is specified, the particles target the emitter prim itself.
  • Target Linear: When set, emitted particles move in a straight line towards the target specified by the Target Key rule. In this mode, Acceleration, Burst Radius, and possibly other rules are ignored.
  • Wind: When set, particle movement is affected by the wind. It is applied as a secondary force on the particles.
  • Ribbon: When set, particles are joined together into one continuous triangle strip

Finalizing

Once you have set all the parameters and flags as you like them, you can save them in one of two ways:

  • Copy: Clicking this button will copy the generated script to your clipboard; from here, you can paste it into a new script, a notecard, or save it to an external program.
  • Inject: Automatically creates a new, full perm script and inserts it into the prim you were working on. The script is initially created in the #Firestorm folder, then “injected” from there. The script is left in the #Firestorm folder in case you wish to save it for other uses.



See this page for documentation on Firestorm 4.4.2 (34167) and earlier.

7) When using particle systems that have a non-zero emitter age (PSYS_SRC_MAX_AGE) setting, you may notice that the particle system may restart without any scripted trigger going off. This is due to a bug which causes the emitter to “reset” when any of the prim properties are updated or otherwise sent to the viewer. As a result, you may have to use a timer or a forced sleep and then clear the particle system once the age has expired. Debbie Trilling has posted a work-around here.
8) Particles moving towards a humanoid avatar, will end up at the geometric center of the avatar's bounding box which, unfortunately, make them appear to be striking the person in the groin area. If you want them to end up at another point on a target avatar, you instead have to place a target prim that is moved to the position where you wish them to end up, and use the key of that prim for the value of the Target Key rule.
9) The spin defined by Omega is relative to the region coordinate system, NOT the prim's local coordinate system.
10) When freshly created, a prim's emitter is set to ZERO_ROTATION within the prim. If whilst designing a particle display you use Omega, the emitter will be rotated. If then you change the Omega vector, the emitter will not be reset to ZERO_ROTATION but will remain rotated to whatever axis it was at when stopped or altered. This can result in particles being displayed quite differently in the corrupted prim than they would be using the same script in a fresh prim (with a fresh emitter).
particle_editor.txt · Last modified: 2013/10/31 01:50 by miro.collas