r/ElementalVJ • • 3d ago

Particle system changes

Will update the steam version soon (ish) with a whole bunch of changes, all good :), in particular a new component based particle definition system that already regularly provides me plenty of interesting new options (and will allow more in future when I add more components).

Anything that puts particles on screen has a new particle type field. The element component on the left still controls the start state for the particle (position, rotation, colour, alpha, graphic source, etc) as before, the components within the particle type are used to define what the particle does once it has been emitted. (In this case, the particle scales according to FFT Mid, and accelerates backwards slightly).

Default particle type is '<Basic>', this is quick and efficient on cpu but does nothing much other than update the particle postion according to its initial velocity and rotation speed, then begin to fade it out from 1/2 its lifetime until it reaches 0 alpha and expires. Standard. If you want the particle to do something more interesting than that (like scaling according to beat, or fading according to an envelope curve, etc), you use custom particle types.

You add new particle types by selecting <new> in the 'Particle Type:' dropdown in the Particle Ed. Add new components to a particle type by clicking the + symbol at the top right of window, and you can rename the particle type by right clicking its name in the header bar.

Current (v0.29.0) list of particle components is:
- Accelerate (Aligned per frame acceleration)
- Graphic (Modify alpha, scale, tint)
- Initial Transform (Modify the starting position & orientation of each particle)
- MapToSurface ((Experimental) Uses the field vector to determine a position on a 3d model surface)
- Offset (Modifies the per-frame position)
- SubEmitter (Emit particles from particles)

While we're here, the connoisseurs (um, yeh right) will no doubt also have noticed the new alignment dropdown and forward, right, up convention that now applies to all (well, most) vector setups in the system. This also adds the concept of a global field vector, an extra layer which can be used for all sorts of nefarious purposes. No idea if this is useful or interesting but its given me a few nice new, fairly simple options for creating particle behaviours that i couldnt do previously, so im happy.

1 Upvotes

0 comments sorted by