Happy to announce that 3d effects are now possible in the latest alpha version of TimelineFX. Isometric mode is also supported which works well for exporting animations. Here’s a simple mushroom cloud explosion I put together and exported – this just wasn’t possible with only 2D effects:
So let’s go over some of the new features:
New effect options
Obviously the option to actually make an effect 3d is there under effect options. When you create a new effect you now have a bunch of new 3d preset emitters to choose from. But also you can convert an existing 2d effect to 3d by simply ticking the box. Dimensions in 3d work differently to 2d. In 2d they were measured by pixels. In 3d there is no real unit of measurement, but a unit of 1 is roughly the equivalent to 100 pixels for area sizes and 250 pixels for sprite sizes.
Of course positions like offsets also get an added z coordinate as you would expect.
The next interesting thing under effect options is “Draw in Depth Order”. This will make all the particles in the effect be ordered each frame. There’s 2 other options here: “Guarantee Order Each Frame” which will do exactly what it says. And if that is not ticked then it will sort particles once as it goes with the option to do some extra passes. This can be less cpu intensive in some situations but order is not guaranteed. Depending on the effect you might get away with it. When guaranteeing the order each frame an insertion sort is used as this is generally the quickest sort for things that are more or less in order.
Effect and Emitter angles now have pitch, yaw and roll, plus depth for Area and Ellipse effects.
Under attributes you will find new graphs to alter the angle of the effect in 3 dimensions. In addition the Emission angle now get pitch and yaw with the range becoming a cone of emission.
Angle settings for particles have a number of new options in 3D
The alignment drop down has 4 options:
- Align to Camera – The particle will be drawn always facing the camera
- Align to Camera and Vector – The particle will be aligned to the camera and a vector that you can choose in the drop down below it.
- Free Align – The particle can be aligned freely using the angle settings below.
- Align to Vector – The particle will align itself with the vector you choose in the drop down below it. You can offset the angles using the settings below.
If the particle is set to align to vector then you can currently choose between the follow vectors to align to:
- Vector is Motion – Will align to the current velocity/direction of travel vector.
- Vector is Initial Emission – Will align to the initial emission direction only.
- Vector is Emitter Rotation – Will align with the current rotation of the emitter.
As with 2D effects, you can offset or randomise the angles as you need.
If using stretch and vector is motion then the particle will be stretched along the alignment vector whether or not it is aligned to camera.
Preview and Animation tab got new camera controls for 3D
The options are fairly self expainatory. Use isometric view to switch between that and perspective. Camera Speed adjusts how fast you move about the scene; to move about the scene hold right mouse on the preview window and use wsad to move. Adjusting the camera speed can be useful for testing things like snow effects and what it might be like to move through the snow at normal game walking speeds. On that subject Attach Effect to Camera will do just that which again is useful for area effects like snow/rain/fog etc.
Floor Heigh simply adjusts the height of the floor plane and you also have the option to hide it if you want.
Draw Outlines will draw the bounding boxes for area and ellipse effects so you can see them more easily if needed. Finally there is a copy and paste option which you can use to copy the settings to the animation tab or vice versa (or to other effects).
Camera settings are per effect so you can have different settings for each effect and they will save with the effects too for convenience.
A few things worth mentioning.
Still in development so there’s still plently to add and fine tune:
- Animation Tab: Auto fit won’t work for 3D effects yet, but it’s actually trivial to position the effect with the magenta drawing when scaling/positioning.
- There’s currently no tiled animations for 3D – not entirely sure if I’ll add it, it depends on requests I guess.
- Isometric mode needs a few bug fixes like positioning with mouse isn’t correct, better to use the drag float widgets instead for now.
Next Up
The next thing I will work on before adding more features to the editor and 3D mode is the TimelineFX library. This needs to be caught up to 3D mode. Although a lot of the 3D stuff has been added to the library a lot of it is still in the editor only so needs moving across. I’ll also be taking another look at how I update effects in the library as I’m still not 100% happy with it. Eventually I will heavily optimise as much as I can with multithreading and SIMD so will be working towards that.
Still an Alpha so I’m still not making too much noise about it just yet but you do give it go let me know how you get on and do report any bugs!
Other changes this update:
* Fixed a number of crash bugs.
* 3D effects now possible. Added a large number of new effect, emitter properties and attributes.
* New camera options for 3D in both preview and animation tab.
* Much improved spawn calculation so that particles spawn and position more consistantly overtime.
* Emitters that are set to relative position and line traversal emitters will position spawned particles correctly when interpolating between the emitter’s last position.
* Graphs now properly compile after being pasted.
* Space bar now kills the preview effect.
* Some drag float widgets that were not taking manually entered figures will work now.
* Render interpolation is much smoother now.
* Preset effects have been updated for new features.
* Record extra frames options is now hidden if loop animation is not selected.
* Draw outlines is now an option if you need to see area line and ellipse extents.
* Added zoom slider to preview camera options for 2d effects.
* Global opacity should actually do something now.
* Window size and layout is remembered more reliably now.
* Loop maker on graph no longer shows on effect graphs if only emitter has a loop.
* Effect loop lenght no longer show decimal places.
* The image handle ring under shape properties no longer shows through other tabs that are rendered on top.
* Starting a new import when the import window is already open will no longer crash.
* Amount variation if more random now.
* Animation tab playback will now play at the correct speed depending on the current update rate under settings.