Jump to content

WIP: Particle Designer for SL


You are about to reply to a thread that has been inactive for 1216 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

(by the way: scanning the forums, I was not sure if this should go here or someone else... so I apologize if this is technically the wrong place and would like to know for future reference if so!)


So this is a little thing I've been working on...
I've got a bit of a background in traditional game engines, and using more complex tools for designing visual effects in those engines. One thing that I immediately noticed coming to SecondLife was that creating visual effects is a little more painful than I would like - I constantly have to keep the scripting wiki open, I have to wait for scripts to recompile, it's harder to rapidly preview different textures and materials, and in general iteration time is much slower than I think it ought to be.
I know there's already existing in-world solutions for creating simple individual particle effects, but I felt that I could go further. It's very rare in games that the complex visual effects you see are made of just one or two simple emitters. They're layers of several emitters, sometimes all carefully timed with each other to provide just the right effect. I felt that the particle designer I would want to use should be made to make this in particular very easy to do.

So I started working on a standalone particle designer. It attempts to replicate SecondLife's particle engine and provide a WYSIWYG editor for particle effects, with the goals in mind:

  • Effects are grouped into project files which contain as many individual emitters as you desire.
  • Editing particles is instant, you can tweak parameters while it's running with no wait times and no lag whatsoever.
  • Individual effects can be assigned a pre-delay time to allow for control over particle sequences.
  • Swap out as many textures as you want quickly and easily with no upload time.
  • Enable/disable individual effects to make it easier to focus on specific effects when needed.
  • Timescale control
  • Gizmo previews of the emitter shapes (explode, angle cone, and angle)

And here's what I've got so far:

The idea is you can put together your effect in the designer, and then once you're done you export an LSL script and a notecard. The LSL script, the notecard, and all of the textures used are placed into the inventory of a special builder object in-world. That object will then construct the effect for you, setting up all of the scripts, textures, and link sets required for the effect.

Things still left to do:

  • Ensure that all currently supported behaviors match SL as closely as possible. For instance, currently the "Follow source" property ("move with emitter") has a few visual differences which need to be resolved esp. when combined with emitter rotation / omega.
  • Add undo/redo support
  • Add option to gather used textures into a folder for easier bulk upload
  • Implement wind preview (figure out SL's wind algorithm?)
  • Implement glow and add glow start/end
  • Implement lighting for better preview of the "Full bright" option (add day/night preview slider?)
  • Add support for ribbon trails
  • Fix a few gizmo rendering bugs in angle cone when angle min/max >180
  • Fix general UI bugs

Thoughts? Concerns? General feedback? :)

  • Like 3
Link to comment
Share on other sites

New update:

  • Improved/more accurate "move with emitter" behavior
  • Implemented particle shading
  • Added preliminary support for undo/redo. A few visual glitches still remain to be sorted out, but otherwise it is fully functional.
  • Added visual move/rotate handles for emitters.
  • Added Export Textures option to copy all used textures into an output folder
  • (not shown) Now much less cumbersome to assign textures in-world, you can simply drop the textures into the builder object's inventory and it will automatically give the textures to the correct sub objects in the link set.


  • Like 2
Link to comment
Share on other sites

This is pretty cool, when and how do you plan on sharing it?

Also, it's probably worth pointing out that at least Firestorm has a particle editor built into the viewer that shows client-side (not visible to other viewers) real-time changes with accurate particle representation, and it can copy the particle script into your clipboard or put the script directly into the object.

You could maybe look at Firestorm's source code to see how it is implemented.
It can be accessed by selecting an object and going to Build > Object > Edit Particles


  • Like 3
Link to comment
Share on other sites

This project looks pretty groovy. I've done a lot with particles, and yeah, it can be a little annoying fishing around in the dark and then checking the results over and over again.

I know there's nothing new under the sun, but I like it when people have the ambition to take on a project like this. There are particle designing systems out there already, but yours looks pretty cool. I like some of the ideas you have for it. Layered effects are awesome, but true, you seldom see people using them in SL (I had a casual acquaintance with many game designers during college, myself).

Looking forward to seeing where you go with this.

Edited by Berksey
  • Like 1
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 1216 days.

Please take a moment to consider if this thread is worth bumping.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Create New...