Wanted to make an explanation for how I recreated the particle effects found in Dawn of War 2 and implement them into Dawn of War 1. Note that this isn't a tutorial, rather just a way to visualize how much goes into making Dawn of War 2's Fx. Special thanks to the Dawn of War 2 Elite Mod forums as they helped answer my questions on how to get the FxEditor working for Dawn of War 2. Without them, I wouldn't have been able to recreate these fx.
The FxEditor for Dawn of War 2 is nearly identical to Dawn of War 1's own FxEditor which I use to make the particles for Redux. This makes recreating DoW2's Fx very easy as the process mostly requires me to simply copy and paste the variables that make up the blueprint for how the fx are built into DoW1's FxEditor. Although it's easy to do this, it is however VERY tedious. Even though both programs have the same layout, DoW2's FxEditor has more modern features that DoW1 lacks which means you won't be able to recreate the particles with 100% accuracy; features like animated textures, randomized textures, randomized duration times, controlled emitter directions and MUCH more. Because of this, I have to find workarounds to these features that involve a lot of testing and sometimes there are situations where copying everything down might result in your fx not looking anything like how it looks in DoW2 and requiring further tests.
Before going into how I go about making these fx, here's a brief explanation of each of the FxEditor's particle features to provide further context:
- Ring textures are particles that are completely square. Their dimensions are the same and remain constrained regardless of what texture you use. They are very simple boxed textures that are the most common in particle fx.
- Beam textures are rectangular particles (although they can also be simple square textures). These particles are unique where both their length and width can be stretched to any variable and usually make up beam weaponry like Lascannon tracers or Dark Lances.
- Sprays (or Emitters) aren't textures at all but rather devices used to "spray" multiple Ring or Beam textures. These are usually used to create swarms of textures in certain events like smoke clouds and sparkles or used to make gunfire like heavy bolter rounds.
- A Combo is a simple frame that contains 8 total particle slots to fit multiple particles into one convenient particle. This is crucial to making a DoW2 fx since all of its fx use multiple particles. Combos can also be used in sprays to make more advanced emitter particles, ie: a spray that emits a combo that contain multiple ring or beam textures.
- Trails are (as the name implies) trails that extend when being moved in any given direction. This is by far Dawn of War 1's worst particle as it lacks so many features that it hardly ever looks good on screen but it's what we're stuck with.
- Light is a light source and is sadly not very noticeable due to DoW1's poor lighting engine. Usually glow particle textures are used to simulate light more so than actual light particles.
- Weather is a particle that is used to simulate a world-wide ambiance without the particle actually being global. What weather particles actually do is simply stick to the player's camera to make it seem as though the world has rain or snow or whatever the particle might be simulating.
Utilizing More Sprays
Dawn of War 2 implements a very clever usage of spray particles within the framework of their fx that DoW1 just doesn't take advantage of. Spray particles are primarily used to emit multiple textures in an instance but they can also be used to time when a particle is being displayed. Every particle by default is being displayed by the 0 mark, meaning that most of Dawn of War 1's fx are one singular instance of all of its particles being displayed. Using the power of sprays, DoW2 can layer its fx with particles that emit at a further point in time, giving their fx a more animated feel to them.
Colors (Oh God the Colors)
Just a quick mention of the color info. Every particle has a color chart that controls what color the particle will display as well as how transparent the particle is. I mention this as both programs operate differently with DoW1's color input being in RGB (0 - 255) and DoW2's inputs being in percentages (0 - 1). This means that every Red, Blue, Green, and Alpha variable that makes up a single color has to be calculated by multiplying the percentage by 255 to get the actual color needed to be used in DoW1's FxEditor. DoW2 also has time information for when a color is being displayed which DoW1 doesn't have, meaning I have to predict where on the chart the color will occur.
One of DoW2's best features for constructing fx has to be its animated textures. To do this, DoW2 uses a texture map that displays all of the frames of its particle's animation in a sequence. The FxEditor displays each cell one by one to simulate animation. Although Dawn of War 1 lacks this feature, I've found a workaround that can mimic this component, albeit very soul crushing and tedious. To do this, I extract exactly 8 frames from the animated texture map and save them as individual textures. I use 8 as that's the amount a Combo can hold (16 for VERY animated particles that use a lot of frames).
I will make a single Ring particle (or Beam depending on what the particle is) within a Combo and mimic all of the data DoW2's particle uses such as size, color, offset, and so on. After fulfilling this, I will then divide the color chart into eight (9 or 10 frames depending if the first or last frame is invisible) sections to represent when each frame is displayed.
After mapping where the frames will occur, I'll then copy the Ring particle 8 times in the Combo until it's completely filled. Then, I will go back to every Ring particle and black out or remove every frame on the color chart until one is left being displayed and switch the texture out with the next frame. I'll do this until every Ring particle has its own frame being displayed one after the other, thus causing the texture to fade in and out from one frame to the other to simulate animation. The final result will make an animated particle.
Another unique feature of DoW2's FxEditor is randomized particle textures. This also uses the same cell-based texture maps that animated particles use except instead of switching from one cell to another to simulate a moving picture, the FxEditor will instead randomly pick a cell and use that to display the texture. This is primarily used in Sprays and it helps make the fx look less stale by showing multiple versions of what is essentially the same particle. This one is much easier to implement in DoW1 as the solution to replicate this is to simply multiply the spray into how many textures it'll randomly generate and divide the Spray's rate so that it evenly emits the same amount of each texture.