Particles!!!
This time, I am looking for something a little different, instead of basic 3D art, fps mechanics, and other prototyping, I have decided to get a better understanding of the Unity engine's particle system so not only can I make my own particles in the game engine like fire, muzzle flash, and magic effects, but to get a general idea and understanding of how particles are made so I do things like edit public domain particle's I get from Unity store website, or if I am working with game artists who are using the particle system, I can communicate in their language, terminology and just generally be on the same page as them when creating particle's for games.
I learned how to create the particles with modules from a website called “School of Game Design”. I did not make the particle textures myself, it was probably done by the School of Game Design.
This took a while to assemble, and I learned so many things relating to particles.
WHAT I LEARNT:
--General--
How good the editor for the particle system is when editing multiple child object particles in the parent object particle.
Always good to start with a basic texture prefab particle, then play around with its modules like Renderer, Lifetimes, Texture sheet animation, etc to see how it all fits together until you are satisfied with the end result.
Most of the particle module properties can be determined with a single value, a value between two constants, and curves.
For properties of particles, there is no right or wrong answer, it's whichever one works best and what it needs depending on the particle.
For some particles, you may need child objects to separate different particles of the parent, e.g. dust funnel or snow storm that has debris or small balls covering the house on impact.
How powerful using curves for X,Y,Z options for certain modules, however, can take some practice to get used to.
--Modules--
Prewarm starts the particle before the player starts the level, however, it is costly for performance.
Gravity multiplayer determines if the game's physics affects the gravity of the particle.
For Simulation space: Local simulates sticking with objects while World space trails the particles behind when the game object moves.
For Simulation space: Start lifetime determines how long the particle lasts before being erased, Simulation speed determines how fast or slow it is going, and Size over lifetime determines how big or small it will be over time.
For Shape, turning it off makes the particle appear in one position which is good for making orbs.
For Shape, Radius thickness determines how the particle emits outside its shell shape.
Force over lifetime determines the force that pushes the particles over time.
Collision quality checks each particle collision in the scene but may need to be reduced to ease on performance.
Velocity over lifetime is good for speeds of particles between two constants, It can go slower or faster depending on the value.
For Rotation over lifetime, rotating particles under 90 degrees is generally suitable, depending on the particle, however.
Velocity over lifetime limits the speed of the particle once it spawns. Dampen controls how long or shorter it will be over time.
For Colour over lifetime, it can be used to control the alpha over time for particles, meaning how soon or later the particle is visible or invisible.
For Emission... - Rate over time determines how many particles in a scene at a time. - Rate over distance: determines how many particles are in the scene following a trial at a time. - the more particles you have, the more its harder on the processing performance. - Speed scale determines how big and fast the particle goes to be smaller, larger, slower, or even faster. - Length scale determines the scale of the particle before it shrinks. - Bursts: delays a certain amount of particles at a time.
Start size( at the top) is a good way to start small on the first step and experiment with it all the way to the biggest step before experimenting with other properties.
Texture sheet by Animation... - controls how the texture sheet of the particle is rendered piece by piece. - Single row: Will animate in a simple row, left to right. - Whole sheet: will animate from left to right, up to down. - Frames over time control speed time between frames. - Cycles: how many times it loops.
Sub Emitters - spawns a particle. - Birth: creates a new particle.
--Idea’s for particles in future—
Dust storm could also be used for chemical smoke if colored. The same particles could serve multiple purposes with tweaked colors, modules, or textures.
Fire particles need to be on spreadsheets to animate consistency with their child object particles.
How different child object particles can blend with each other to create one whole particle game object, e.g. Fireball.
Render - determines how it renders in front of the camera, e.g. the particles(s) look straight at the camera when it renders. - Horizontal billboard: renders facing above ground, does not look at the camera. - Billboard: particle looks at the camera. - Billboard> stretched billboard allows you to stretch the rendered particle (e.g. raindrops).
Sort mode - sorts which particles emit first or last. - By distance is good to make sure the particles are not transparent with each other. - If the texture in the particle has lots of detail, it's best to organize the sorting mode so it can be seen better. - Youngest first: emits particles first, think of it like front to back like layers - Oldest first: makes the oldest particle within the particles to be seen first then the newest(simple fire). - Sorting Fudge: sorts the number of layers in order like Photoshop layers to organize which layer is to show first starting from layer 0.
Simulation space: world is good for making particle trails for moving objects.
How effective Shape is for particles to be given a 360 arc so they form like a circle like the Magic effect and Sunrays.
How good controlling the speed rotation of particles while they move, e.g. dust storm.
How effective Size over lifetime is to making particles start small and go smaller or larger over time.
How effective the Collision module is for using properties to behave when colliding in with objects like... - Bounce: how effective does it bounce when colliding with objects. - Dampen: how effective will it lose its friction when colliding with objects. - Max Kill Speed: How fast do particles need to be after it has collided with an object and then it dies. - Can determine which objects with certain Layer mask it collides with. - Can be enabled to collide with dynamic objects.
WHAT WENT WRONG AND WHAT COULD I HAVE DONE BETTER?:
Next time, when showing the particles in the scene view, I should have the orange selection outline turned off.
I had a lot of difficulty making the video on Microsoft Clipchamp because it kept deleting the recorded clips and I had to reimport them back in which took a long time to load. I was originally gonna make one whole video, but I had so many problems with it, so instead I had to make separate video parts of the Particles video. Soon I will stop using Microsoft Clipchamp, and use a different movie maker app after I make two last videos of my newest project.
I was not really satisfied with the Smoke funnel because I was hoping it would look like a tornado with all particles blended together rather than look like it's coming apart, I will need to improve on making particles in general if I want to make a tornado particle for next time.
I think the snowflakes from the snow particles should have an actual snowflake texture to be realistic rather than a simple white circle, however, it will depend on my next game's art style and how far the player sees it when in snow-themed levels.
OVERALL:
Overall I’m glad I got a better understanding of how the particle system works, despite it was a bit tedious and a big project to do.
Now that I have learned a lot, it should make new and editing existing particles much easier in development with less headache.
It was tricky to name every single nuts and bolts detail on the post-mortem that I learned, so I did my best. If you have read this, thanks for watching and understanding.
Comments