// The Battle Grounds Particle System Emitter Definition File //=======================================================================================// // All lines started with // will be ignored by BG // so that you can add notes to yourself or others in these files. // All settings start with the setting name. The actual setting value follows after a space. // Each setting must be on a new line. An example of a setting can be seen below testsetting 10 // Below I will give an example of a fully fleshed out particle system // There are some comments after some settings. // These comments are no substitute for the guide, which explains all this in much more detail //=======================================================================================// // The Number of particles spawned by the emitter when the emitter is triggered or the map is loaded. starting_particles 5 // These particles are spawned every second, the number says how many new particles are created in a second, // one frame can generate more or less than 1 particle. There is no limit but the more particles the longer it will take to // render them. Most of the time a few well configured particles give the best effect and are fast to render. new_particles_per_second 5.0 // Path to the tga used for the particle relative to bg path. It can be a compressed or uncompressed tga, // but compressed tga will save hdd space and wont affect the games performance. texture particles/smoke1.tga // The starting size of the particle multiplied with 30 in the code, // so 1.0 means 30 hl units what is compareable to something like 50cm. scale 1.0 // Scale increase per second. 1.0 means the particle scale increases by one every second. // 0.0 means the particles scale stays the same all the time. growth 1.0 // The time that has to pass till a particle is removed // fadein in and out will be finished completely in this time. lifetime 5.0 // A random value between -Lifetimevariation and +Lifetimevariation is added to the Lifetime. // Meaning if Lifetimevariation = 1.0 and Lifetime = 5.0 particles from this emitter // can have Lifetimes between 4.0 and 6.0. lifetime_var 1.0 // This Keyvalue sets 2 variables in code at the same time, first it sets how much the particle is rotated when it spawns. // Spawned particles can have a rotation between +Rotation speed and -Rotation speed. // Also as the name says it determines how fast the particle rotates. Again the continous rotation can be any // value between +Rotation speed and -Rotation speed generated by random. The value can be interpreted as // degrees per second. So Rotation speed = 180 means the particle rotates 180° (a half circle) in one second . // The rotation of all particles is independent, meaning no particle will rotate the same way and the same // rotationspeed if "Rotation speed" is bigger than zero. rotation_speed 0.0 // Acceleration per second. For solid mass that would be 9.81 in the real world. But in many cases 0 or even // a negative value will also help to get the desired effect. gravity 1.0 // Velocity of the particles when they are spawned. If you need to figure out which axis is positive and negative // in which direction check the @ X, Y in the status line in hammer. But remember the value is only for the // current viewport your mouse is hovering. starting_velocity_x 0.0 starting_velocity_y 0.0 starting_velocity_z 5.0 // Again a random value between -velocity_var and +velocity_var is added to the starting_velocity. velocity_var_x 2.0 velocity_var_y 2.0 velocity_var_z 2.0 // Determines how much the velocity gets reduced over time. This is a little hard to describe in examples // because the damping increases with the square of the velocity. // In general high damping means decreasing the speed faster damping 1.0 // Is the maximum transparency of a particle. // 255 = totally solid // 0 = totally see through, invisible // It's a sliding scale inbetween // Fade_In and Fade_Out Spawnflags animate the transparecy over a particles lifetime though. transparency 255 // After this time the emitter and all its particles are deleted. Positive Values are only used for retiggerable particlesystems, like explosions and blasts. // Negative number means forever, any other number is actual life time in seconds. system_life -1.0 // Displaymode: // 32 - 24bit for color and 8 bit for alpha channel // 24 - additive - additive blending used for fire explosions,... // 32 and 24 are the only valid values here. Defaults to 32 display_mode 32 // Actually the entity is point based. But you can select to make the emitter areal or to spawn all particles around the player. // If you select plane or around_player you have to enter values for the plane_x/y_length. // point, plane and around_player are the only accepted values here. Defaults to point emitter_shape point // These next two settings are only valid if emitter_shape is set to plane or around_player // standard HL units plane_x_length 5 plane_y_length 5 // Animate over Life - all frames are played once, every frame lasts the same amount of time // Start fast / End slow - used for explosions, the framerate is high in the beginning and getting slower in the end // custom - set the custom framerate below // over_life, fast_to_slow and custom are the only valid settings here. Defaults to over_life anim_speed over_life // Custom Framerate if anim_speed is set to custom. fps 10 // Determines which frame in a tga is the first one of the animation starting_frame 1 // Determines which frame in a tga is the last one of the animation ending_frame 1 // This is the number of frames the tga contains, only 2^n numbers are supported, x and y must match. // Supported Frames per Image values: 1, 4, 9, 16, 25, 36, 49, 64,..... // That doesnt mean the Animation has to last that long, the Endingframe above can also be set // to 10 in a 16 frame tga so the last 6 images in the tga are ignored. frames_in_image 1 // Animation Behavior // loop - the animation plays over and over again // ping-pong - the animation reverses if it reaches the last frame and does the same // thing when it reaches the first frame again // hold last frame - animation is played once and last frame is frozen // loop, reverse and hold_last are the only valid settings here. Defaults to hold_last loop_behaviour hold_last // Collision // off - no collision - faster rendering // stuck on collision - particles get stuck where they hit a solid brush // die on collision - particle gets deleted as soon as it collides with a brush // bounce on collision - particles bounce with 90% of their speed from any solid brush, // but they only bounce on axis aligned walls, 45° degree walls will lead to physically wrong effects // splash on collision - creates a splash effect as well as a ripple effect if it hits water // "particles/deffile.txt" There is one other behaviour. That is to create a new particle system on collision and then kill // the particle like in die. The new particle system will have the same position to the killed particle // In addition the new particle system would be created in the direction that the particle would have moved // if it had bounced. // off, stuck, die and bounce, splash and path to new particle system are the only valid settings here. Defaults to off collision off // Particle Generation Falloff // used for triggered emitters to simulate explosion and events that are only temporary, to create a smooth //transition when the emitter "fades away" the particle generation decreases linearly. //none - no falloff //linear to 1/2 of Lifetime - particle generation starts to constantly decrease till its 0 at1/2 of the emitters life time, make sure //your particles life time is long enough so the particle system lifetime doesnt kill them //linear to 1/4 of Lifetime - particle generation starts to constantly decrease till its 0 at1/4 of the emitters life time, make sure //your particles life time is long enough so the particle system lifetime doesnt kill them // none, lifetime, half, quarter. Defaults to none falloff none // Light Check // Adapts the particles brightness to the maps light at the particles location // off - particles are not affected by light // once - the particle receives the light of the location it spawns at (one light check performed) // every_sort - the particle's brightness gets updated everytime depth sorting occurs (cl_particlesorts each second) // never, once, every_sort - Default to never light_check never // Particle Aligning // controlls billboarding and particle orientation // player_view - billboards the particle to the players view // locked_z - billboards the particle to the players view but locks the particles z-axis // planar - Particles surface is a plane parallel to the ground // none - the particle stays in the orientation it is spawned in // velocity_vector - * not working yet* the particle aligns to the direction it is traveling // player_view, locked_z, planar, none, velocity_vector - Default to player_view particle_align player_view // rotationvelocity of the particles. Only works if particle_align is set to none rotation_velocity_pitch 0.0 rotation_velocity_yaw 0.0 rotation_velocity_roll 0.0 // rotationvelocity variation of the particles. Only works if particle_align is set to none rotation_velocity_var_pitch 0.0 rotation_velocity_var_yaw 0.0 rotation_velocity_var_roll 0.0 //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++// // spawnflags, boolean values: // They are on/off switch. 0 for off, all other values for on (1 prefered for better readability :p ) // An additional force slowly blows the particles to the side wind 1 // Particles slowly fade in and are at maximal transparency after 50% of the lifetime fade_in 1 // Particles slowly fade out after 50% of their lifetime has passed fade_out 1 // Particles surface is a plane parallel to the ground planar 0 // Particles very close to the player are faded out smoke 0 // Particles for this system won't be sorted, meaning particles behind them may be drawn infront ignore_sort 0