• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Further Reading on Particle Emitters 2

Particle Emitters 2

This SD Magos'-centric thread attempts to document Particle Emitters 2.
Orientation axes are Warcraft 3's.
X - Forward
Y - Rightward
Z - Upward


* = Not observable in Magos', and will have to be tested in-game.



Visibility
0 means the particle is invisible, while 1 means it's visible. Any value above 1 will have the same result as 1.

Emission
The amount of particles generated per second. The interval between emissions is capped at ~0.05s (?). Going past this threshold will emit those excess particles in bulk.

Speed
By default, causes the particle to move towards its Z. This direction can be changed through particle or parent rotation.
Animated changes in speed will only affect newly emitted particles; thus gravity is the only way to accelerate.

Variation
The percentage of randomness with which the particle can deviate from its base speed. 1 means speed can go down to zero, or double; and 2 means it can go -1x negative*, or triple.

High variation can lead to bottleneck emission when used with Latitude.

Latitude
Angles to which the particles will fly, deviating from the emitter's facing direction. A value of 90 means the particles will go towards a semi-sphere area, while 180 removes angular restrictions.

Width - Along the Y Axis (left/right)

Length - Along the X Axis (frontward/backward)

Width and Length determine the rectangular field in which particles are spawned. Magos' Editor displays these properly with MDXs, but not so with MDLs, where they are reversed.
Gravity
An accelerating force that points downwards in the absence of Model Space rotations. Negative values will make the particles go up.



Flags


Unshaded* - Will be unaffected by the game's lights. Generally always on for effects.

The 'sun' comes from the south west by default.

Unfogged* - Will not be tinted or shrouded by fog effects, including the fog of war.

Alpha Key - ?

Line Emitter* - Whether or not the particles will fly towards two axes instead of three. By default, checking this means the particles will fly YZ.

With Latitude, the angles will expand sideways.

Example usage in Thunder Clap, where it's used with an emitter rotation to make the particles fly XY.
Rotation: { 0, -0.707107, 0, 0.707107 }

Sort Primitives Far Z* - Supposedly whether or not the game will take into account Z when deciding which particle is shown on top.

Model Space* - Whether or not the particle moves and rotates with its parent nodes and the model.

XY Quad - Whether or not the particle will be rendered as a plane facing the Z axis. Requires non-zero Latitude, and Speed over 0.99 or below -0.99.

Without Model Space, XY particles will face angles within Latitude.*
With Model Space, they will face 270 in-game degrees (normal view).

Squirt* - Creates all the particles indicated by the emission rate at the first keyframe available per animation, instead of over time. If the opening frame of the animation is not set to 0, it will ignore your frame settings and squirt when the animation begins.


Head - The default. When rendering an emitter without Head nor Tail settings, the game will consider it a Head emitter. Leaving the Head box unchecked will hide the particles in Magos' only.

Tail* - Whether or not the particle will be followed by a tail facing its flying direction. Tails consider the texture's left as their front.
mdlvis will save the head setting properly, while it changes tails to heads. If both are checked, it saves them both properly. If neither are checked, it checks heads.



Segments

Each particle from this emitter will fade through the three colors, sizes, and visibilities (alphas), with each segment's duration being decided by <Time>.


Life Span - Time before the particle disappears and expires.

Tail Length* - Segment size only determines width for tails. This is the length; influenced by distance covered with regards to velocity (speed, variation, and gravity).

Priority Plane* - Used to layer/manually determine which particles are displayed on top of each other.

Unlike its Material counterpart, Magos' will not save this field in MDL; only in MDX. Adding it to an MDL will make the model unopenable in Magos'.

Like its Material counterpart, mdlvis will erase its data.

Time - The time allotted to each particle segment.

Time lower than 33% of Life Span will decrease the transition time between Segments 1 & 2, while increasing that for Segments 2 & 3. Vice versa.



Filter Modes

Some textures with alpha channels are also fitted for Blend and Modulate filter modes, such as dust clouds. Most of the rest are only viable with Additive; with Add(itive) Alpha producing lethargic, or sometimes invisible, and generally erroneous results.


Blend removes the transparent parts. It is a staple of blood spurts, dark glows, and black smoke.

Additive removes the black parts, and lightens the texture. It 'adds' to what's in the background. The darker/the more colored an additive particle becomes, the weaker it is. Additive is a staple of light glows.

Modulate removes the white parts, and is used for GenericGlowModX.blp, among others.
Blends are incompatible with other particles for the most part, and will flicker through each other in-game, if not in the Model Editor as well. This can be circumvented through the use of Priority Planes.

Flare.blp is a comparatively smooth and versatile light, and can be used with Blend in addition to Additive, as opposed to other glows.



Tips
  • Black and white colors are useful to prevent your effect from looking monotone, whatever your primary hue is. Use darker particles as cushions below the other particles, or colder colors as outliers, and lighter, warmer ones for the centers. For segment colors, it's recommended to go from light to dark as particles fade.

  • Use color variation to your advantage. Fade an emitter to a nearby color over its lifetime.

  • It is oftentimes better not to have constant particle size. For sparks, consider having their scaling at 0 for the third segment, while retaining high alpha. On the inverse, dust clouds look better when they fade to 0 alpha in bigger sizes.

  • Glows, glows, glows. Use them to give your effect atmosphere.
Things to Know
  • Individual particles cannot rotate independently, apart from tails forced to turn by gravity.

  • Particles will not scale with the models they're attached to, even if they're Model Space. Scale will still affect emitters' spawn field and velocity.
In-Game Discrepancies

  • Gravity and Speed are calculated differently

  • Particles and their movement are rendered smoother in-game
Testing in-game/in-editor often is integral to effects. Good luck, have fun!
Last edited:
Top