The aim of this tutorial is to demonstrate simply how to produce engine particles that better simulate the light produced by, for example, a Star Destroyer's ion engines going at full blast.
This tutorial is aimed at those who have basic understanding and proficiency in using Mike.nl's Particle Editor
, and is not intended
as a from-scratch guide.
The engine particles, as with most of the vanilla particles in EaW/FoC, leave much to be desired. For the most part, they are dull blobs of colour that sit in the engines looking a bit meek, and do nothing to enhance the graphical quality of the game. So, we want to make them better - much better. I'm aiming for something along these lines:
So, what is it that we're going for, here? To summarise, we want our engine particles to be:
- Bright - these things are hypermatter powered, for crying out loud.
- Properly coloured (depends on the ship, and what you want)
- Environmentally realistic - note the dissipating 'glow' around the engines in the image to simulate the light produced in the relatively dark void of space.
In the case of the Victory II-class Star Destroyer that I used as the example, the engines are meant to be a pale, ionic blue. Notice however that at their centres where the engine 'exhaust' originates, it is almost bright white, to simulate the brightness of the engine glow, whilst a blue aura surrounds it to simulate the spread of light in the darkness of space, and grows gradually fainter the further from the engines one looks. We'll cover the specifics of this further on.2. Break-down of the particle fileBefore
we begin, let's look at the finished appearance and organisation of our particle file:
(click for full size)
I've left my taskbar on there so you can nosy about what I'm up to in my spare time.
It's a pretty simple file - only three emitters, with a combined output of 8 particles per second. On mine they're named Tunica Intima, Tunica Media
and Tunica Adventitia
as a Latin joke to myself; intima is the innermost; media the middle and adventitia the outermost; it's what studying medicine does to your head.
As you can see, the intima
or innermost particle is a very bright blue ball which is going to be the bright 'core' of the engine glow, the media
or middle part is a much fainter but still defined second concentric ring around this core and the adventitia
or outermost part is very faint in the particle editor and poorly defined; this is intentional as it should fade towards the edges like light dissipating.3. Step-by-step guide
It would seem logical to start from the inside and work outwards - especially considering the additive nature of particles so that overlaying them increases the brightness of overlapped areas.
Firstly, this entire particle system is going to be created from one index from the particle master file - namely the standard fading circular 'orb' that is index 2.00.Innermost Emitter
Despite being the brightest component, the innermost 'core' doesn't require an extra amount of particles per second; because the RGB adjustments will deal with relative brightness and opacity for us - 2 particles per second will be fine, with the default maximum lifetime of 1.00 second and minimum lifetime at 100% of this to produce a smooth, steady engine glow when your ship is moving.
The key to the bright inner core is in the RGB (red, green, blue) indices. You should already be familiar with these, but as a quick reminder:The colour of the particle is determined by the ratio of the three indices, not by the the raw value. By increasing the raw value of the indices, you may change the ratio, but the primary effect of generally increased raw values is increased brightness and opacity. Remember that we are using a decimal index for the RGB in Mike.nl's Particle Editor, so 1.0 is equivalent to 255 in a normal (R, G, B) setup. Because we are using additive particles (Appearance>Blend mode - additive is the default, so this shouldn't need editing), the alpha index is irrelevant, since the additive blend mode only uses RGB and not RGBA.
Thus, to create the innermost emitter, we use indices that are quite high in raw value, to ensure that this core of the glow is bright and opaque. In my example here, for the VSD/ISD pale blue ion glow, my core has indices (R, G, B) of (0.36, 0.72, 0.90) - quite a high ratio of green:blue and a reasonable red index; this results in an overall blue glow but one that is close to white due to the balancing of the ratio. Depending on what colour you wish your engines to be you will want to change the ratios - for reds and greens it's easy to use inversions of the figures I've used for a pale blue here, but essentially it's down to how you want your engines to look - the important thing for the core is to have quite high values and indices that are not dominated by one of the three colours, to ensure a bright core.
Here's just my core on its own, what it should like like after this first part:
(click for full size)
Notice the desired colour should show only around the very edges of this particle.Middle Emitter
The role of the middle emitter is mainly to provide colour reinforcement around the core and to generally highlight the area closest to this core. It's going to be very similar to the outmost emitter, but much smaller and around 4 particles per second, helping make it a more clear cut division of a second cut-off of light around the core glow. If done right, this cut-off sometimes can give the impression of a blur or distortion around the central core due to the light.
This middle emitter wants to be going at 4 particles per second, and have a scale index roughly twice as big as the innermost emitter's.Nota bene - when we make the index twice as big, we are making the diameter of the particle twice as big, not the area - so it's not going to be zomg huge in comparison.
This is where we're going to want absolutely tiny raw RGB indices. We're bringing the ratio to favour our colour more to give us more of a definite hue - the blue in my example - but the raw values are going to be much lower, so that this middle ring is nowhere near as bold as the core, and indeed is more of a faint aura of light. In my example, I have indices (R, G, B) of (0.03, 0.04, 0.07) - nota bene the very small numbers to ensure a faint aura-ring. As with the innermost emitter, the ratios will vary greatly depending on the colour of your engines, but the key point here is that you colour should predominate more, with further spread indices since we are not aiming for the brighter 'blazing light' look that we were in the innermost core emitter.
Here's mine once again after the addition of the middle emitter:
(click for full size)
Remember how we're using 4 particles per second on this one? The outermost layer will be using the same RGB indices, but what distinguishes these two layers, other than size, is that the middle emitter has twice as many particles/second, just to edge up its visibility without cranking up the opacity too much with the RGB values.Outermost Emitter
Finally, the outermost emitter. This is probably the simplest, because it's very similar to the middle emitter. The key differences are its particles per second, and its size. And this baby can be big, because she's very faint and she's what's going to simulate that beautiful lighting that the engine can't give us properly, by 'spreading' the light from the engine far from its origin in a faint glow. It looks very nice in-game if made right, and even better on low lighting maps or maps with more creative sun-angles that cause extra shadowing.
In my example, my outermost emitter uses exactly the same indices as the middle emitter, but has 2 particles per second and is much bigger. To be precise, the ones I'm using in this file, which are the same particles you see on the objective image VSD, have a scale index that is 2.3 times bigger than that of middle layer (the middle, not
the core... This is about 4.6 times the scale index of the core).
Once we're done, we should be back to the overview particle file appearance roughly, so hopefully my finished image should be virtually identical, bar perhaps the zoom or alignment in the editor:
(click for full size)
And there you go, the particle construction element is complete.Post Processing
Your particle is probably
still not ready to stick in-game, yet (unless you've been clever and scaled your core emitter to an existing engine particle and worked from that basis) - whether you are rigging it afresh to your model or just overwriting a vanilla particle.
For starters, you're going to need to get the size right. Luckily, Mike.nl's Particle Editor has a tool built in for this; you can go to Edit>Rescale Particle System and 'Scale the particle system size with: x%'. Always make a save of the original file before going into this post-fiddling, of course, since it's trial and error from now on; you're going to have to tweak the particle system size up and down until your particles are the right size as you see in Mike's AloViewer* or the Map Editor. And for heaven's sake, don't touch the 'Scale the particle system duration with: x%' option, that'll mess everything up.*!!! IMPORTANT!!! Particles do not scale up with the <Scale_Factor> tag that you use in your unit's XML. Since AloViewer displays only the model and its particles at default (1.0) scale without reference to the XML, if you are using your ship model at a scale other than 1.0 in game, AloViewer will not give you an accurate depiction of the relative sizes of your engine particles and ship's engines! What may be done, however, is to scale your particles to the ship in aloviewer (then save a copy) then scale your particles to match the scale your are using in the XML - so if you are using a ship model at scale factor 1.5, after finding the particle size for the ship at 1.0 using AloViewer, one can then use the rescale particle system to scale it up to 150% for use in-game.
Finally, don't forget, of course, to ensure that your particles are set up in the 'connection' box properly for use with engine particle meshes. For the default method found in vanilla and most models, you will need to have every emitter linked to the instance and set to emit at every vertex (and probably with an offset of 0.5, too). This is in the bottom left hand corner of the Particle Editor in the 'Basic' tab of options:
This concludes the tutorial - watch out for a follow-up 'Advanced Engine Particles' which will hopefully follow soon, with techniques for making more dynamic and animated engines, such as those which 'flow' behind a ship, flicker and long-trail missile engines.