Game Development Community

Suggestions: Particles

by Jason Booth · in Torque Game Builder · 01/16/2006 (5:40 pm) · 2 replies

Playing with the particle system a bit and noticed a few things I've found in other particle systems which might be useful:

- Fast Forward
On creation, run the system forward in time a specified amount. This allows you to create slowly evolving particle effects without having to watch them start on creation.

- Burst
Number of particles to emit per emition event.

- Waveforms
This would be a radical shift, but clean up a lot of what we have now. Basically, the idea is that any value can be animated using a waveform instead of using _var and _base. All the _var and _base properties could then be removed from the system.
Say we're animating sizex on a particle system and we want variance; we'd set the 'key type' to be a noise waveform, which would take a base and variance value. The noise waveform would return a random value based on the variance.
This not only removes the need for 1/3 of the variables, but opens up the door to new effects. For instance, you could add a sine waveform which occolates based on time, allowing you to spew out particles in a circular pattern. Or you could use a sine wave to control the emition point itself. You could potentially allow waveforms in waveforms, allowing you to animate properties of the waveforms themselves.


Paricle UI:

- Double clicking on an emiter or value should edit the emiter or value
- A graph view allowing you to see multiple graph parameters at once would be wonderful!

#1
01/17/2006 (8:34 pm)
Jason,

I really like your ideas for improving particles as this has been quite a confusing area to alot of users (with the enormous number of fields for customization!)

When the time comes for the next update to the particle editor/system I'll be sure to bring these ideas up for discussion :)

-Justin
#2
01/17/2006 (10:10 pm)
I've been playing with things a bit more, a few more suggestions:

Color properties should be placed on a single graph. While it's usually preferable to have each animation parameter be on a seperate graph, it's pretty annoying with color because there is no good way to know what your going to get when your creating your keyframes. There is no color picker, and if there was, it would only opperate on a single color channel at a time (which doesn't make much sense for a color picker). Overall, it makes adjusting color pretty clunky.

Suggested Wavefore Types:

Value (no waveform, just a value)
Velocity (Base Value + Velocity)
Sine
Bounce (linear back and forth between values)
Noise (Random between values)
Perlin Noise

Since and Bounce should support phase, allowing you to create, for instance, a circle by offsetting the phase of the X and Y position waveforms. Idealy, any entry in a waveform could also be a waveform, allowing you to grow that circle by adjusting the sine wave with a velocity waveform.

In an engine I wrote a while back I allowed waveforms to be applied to things like texture UV offsets and the verts themselves, which led to some pretty cool effects. I also actually used them for enemy movement AI as well, which proved pretty useful.