The Viewer is where you can preview the particle effect you have created. The viewer can be panned with the middle mouse button, can be rotated with the right mouse button, and can be zoomed with the scroll wheel.
The Start and End fields control the time interval that will be previewed when the play button is pressed. These are measured (as is every timing related thing in this program) in frames (60 frames = 1 second). So for example, if you set the interval to [120,180], then when you press the play button it will start two seconds into the animation, and end one second later at the three second mark. The Step buttons (double arrows) allow you to walk through the animation one frame at a time. The number is the current frame being shown in the viewer. The grid visibility, color, and other settings can be configured in the program's preferences (Window → Options). Other settings such as background color/image, scene lighting, etc, can also be configured in the preferences. |
This is the overview of your project's structure, containing all of your particle emitters. Clicking on a node in the tree brings up all of its properties in the various program windows, allowing you to edit anything about it. Right clicking in the node tree brings up a context menu that includes the option to add a new node. The new node will be added as a child of the currently selected node. There is the concept of inheritance in this program (ie: child nodes inherit some properties from their parent nodes), which will be talked about in more detail later. Nodes can also be copy and pasted, which is very useful. |
Many numeric fields in the program take on an appearance like the image on the left. These types of fields indicate that they are capable of taking on randomly assigned values. There's two options for input, both of which are functionally equivalent:
|
The Basic Settings window contains all of the standard parameters for tweaking the way in which a node spawns its particles. Starting from the top, the Visibility checkmark enables/disables the display of this node's particles in the Viewer. Note this is purely for editing convenience, as the particles will still appear in the final export regardless of the visibility settings.
Name serves no purpose other than your own convenience. Once you start getting many nodes in your node tree, you'll want to give descriptive names to them. Spawn Count sets the maximum number of particles this node is allowed to spawn. The Infinite checkmark overrides this, and allows the node to spawn particles without limit. Time to Live sets the lifetime of each spawned particle (in frames). This is local to each particle, and begins counting down as soon as the particle is spawned. Once that duration of time has passed, the particle will automatically be destroyed. This is ignored if Destroy after time is unchecked. Spawn Rate determines how quickly the node emits particles. A value of 1 means it will spawn one particle per frame. A value of 10 means it will spawn one particle every 10 frames. This can be a decimal number; for example, a value of 0.1 will mean the node will emit 10 particles per frame. Initial Delay makes the node wait a certain duration of time before emitting its first particle. This is useful for sequential effects where not all of the emitters are immediately active. |
Sample Project "00_Basic/Laser03.efkproj" is a good example of inheritance. Invisible "Core" particles guide the position and rotation of the "Track" particles that inherit them -- this gives the tracks that distinctive zig-zag shape. At the same time, the "Particle" node inherits "Track", using the track's position to allow it to emit tiny particles along the trajectory of the zig-zags. |
A separate window from the Basic Settings window is the Spawn Method window. By default, nodes emit their particles relative to a single isolated point in space. There are two other spawn methods, however. The first is Circle.
In Circle spawn mode, particles will be spawned relative to the circumference along a circle. Radius sets the size of that figurative circle. Init Angle and Final Angle allow you to specify the range over the circle in which to spawn particles. By default this goes from 0 to 360, resulting in particles spawning over the whole circumference. However, this can be reduced to allow spawning only over a specific arc of the circle. There are a few different modes of spawning along the circle. There is Clockwise and Counter-clockwise, which result in each successive particle spawning in an orderly sequential fashion along the circle (ie: think of clock hands). Random results in each successive particle choosing randomly among any of the available verticies to spawn on. Verticies control the number of spawning angles the circle supports. For example, if it was 8, then it would take 8 particles in Clockwise/Counter mode to do a full rotation around the circle. Likewise, it if was 8, then there would only be 8 possible angles that Random mode could choose from. If you're using Random mode, you'd probably want to increase the verticies to a high number, like 360, to increase the diversity of the random spawn. Set angle on spawn has the interesting effect of orienting the Y-axis of each spawned particle to be normal to the surface of the circle at the place where it spawned. The figure below illustrates that functionality. |
Particles streched along the Y-Axis, being spawned along a circle. | The effect of enabling "Set angle on spawn" on those particles. |
In many ways, this is very similar to the circular spawn method (except adding a third dimension). Note, however, that sequential spawning does not exist here. It is only possible to spawn particles randomly across the spherical surface. X Rotation and Y Rotation control the "span" over the sphere's surface in which the particles spawn. By default it is 0, which will not allow any particles to spawn. To have particles spawn over the entire sphere, set the deviation to 180, so you get full 360° rotation over each axis. However, like how you could choose to spawn only along an arc of a circle in the section above, you can utilize localized wedges of the sphere's surface for spawning. See the figures below. |
Particles spawned on a sphere, with a full 360° span. | Shrinking rotation to only 60° along each axis. A "spherical wedge". |
The Ease In and Ease Out dropdown boxes change the style in which the particle transitions between the two values over time. The illustration to the left shows different combinations of easing speeds. The examples respectively refer to the following combinations of {Ease In - Ease Out} pairs:
|
Effekseer allows you define an attraction point for a particle emitter, which acts like a magnet, drawing the spawned particles into it. Sample Project "00_Basic/Homing_Laser01.efkproj", shown below, uses this feature in order to create "homing lasers". They shoot out from a central firing point and home into the attraction point. At the very bottom of the Behavior window, you can define the location of the emitter's Point of Attraction.
By default the point of attraction is not active, so changing its position will not initially have any visible effect. Enabling the attraction point can be done through the Attraction Forces window, by choosing Attraction from the dropdown list. The Attraction parameter controls how quickly (forcefully) the particles are pulled into the attractor. The Resistance parameter controls how much the particles can resist being pulled directly into the attraction point. For high numbers, the particles will get stuck directly at the point of attraction once being pulled in. For low numbers, the particles will get into an eliptical orbit around the point of attraction (the lower the number, the larger the radius of the orbit). Resistance can also be negative, in which case the point of attraction will actually push the particles away, instead of pulling them in. |
UV lets you draw only a portion of the texture image, rather than the whole thing. This has a variety of uses, and particularly we'll talk about the Scroll and Animation settings:
|
Particles moving back and forth with no distortion. | Those same particles, passing behind a texture with distortion applied. |
Rings are a powerful option, allowing you to map textures to shapes other than simple flat squares. Despite their name, rings can be used to generate many different geometric shapes, including circles, triangles, cones, cylinders, pyramids, cubes, etc.
Vertex Count allows you to set the number of points that compose the N-sided polygon. By default it is 16, which creates a circular shape (although you can get an even smoother circle by setting it to a higher value like 36). However, this can be set to low values to create other shapes. As seen in the image to the left, 3 vertices creates a triangle, 4 creates a square/diamond, 5 creates a pentagon, etc. Viewing Angle lets you change the amount of the circle (circumference-wise) to draw... this is very much like the setting used in the circular/spherical spawn methods. The image to the left shows different settings of this value for different shapes. From left to right, it shows 360, 270, and 180 degrees. Outer and Inner adjust the size/position of the ring's outer and inner radii. With creative settings of these values, you can create a large assortment of shapes. Setting the inner radius to 0, for example, converts the ring to a circle. Additionally, the radius can be adjusted on two different axes, allowing you to have the outer radius be higher up than the inner radius, or vice verse. This allows the creation of 3D shapes, like cones or cylinders. Combining this with the vertex count, you can make even more 3D shapes. For example, a cone with 3 vertices makes a pyramid, and a cylinder with 4 vertices makes a cube. In terms of color blending, rings support a gradient of up to 3 colors. There's one color for the area closest to the outer radius, one color for the area closest to the inner radius, and a transition color in-between those two. The Center Ratio parameter adjusts the position of the intermediate transition color. A smaller number brings it closer to the inner radius, while a larger number brings it closer to the outer radius. |
Rings with different opacity, radius, and center ratio settings. | 3D shapes made by extending the outer radius in the Y direction. |
Exported spritesheet without transparency. | Same spritesheet exported using the "Generate alpha" option. |