Post by ©³~ SilentK on Jan 19, 2011 14:21:04 GMT -6
(Originally written by Tucker933 for modhalo.net)
This extensive guide will walk you through how many effects are accomplished and how effect tag work is laid out. This is also more or less a compilation of all which I have learned with effects in my time modding Halo PC. This is not a tutorial as previous versions may have lead you to believe, this is a guide, a guide which will do nothing more than help you making your own effects rather than teach you how to make specific ones. This, is where you want to start.
Guide to Particle Effects
Guide to Lighting Effects
Guide to Efficiency
Guide to Making Your Own Effects
Causes of Exception Errors in Effects
Effects:
Nulled effects will in any circumstance cause an exception error, to kill an effect you must null the particle references off the effect tags or kill the particle counts in the effect tag, preferably the former.
Particle Systems:
Nulled particle systems will always lead to exception errors as well. To kill a particle system you must cryo glass all bitmap references called and kill the particle counter. If you do not kill the particle count you're just wasting game resources on invisible particles.
Particle Physics:
Particle physics can be nulled in certain situations like off a contrail tag for instance. However, nulling a physics reference off a particle itself will cause an exception. You cannot disable a physics tag having an effect on a particle without issue but you can dampen it's effect on a particle via tag values, depending on the situation.
Bitmaps:
In any scenario nulling a bitmap will lead to an exception error. Swapping a bitmap reference to cryo glass will make the effect calling it invisible.
This extensive guide will walk you through how many effects are accomplished and how effect tag work is laid out. This is also more or less a compilation of all which I have learned with effects in my time modding Halo PC. This is not a tutorial as previous versions may have lead you to believe, this is a guide, a guide which will do nothing more than help you making your own effects rather than teach you how to make specific ones. This, is where you want to start.
Guide to Particle Effects
In this section I will be covering the following:
Effects
Particles
Particle Systems
Particle Physics
Effects
Effect tags are generally the most fun to work with and will likely be where you spend most of your time when working with effects depending on your goal. Effects can easily be located by visiting the parent tag of the effect you wish to work on and double clicking on your desired effect in that parent tags references, as seen below.
This is an example of a rocket projectile references, as you can see on the left of each reference you have your tag classification, and in the center you have your individual tag name. Use this to help figure out what is what, however I will help you on this one.
Using the above as reference.
1.
This first effect reference seen here is the projectiles explosion or detonation effect.
2.
The second effect reference seen here is a flyby effect; and effect living for the extent of the projectiles life span.
3.
These last effects here are all material effects; these exist to accompany the explosion effect. All projectiles have these effects. these are triggered depending on the surface the projectile makes contact with, for more diverse visuals, depending on which environment they're created in.
When editing these effect tags you will want to keep track of the references to help you, as seen above with the dirt material effect for the rocket, these references will line up with the particles in order in the meta editor. If you find yourself with more particle references than you're able to edit in the meta editor, you will find that the last few particles are in event 2 or more. Event 2+ is uneditable in Eschaton's starter plugins, and as far as I know, there are no plugins on the PC end capable of editing emission properties in event 2+.
Using the above as reference.
1.
Delay Bounds controls, if desired, the time between emissions, this normally used for emitters. The spark spurt emitter would be an example.
2.
Duration bounds controls, if desired, the length of emissions during an emission cycle controlled by the Delay Bounds.
3.
Tint Upper and Lower bounds control the tint of the actual particle emitted by the effect, which is helpful in ways that you don't have to edit the particle bitmap itself.
4.
Distribution radius controls how far away from the point of origin the particles will be generated, this commonly isn't necessary to edit.
5.
Velocity controls how fast the particles generated will travel from the point of origin.
6.
Velocity cone angle controls the spread of the emitted particles upwards, starting as an upside down cone as seen in the first diagram. The larger the value, the wider the cone. Pi (3.14) being the max value.
7.
Angular velocity controls the angle of rotation of a particle along it's path, this is not the same as a particle animation. Normally you will want this set at 0.
8.
Radius controls the render size of the actual particle, randomly. A solid number yields a consistent render size, mixed numbers yield random render sizes within your set values.
9.
The first 'create in' option given here will allow you to control if a particle is rendered in first person, third person, or both. Instances you would need to adjust these might be for vehicle firing effects.
10.
These counts control exactly how many particles are being emitted.
Particles
Particles are bits of debris that can be emitted from quite a variety of objects ingame via effect tags. Particles can range from making up explosion clouds to actual ejected bullet shells and even rain, although they are most commonly used in explosion effects, so that's what I will be covering.
While particles can be quite fun to mess with, using too many of them often results in global particle loss because the engine simply refuses to render them after a certain point.
You can easily locate specific particles by going through the parent trees, I find this quicker to do than looking through all of the tags in a certain path, and as a bonus, there is no guess work to it.
Editing particles is normally only necessary to adjust life spans, animation rates and render sizes (sprite extents), to determine when and where and how your particle will die.
Using above as reference.
1.
The first set of flags will be your most important as it contains the most commonly used features.
2.
These are your life spans, they will determine how long your particles will be rendered before they die.
3.
Radius animations control the size at which your particle will be rendered from beginning to end of its life span. This is not to be confused with the radius setting in effect tags.
4.
Animation rate will control the speed at which your particle animates, most commonly; how fast they spin in the air.
5.
The first framebuffer blend function is your render mode. The only instance you would want to change this setting from stock would be if you were using a custom particle bitmap injected via Eschaton. Eschaton's bitmap inject isn't perfect and will generate enough noise that you end up with a light box around your sprite, visible in-game. To fix; change this render mode to 'component max'.
Particle Systems
Despite their name, particle systems tend to be the most limited in what you can do with them, and in turn, are the least fun to work with.
Particle systems are generally the cloud you see when an explosion goes off, these are completely independent of material effects and will still occur without impact with an object, if the life span runs out that is.
You won't spend a lot of time in the particle system for advanced work, but some edits may be necessary. Most commonly altered is the cloud size as well as particle count and bitmap references. Unlike the name suggests, it actually has no particle references, just raw particle bitmaps and particle physics, which can make it quite a pain to edit.
Using above as reference.
1.
This radius controls the overall size of your explosion.
2.
This is your particle count, it controls how many particles will be used in the explosion. The more particles used the softer and more refined the effect will look, but also makes it more susceptible to particle loss.
3.
These RGB values control your particle tints at various stages.
4.
For particle systems it is not as simple to track down what is what stage of the effect, so checking the effect name always helps when working with particle systems.
Particle Physics
Particle physics, despite having a scary sounding name, is actually pretty easy to mess with and get something cool out of, as its really just point physics; collision with a single point.
Particle physics gives particles their rules on how they can interact with the environment, effect and particle tags just set up the scenario, but this is where you can really design how your particle will behave, whether it blows in the wind, how fast it can move on certain surfaces or whether it has simple collision with scenery and BSP.
There's not much to say on it other than the basics, so I'll provide the usual overview of editing it with Eschaton's stock plugins.
Using the above as reference.
1.
These flags will allow you to give the particle simple point collision as well as some other important options.
2.
The density will control how much the particle is effected by the world around it. For instance air density is 0.0011 so a value any less will cause your particle to float upwards, any greater and it falls downwards with gravity and a value of 0.0011 will allow it to simply float idly as if in zero gravity, however velocities will still have effect.
3.
Air friction is pretty much what it sounds like, this will control how fast the particle falls in a free fall.
4.
Water friction is pretty much what it sounds like, this will control how fast the particle can travel with gravity in water.
5.
Surface friction is pretty much what it sounds like, this will control how fast the particle can travel with gravity on the BSP, scenery or vehicles.
6.
Elasticity controls whether the particle will bounce, and by how much after impacting a solid surface from free fall.
Effects
Particles
Particle Systems
Particle Physics
Effects
Effect tags are generally the most fun to work with and will likely be where you spend most of your time when working with effects depending on your goal. Effects can easily be located by visiting the parent tag of the effect you wish to work on and double clicking on your desired effect in that parent tags references, as seen below.
This is an example of a rocket projectile references, as you can see on the left of each reference you have your tag classification, and in the center you have your individual tag name. Use this to help figure out what is what, however I will help you on this one.
Using the above as reference.
1.
This first effect reference seen here is the projectiles explosion or detonation effect.
2.
The second effect reference seen here is a flyby effect; and effect living for the extent of the projectiles life span.
3.
These last effects here are all material effects; these exist to accompany the explosion effect. All projectiles have these effects. these are triggered depending on the surface the projectile makes contact with, for more diverse visuals, depending on which environment they're created in.
When editing these effect tags you will want to keep track of the references to help you, as seen above with the dirt material effect for the rocket, these references will line up with the particles in order in the meta editor. If you find yourself with more particle references than you're able to edit in the meta editor, you will find that the last few particles are in event 2 or more. Event 2+ is uneditable in Eschaton's starter plugins, and as far as I know, there are no plugins on the PC end capable of editing emission properties in event 2+.
Using the above as reference.
1.
Delay Bounds controls, if desired, the time between emissions, this normally used for emitters. The spark spurt emitter would be an example.
2.
Duration bounds controls, if desired, the length of emissions during an emission cycle controlled by the Delay Bounds.
3.
Tint Upper and Lower bounds control the tint of the actual particle emitted by the effect, which is helpful in ways that you don't have to edit the particle bitmap itself.
4.
Distribution radius controls how far away from the point of origin the particles will be generated, this commonly isn't necessary to edit.
5.
Velocity controls how fast the particles generated will travel from the point of origin.
6.
Velocity cone angle controls the spread of the emitted particles upwards, starting as an upside down cone as seen in the first diagram. The larger the value, the wider the cone. Pi (3.14) being the max value.
7.
Angular velocity controls the angle of rotation of a particle along it's path, this is not the same as a particle animation. Normally you will want this set at 0.
8.
Radius controls the render size of the actual particle, randomly. A solid number yields a consistent render size, mixed numbers yield random render sizes within your set values.
9.
The first 'create in' option given here will allow you to control if a particle is rendered in first person, third person, or both. Instances you would need to adjust these might be for vehicle firing effects.
10.
These counts control exactly how many particles are being emitted.
Particles
Particles are bits of debris that can be emitted from quite a variety of objects ingame via effect tags. Particles can range from making up explosion clouds to actual ejected bullet shells and even rain, although they are most commonly used in explosion effects, so that's what I will be covering.
While particles can be quite fun to mess with, using too many of them often results in global particle loss because the engine simply refuses to render them after a certain point.
You can easily locate specific particles by going through the parent trees, I find this quicker to do than looking through all of the tags in a certain path, and as a bonus, there is no guess work to it.
Editing particles is normally only necessary to adjust life spans, animation rates and render sizes (sprite extents), to determine when and where and how your particle will die.
Using above as reference.
1.
The first set of flags will be your most important as it contains the most commonly used features.
2.
These are your life spans, they will determine how long your particles will be rendered before they die.
3.
Radius animations control the size at which your particle will be rendered from beginning to end of its life span. This is not to be confused with the radius setting in effect tags.
4.
Animation rate will control the speed at which your particle animates, most commonly; how fast they spin in the air.
5.
The first framebuffer blend function is your render mode. The only instance you would want to change this setting from stock would be if you were using a custom particle bitmap injected via Eschaton. Eschaton's bitmap inject isn't perfect and will generate enough noise that you end up with a light box around your sprite, visible in-game. To fix; change this render mode to 'component max'.
Particle Systems
Despite their name, particle systems tend to be the most limited in what you can do with them, and in turn, are the least fun to work with.
Particle systems are generally the cloud you see when an explosion goes off, these are completely independent of material effects and will still occur without impact with an object, if the life span runs out that is.
You won't spend a lot of time in the particle system for advanced work, but some edits may be necessary. Most commonly altered is the cloud size as well as particle count and bitmap references. Unlike the name suggests, it actually has no particle references, just raw particle bitmaps and particle physics, which can make it quite a pain to edit.
Using above as reference.
1.
This radius controls the overall size of your explosion.
2.
This is your particle count, it controls how many particles will be used in the explosion. The more particles used the softer and more refined the effect will look, but also makes it more susceptible to particle loss.
3.
These RGB values control your particle tints at various stages.
4.
For particle systems it is not as simple to track down what is what stage of the effect, so checking the effect name always helps when working with particle systems.
Particle Physics
Particle physics, despite having a scary sounding name, is actually pretty easy to mess with and get something cool out of, as its really just point physics; collision with a single point.
Particle physics gives particles their rules on how they can interact with the environment, effect and particle tags just set up the scenario, but this is where you can really design how your particle will behave, whether it blows in the wind, how fast it can move on certain surfaces or whether it has simple collision with scenery and BSP.
There's not much to say on it other than the basics, so I'll provide the usual overview of editing it with Eschaton's stock plugins.
Using the above as reference.
1.
These flags will allow you to give the particle simple point collision as well as some other important options.
2.
The density will control how much the particle is effected by the world around it. For instance air density is 0.0011 so a value any less will cause your particle to float upwards, any greater and it falls downwards with gravity and a value of 0.0011 will allow it to simply float idly as if in zero gravity, however velocities will still have effect.
3.
Air friction is pretty much what it sounds like, this will control how fast the particle falls in a free fall.
4.
Water friction is pretty much what it sounds like, this will control how fast the particle can travel with gravity in water.
5.
Surface friction is pretty much what it sounds like, this will control how fast the particle can travel with gravity on the BSP, scenery or vehicles.
6.
Elasticity controls whether the particle will bounce, and by how much after impacting a solid surface from free fall.
Guide to Lighting Effects
In this section I will be covering the following:
Dynamic Lighting
Lens Flares
Light Imitating Decals
Dynamic Lights can be visible light emitted by a scenery emitter, weapon as muzzle flash or even some projectiles.
A Lens Flare is a tag controlled bitmap which most commonly imitates light origin.
Light emitting decals are more temporary decals emitted by an effect which light up only BSP like lighting.
Dynamic Lighting
It is important early on to know that, Dynamic Lighting is not a substitute for light mapping. Each dynamic light counts as particles towards to engine and therefor is hindered by the same cap. Too many lights can lead to particle loss and vise-versa. It is also important to know that the radius of the light emitted does not matter towards the particle cap, but quantity of the lights.
However many objects, dynamic lighting is necessary to reveal bumpmaps, especially in stock Halo.
Any object with a light reference can be made to emit dynamic light, from scenery to projectiles.
Making a dynamic light out of a normal light tag is not complicated.
To do so, open up your preference map in Eschaton, go to the [ligh] parent tree and select your tag.
Using the above as reference.
1.
There are your flags, some of the important settings controlled here would be making your light dynamic and omitting specular.
2.
These are your light RGB values, depending on your lens flare settings, this can effect non-dynamic light and will effect dynamic light tints. For a solid color adjust both. For a light that naturally flickers such as flame or beacons, adjust both independently and they will alternate between the two. White for one and black for the other for instance, makes a perfect strobe.
3.
Light Intensity will adjust the brightness of your light, scaling 0-1 only.
4.
Lens Flare Only Radius is the draw distance on the lens flare itself, leave at 0 to keep from disappearing at a set distance.
Using the above as reference.
DL.
Dynamic Light.
SL.
Specular Light. Gives off fugly glows behind dynamic light at certain angles on metal surfaces, recommended setting is to turn it off in Flags.
Lens Flares
Lens flares accompany light tags 90% of the time. Normally acting as the visual point of origin for a light. That other 10% of the time they will be referenced off an explosion effect tag, for example the tank shell detonation.
Using the above as reference.
NLF.
Normal Lens Flare.
DLF.
Dynamic Lens Flare.
There are two kinds of Lens Flares, normal types, and the dynamic type.
I'll spare you my describing normal lens flares further as it is pretty basic. Dynamic lens flares are a tricky animal to deal with and are only appropriate for certain situations. Dynamic lens flares are pretty much as the title and picture show, they dynamically shine rays depending upon what is in front of it, mimicking high intensity light. The only point where this is used in stock Halo is for the sun lens flare, in the sky.
The reason this type of lens flare is tricky to deal with is because it scales with distance, increasing in physical size, not appearance as it moves further away, consequently maintaining the appearance of it standing still. It can be on the other side of bloodgulch and still look like it did when it was 5ft in front of you. The reason for this is so that the closer you get the the sun, it remains looking the same size, even though you are physically getting closer to the lens flare.
The problem is, this cannot be easily adjusted as it is engine controlled. Believe me, I tried.
The only way I found around this is to make a special tag in CE with two light references, referencing two similar lens flares. A standard large lens flare, roughly matching the size of the dynamic flare, with no draw distance (lens flare only radius). And the second being a pure dynamic lens flare with a small draw distance... to about 20-30ft. When that distance is achieved, the dynamic lens flare is killed and the overlapping normal lens flare takes over and scales correctly. This is how the countermeasure lens flares in Bomb Run 2 were pulled off.
To easily locate your lens flare track the dependencies with Eschaton through the light tag, as lens flares can occasionally be deceivingly labeled.
Using the above as reference.
1.
This is your flag, revealing the setting to make your lens flare dynamic 'Sun'.
2.
This will adjust which angles the lens flare will be blocked by a solid object.
3.
These act as draw distances for your lens flare. Adjusting this will effect if and when your lens flare fades from view at certain distances.
4.
These two adjust the basic shape of your lens flare. Equal values will give you a circle, unequal ones will give you an oval shape depending on how you adjust it.
5.
This is your lens flare tint RGB values, normally left at black, therefor allowing the lens flare color to be determined by the tint in the light tag. These can be adjusted independently.
6.
This radius scales your lens flare in size.
7.
This controls the intensity/brightness of the lens flare.
Light Imitating Decals
Light Imitating Decals are just like standard bullet decals but with a shorter life span and are made to imitate dynamic light on a smaller scale.
Some emitters utilize this, but it is most commonly used in plasma burns.
These can easily be tracked down specifically by going to your projectile tag and tracking through the material effects. Most plasma decals have three parts/decals to them, each references off one another. To find the light imitating decal you have will to make an educated guess and little trial and error.
Using the above as reference.
1.
These controls the radius/size of the decal.
2.
These values control the brightness/intensity of the decal itself.
3.
These are your RGB tints for the decal.
4.
These are your decal life spans, they control how long the decal appears.
Dynamic Lighting
Lens Flares
Light Imitating Decals
Dynamic Lights can be visible light emitted by a scenery emitter, weapon as muzzle flash or even some projectiles.
A Lens Flare is a tag controlled bitmap which most commonly imitates light origin.
Light emitting decals are more temporary decals emitted by an effect which light up only BSP like lighting.
Dynamic Lighting
It is important early on to know that, Dynamic Lighting is not a substitute for light mapping. Each dynamic light counts as particles towards to engine and therefor is hindered by the same cap. Too many lights can lead to particle loss and vise-versa. It is also important to know that the radius of the light emitted does not matter towards the particle cap, but quantity of the lights.
However many objects, dynamic lighting is necessary to reveal bumpmaps, especially in stock Halo.
Any object with a light reference can be made to emit dynamic light, from scenery to projectiles.
Making a dynamic light out of a normal light tag is not complicated.
To do so, open up your preference map in Eschaton, go to the [ligh] parent tree and select your tag.
Using the above as reference.
1.
There are your flags, some of the important settings controlled here would be making your light dynamic and omitting specular.
2.
These are your light RGB values, depending on your lens flare settings, this can effect non-dynamic light and will effect dynamic light tints. For a solid color adjust both. For a light that naturally flickers such as flame or beacons, adjust both independently and they will alternate between the two. White for one and black for the other for instance, makes a perfect strobe.
3.
Light Intensity will adjust the brightness of your light, scaling 0-1 only.
4.
Lens Flare Only Radius is the draw distance on the lens flare itself, leave at 0 to keep from disappearing at a set distance.
Using the above as reference.
DL.
Dynamic Light.
SL.
Specular Light. Gives off fugly glows behind dynamic light at certain angles on metal surfaces, recommended setting is to turn it off in Flags.
Lens Flares
Lens flares accompany light tags 90% of the time. Normally acting as the visual point of origin for a light. That other 10% of the time they will be referenced off an explosion effect tag, for example the tank shell detonation.
Using the above as reference.
NLF.
Normal Lens Flare.
DLF.
Dynamic Lens Flare.
There are two kinds of Lens Flares, normal types, and the dynamic type.
I'll spare you my describing normal lens flares further as it is pretty basic. Dynamic lens flares are a tricky animal to deal with and are only appropriate for certain situations. Dynamic lens flares are pretty much as the title and picture show, they dynamically shine rays depending upon what is in front of it, mimicking high intensity light. The only point where this is used in stock Halo is for the sun lens flare, in the sky.
The reason this type of lens flare is tricky to deal with is because it scales with distance, increasing in physical size, not appearance as it moves further away, consequently maintaining the appearance of it standing still. It can be on the other side of bloodgulch and still look like it did when it was 5ft in front of you. The reason for this is so that the closer you get the the sun, it remains looking the same size, even though you are physically getting closer to the lens flare.
The problem is, this cannot be easily adjusted as it is engine controlled. Believe me, I tried.
The only way I found around this is to make a special tag in CE with two light references, referencing two similar lens flares. A standard large lens flare, roughly matching the size of the dynamic flare, with no draw distance (lens flare only radius). And the second being a pure dynamic lens flare with a small draw distance... to about 20-30ft. When that distance is achieved, the dynamic lens flare is killed and the overlapping normal lens flare takes over and scales correctly. This is how the countermeasure lens flares in Bomb Run 2 were pulled off.
To easily locate your lens flare track the dependencies with Eschaton through the light tag, as lens flares can occasionally be deceivingly labeled.
Using the above as reference.
1.
This is your flag, revealing the setting to make your lens flare dynamic 'Sun'.
2.
This will adjust which angles the lens flare will be blocked by a solid object.
3.
These act as draw distances for your lens flare. Adjusting this will effect if and when your lens flare fades from view at certain distances.
4.
These two adjust the basic shape of your lens flare. Equal values will give you a circle, unequal ones will give you an oval shape depending on how you adjust it.
5.
This is your lens flare tint RGB values, normally left at black, therefor allowing the lens flare color to be determined by the tint in the light tag. These can be adjusted independently.
6.
This radius scales your lens flare in size.
7.
This controls the intensity/brightness of the lens flare.
Light Imitating Decals
Light Imitating Decals are just like standard bullet decals but with a shorter life span and are made to imitate dynamic light on a smaller scale.
Some emitters utilize this, but it is most commonly used in plasma burns.
These can easily be tracked down specifically by going to your projectile tag and tracking through the material effects. Most plasma decals have three parts/decals to them, each references off one another. To find the light imitating decal you have will to make an educated guess and little trial and error.
Using the above as reference.
1.
These controls the radius/size of the decal.
2.
These values control the brightness/intensity of the decal itself.
3.
These are your RGB tints for the decal.
4.
These are your decal life spans, they control how long the decal appears.
Guide to Efficiency
First of all, let me explain what I mean by efficiency in Halo. Efficiency in Halo describes things such as effects running smoothly without particle loss and without huge FPS hits. There are a lot of things in stock Halo that can be tweaked to become more efficient. Efficiency is really necessary when modding effects as generally you're improving upon existing effects... though I don't know about some of you, you like to take a step back. xD
When you alter effects, unless you're just changing up particle bitmaps, you're going to be adding or removing particles, which can improve or adversely effect performance. In a lot of cases such modification can lead you to easily reach the engines limit of 100 colliding particles. Meeting or exceeding this particle cap can and will lead to particle loss. Particle loss is when particles simply do not render causing losses of particles and dynamic lighting globally across the whole of the map until that number falls back below the cap. It's extremely hard not to encounter particle loss, even stock Halo suffers from it in some instances.
I will also put it out there that the size or render rate of a particle does not count towards that particle cap any more than any other particles, the engine simply see's them as a number, so don't go making all your particles tiny in hopes of dodging particle loss.
This guide will help you minimize, even help prevent particle loss and help you get some of those lost FPS back in case you actually need them...
I will begin with the basics; getting stock Halo to run more efficiently, so that when you do your new effects, they have some extra headroom.
The primary waste of particles on stock Halo is bullet shells, you know those shells that eject from your weapon which you see for half a second before it hits the ground out of sight? Yeah, those sit there for a good 3 minutes, and those shells aren't little models, those are individual particles. That adds up pretty quickly. Using the effects section in this guide for reference, you can set the life spans of those particles to be much lower, or you can make them die on impact with the BSP, which is what was done in FTW2. That setting can be found in particle branch under the first set of flags.
To easily find these particles, you will have to go to the parent weapon tag in question, and track the references. You will find it off the firing effect reference, and the particle off of that.
Many other particles can be taken care of like this, lowering life spans helps keep the global particle count in check so they don't pile up and cause unnecessary particle loss.
A big way to trade for visuals for performance you might want to consider is adjusting local particle counts in the particle systems or effect tags. These particle counts as the name suggests, control the amount of particles being used in an effect. Both particle systems and effects have such values you can alter, however, particle counts in particles systems will scale with the effect even though the value remains static. With every effect there's a certain amount you can take without causing a visual loss in quality. Together, it adds up and can make a huge difference.
It's just a game of give and take. However in some situations, you can make one particle look like many, as seen on the fog in Parallax.
The commonly unseen queen bitch of particle loss, is dynamic lights. Believe it or not, but dynamic lighting will count towards the same exact cap as particles do. And again, I will mention, it is not the size but the quantity, the engine see's these as numbers, so it doesn't matter how small you make your dynamic light. If it exists, its hurting your particle cap. Lowering the size, however, will help average FPS but not drastically.
Remember from the lighting section of this guide, not all lights are dynamic, only those which are dynamic will count towards this cap.
Yet another waste of resources in stock Halo is decals such as bullet decals, explosion decals and blood decals, the engine also counts those towards the same cap as particles. Pretty much anything that isn't static in the game, counts towards that limit. Decreasing decal life can drastically improve FPS as well as help fight against particle loss. Before reducing these life spans make sure you know what decals you're altering. Some need to keep their original life spans to maintain a certain effect. Basically any decals you see with a life span over 100 is safe to adjust how you see fit. I would recommend reducing to a life span of 30 and go from there.
All the above methods mentioned to increase the games efficiency are just to get you set for bigger and greater things. When you start making your own effect, make sure to keep those particle counts down as much as possible while still maintaining the overall effect you're going for.
When you alter effects, unless you're just changing up particle bitmaps, you're going to be adding or removing particles, which can improve or adversely effect performance. In a lot of cases such modification can lead you to easily reach the engines limit of 100 colliding particles. Meeting or exceeding this particle cap can and will lead to particle loss. Particle loss is when particles simply do not render causing losses of particles and dynamic lighting globally across the whole of the map until that number falls back below the cap. It's extremely hard not to encounter particle loss, even stock Halo suffers from it in some instances.
I will also put it out there that the size or render rate of a particle does not count towards that particle cap any more than any other particles, the engine simply see's them as a number, so don't go making all your particles tiny in hopes of dodging particle loss.
This guide will help you minimize, even help prevent particle loss and help you get some of those lost FPS back in case you actually need them...
I will begin with the basics; getting stock Halo to run more efficiently, so that when you do your new effects, they have some extra headroom.
The primary waste of particles on stock Halo is bullet shells, you know those shells that eject from your weapon which you see for half a second before it hits the ground out of sight? Yeah, those sit there for a good 3 minutes, and those shells aren't little models, those are individual particles. That adds up pretty quickly. Using the effects section in this guide for reference, you can set the life spans of those particles to be much lower, or you can make them die on impact with the BSP, which is what was done in FTW2. That setting can be found in particle branch under the first set of flags.
To easily find these particles, you will have to go to the parent weapon tag in question, and track the references. You will find it off the firing effect reference, and the particle off of that.
Many other particles can be taken care of like this, lowering life spans helps keep the global particle count in check so they don't pile up and cause unnecessary particle loss.
A big way to trade for visuals for performance you might want to consider is adjusting local particle counts in the particle systems or effect tags. These particle counts as the name suggests, control the amount of particles being used in an effect. Both particle systems and effects have such values you can alter, however, particle counts in particles systems will scale with the effect even though the value remains static. With every effect there's a certain amount you can take without causing a visual loss in quality. Together, it adds up and can make a huge difference.
It's just a game of give and take. However in some situations, you can make one particle look like many, as seen on the fog in Parallax.
The commonly unseen queen bitch of particle loss, is dynamic lights. Believe it or not, but dynamic lighting will count towards the same exact cap as particles do. And again, I will mention, it is not the size but the quantity, the engine see's these as numbers, so it doesn't matter how small you make your dynamic light. If it exists, its hurting your particle cap. Lowering the size, however, will help average FPS but not drastically.
Remember from the lighting section of this guide, not all lights are dynamic, only those which are dynamic will count towards this cap.
Yet another waste of resources in stock Halo is decals such as bullet decals, explosion decals and blood decals, the engine also counts those towards the same cap as particles. Pretty much anything that isn't static in the game, counts towards that limit. Decreasing decal life can drastically improve FPS as well as help fight against particle loss. Before reducing these life spans make sure you know what decals you're altering. Some need to keep their original life spans to maintain a certain effect. Basically any decals you see with a life span over 100 is safe to adjust how you see fit. I would recommend reducing to a life span of 30 and go from there.
All the above methods mentioned to increase the games efficiency are just to get you set for bigger and greater things. When you start making your own effect, make sure to keep those particle counts down as much as possible while still maintaining the overall effect you're going for.
Guide to Making Your Own Effects
The main purpose of this guide was to explain the many levels of effects work and what certain things control.
In this section however, I will briefly describe how you would go about making or modding your own effect on Halo.
Using the above as reference.
When dealing with effects, you have a big tree of hierarchy's and tag classes to work with. An effect as a whole oddly enough, begins with the effect tag at the top of the tree, this effect tag controls where, how fast and how often a particle is generated as well as a slew of other nitty-gritties. Effects can be attached to projectiles in the form of material effects, explosion effects or flyby effects. They can also be attached to invisible scenery items known as emitters, for effects in a static location. And they can be attached to weapons as overheating effects or firing effects. Effects are in a lot of places and they can vary from extremely complex in their tag structure to very simple.
Below effects are particles, particle systems and light. Not always are they associated with an effect tag, but primarily.
Particles are very simple tags which basically just combine the bitmap and particle physics tags into the whole tree, however particles do have many important unique features to them such as life spans and animation rates.
Particle systems are basically a hybrid of a effect tag and particle tag, though lack many respectable features of each, making them hard to deal with. This tag class basically just combines multiple bitmaps and particle physics tags minus actual particles. These tags generate 'effects' ingame with little features, generally simply creating a dynamic cloud of 'particles' and not much more, so to make any interesting effect you will need an effects tag to accompany particle systems.
Below particles is as mentioned before; raw bitmap references which make up the particles shape and color, yet not size.
The other tag below particles is particle physics. Particle Physics which can be a lot of fun to mess with if you know what you're doing. Here you can adjust how the particle reacts to its environment, you can control how much the particle will weigh, how it blows in the wind, rolls on the ground, and even how much it can bounce when colliding with a solid object.
Now that you understand the basic hierarchy tree of effects, you can start modifying them. Simple modifications to start out with might be reference swapping particle tags with that of others, and of course the particle physics accompanies them, which can give the effect a new life. Once you get the hang of working with effects you can start making your own particles and in turn, new effects.
Here's a tip, for most effects work you have to do a lot of searching for the right tag to use, because you can't simply add certain references like in CE so you have to repurpose or modify existing tags that may fit your criteria. Once you find the tags you wish to work with, implementing that tag can take a lot of searching around for the right portion of your effect tree. You can easily find desired sections of that tree by following the references in a parent tag by simply double clicking its respectable reference, then moving to the next reference and so on. I find this a lot easier than going through the long list of effects or particles in their respectable sections.
In this section however, I will briefly describe how you would go about making or modding your own effect on Halo.
Using the above as reference.
When dealing with effects, you have a big tree of hierarchy's and tag classes to work with. An effect as a whole oddly enough, begins with the effect tag at the top of the tree, this effect tag controls where, how fast and how often a particle is generated as well as a slew of other nitty-gritties. Effects can be attached to projectiles in the form of material effects, explosion effects or flyby effects. They can also be attached to invisible scenery items known as emitters, for effects in a static location. And they can be attached to weapons as overheating effects or firing effects. Effects are in a lot of places and they can vary from extremely complex in their tag structure to very simple.
Below effects are particles, particle systems and light. Not always are they associated with an effect tag, but primarily.
Particles are very simple tags which basically just combine the bitmap and particle physics tags into the whole tree, however particles do have many important unique features to them such as life spans and animation rates.
Particle systems are basically a hybrid of a effect tag and particle tag, though lack many respectable features of each, making them hard to deal with. This tag class basically just combines multiple bitmaps and particle physics tags minus actual particles. These tags generate 'effects' ingame with little features, generally simply creating a dynamic cloud of 'particles' and not much more, so to make any interesting effect you will need an effects tag to accompany particle systems.
Below particles is as mentioned before; raw bitmap references which make up the particles shape and color, yet not size.
The other tag below particles is particle physics. Particle Physics which can be a lot of fun to mess with if you know what you're doing. Here you can adjust how the particle reacts to its environment, you can control how much the particle will weigh, how it blows in the wind, rolls on the ground, and even how much it can bounce when colliding with a solid object.
Now that you understand the basic hierarchy tree of effects, you can start modifying them. Simple modifications to start out with might be reference swapping particle tags with that of others, and of course the particle physics accompanies them, which can give the effect a new life. Once you get the hang of working with effects you can start making your own particles and in turn, new effects.
Here's a tip, for most effects work you have to do a lot of searching for the right tag to use, because you can't simply add certain references like in CE so you have to repurpose or modify existing tags that may fit your criteria. Once you find the tags you wish to work with, implementing that tag can take a lot of searching around for the right portion of your effect tree. You can easily find desired sections of that tree by following the references in a parent tag by simply double clicking its respectable reference, then moving to the next reference and so on. I find this a lot easier than going through the long list of effects or particles in their respectable sections.
Causes of Exception Errors in Effects
Effects:
Nulled effects will in any circumstance cause an exception error, to kill an effect you must null the particle references off the effect tags or kill the particle counts in the effect tag, preferably the former.
Particle Systems:
Nulled particle systems will always lead to exception errors as well. To kill a particle system you must cryo glass all bitmap references called and kill the particle counter. If you do not kill the particle count you're just wasting game resources on invisible particles.
Particle Physics:
Particle physics can be nulled in certain situations like off a contrail tag for instance. However, nulling a physics reference off a particle itself will cause an exception. You cannot disable a physics tag having an effect on a particle without issue but you can dampen it's effect on a particle via tag values, depending on the situation.
Bitmaps:
In any scenario nulling a bitmap will lead to an exception error. Swapping a bitmap reference to cryo glass will make the effect calling it invisible.
Last Updated: 10-10-2010