As per the wiki… this is the (soon to be) official release post.
Well… I’m just about finished with it… and it’s really just about the last thing you’ll need to design FX for your game
This tool allows you to build out multi-particle emitter FX visually using the emitter system I’ve been tinkering with for what seems like forever now.
Before I go into a list of features, let me tell you about the best part… you visually design your FX… and then push a button and it spits out every line of code you need!
Now… onward with the feature list:
The Emitter System:
Emitter shapes–
- Point
- JME Primitives
- Loaded asset (including the ability to animate the emitter shape… meaning you can simply use your game assets as an emitter shape and only have to manage the animations for your in-game assets. The emitter will do the rest for you)
- The particle mesh from another emitter
Emission Direction Choices–
- Normal
- Normal Negate
- Random
- Random Tangent
- Random Normal Aligned
- Random Normal Negate
Emission Attributes–
- Velocity-based
- Static particles
- Random face emission
- Sequential face emission
- Sequential skip pattern
Particle Shapes–
- Quad (default)
- Star-shaped Impostor
- JME Primitives
- Loaded assets as a template (These can also use AnimChannel to animate the particles)
Billboarding Modes–
- Velocity
- Velocity Z Up
- Velocity Z Up Y Left
- Normal
- Normal Y Up
- Camera
- UNIT_X, Y & Z
Particle Attributes–
- World or Local space
- Particle Stretching
Stock Influencers–
- Gravity
- Radial Velocity
- Color
- Alpha
- Size
- Rotation
- Sprite
- Destination
- Impulse
- Physics
– All influencers accept as many steps as you would like to add. i.e. Size can chained with
– * v3(0,0,0) with an Interpolation of exp5Out to
– * v3(1,0.5,1) with an Interpolation of fade to
– * v3(0.5,1,1) with an Interpolation of bounceIn
– * etc, etc, making your options limitless (my PR guy made me add this line)
– These can be divided over the life of the particle or a fixed duration can be set and they will auto-cycle.
– These can use randomization within defined tolerance
Now, for the FX Builder…
Can’t begin to describe how cool this has been. Talk about putting your code through it’s paces… not to mention, I am constantly finding things I wasn’t even aware the emitter was capable of. All you need to do is drop your model/texture assets for particle effects in the project and use the UI for the rest. When you done setting up your FX scene… just push a button and the code is outputted for you. Cut / paste / and your done.
There are dependencies that you’ll just have to live with, if you want to use the FX Builder (and, honestly… you’d really need to consider getting your head examined if you pass it up):
- The emitter system… duh
- tonegodGUI - Whether or not you ever use it, you’ll need it for this. I believe this will require a download from the repo (download section once all is published) as community plugins still seem to not update properly through the SDK =(
Here is a short vid of the designer.
[video]http://youtu.be/LDxpBcMrDJ4[/video]
I’m looking at another week or so, before relasing the emitter + FX Builder.
At some point I’ll likely set up the FX Builder to allow timer-based and triggered emission FX. At this time it runs a constant update. Work-arounds for this at the moment is to set:
Emissions per second to 1
Particles per emission to the max # of particles, which will cycle the triggered effect every second.
Or, to double the max # to cycle it every 2 seconds, etc, etc, amen.
In a real-life scenario, you would set:
Emissions per second to 0
Then call emitAllParticles() or emitNumParticles(#)
Or
Set emissions per second to some rate as a response to some event
Use a timer to set it to 0 after the duration of the effect
IMPORTANT: As for the emitter as a plugin, I’ll be publishing it to a repo… the jars will be publicly available for download. A detailed description of how to implement an influencer, in case you are not able to do something you would like will be made available. It will be covered by the same licence as the rest of JME… The source for the FX Builder will be available… the actual source for the emitter system, however, may not be included. I’m fairly sure anyone who has been around for a while will understand my consideration in doing this. There is no real need for it, as it provides an interface for extending it’s functionality to anything you can imagine for it. If someone can think of a good argument as to why it should included, I’ll certainly reconsider. But, for now… probably not.
Well, enough for now… would love to hear some feedback on how useful you would find this… & I’ll post updates as I get closer. Feel free to post questions you may have, etc, etc.
P.S. I’m fairly sure this dead horse is good for another swing or two… and I just polished up my deceased-bovine-whacking-stick