- Post updated on 2nd June 2011
Ok not quite done.
It appears not sleeping has turned me into a blatant liar, I've added a couple of new features. Firstly for building waterfalls, you can now make the top of the waterfall emit from the emitter quad by setting the zBase slider in Dynamics 1 to -1. This will shift the whole shader down by 100%, so the top of the waterfall is located at the emitter and not some point high above the emitter. This was originally causing problems as people had to bury the emitter deep within their brush work, to get their waterfalls in the correct location.
Secondly I've added arbitrary rotation controls for the whole system in the systems tab, so you can spin your systems into any orientation you like.
You should still be able to load in previous individual particle systems using the load button, but the multi-system settings file has changed format too much for you to be able to import older multi-system files. Sorry.
Downloads and source updated, have fun.
Download 2.0.b3
Examples
Source
Features:
- Can make many different particle systems, such as:
- Smoke & steam
- Explosions & fireworks
- Fountains & Waterfalls
- And more.
- Realtime 3D preview
- Ability to load external textures.
- Pan and zoom camera around the particle effect.
- Toggleable showing of info_player_start for relative scale.
- Dynamics Controls
- Number of particles
- Particle size
- Height
- Radius
- Angle constraints around Z axis.
- Waveform controls for Z axis and XY plane.
- Phase grouping, aka 'spurtyness'
- Blending controls:
- Supports all quake 3's blend modes.
- Full rgben control.
- Full alphagen control.
- Texture Dynamics:
- Stretching
- Rotation
- 2.0 Additions:
- Multi-Particle support
- Exporting of ASE format prefab
- Control of render sort order
- Ability to move particle emitters around the scene
Export Guide
Once you have setup your particle system, see detailed guide below, click the export button in the lower right. If you have set a base path, then it will export to your scripts/ folder. Otherwise it will export to the folder ps2.exe is in. You will have to rename it from .txt to .shader, this is intentional so it doesnt overwrite anyones shader files.
When you load your shaders in radiant, you'll notice one shader named by the name you picked, the rest begin with 'zz' and end in a number. You should ignore the shaders begining with zz. Add your shader to one side of a brush, with the rest of its sides textured in common/nodraw.
Additionally the program can create an ASE model of the scene that you can import strait into radiant that has all sizes and positions of the emitters already set. You will given the option to export a model when you select the export button.
Make sure you add the name of the shader file to the shaderlist.txt before you compile.
Detailed Editing Guide
There are 5 tabs along the bottom: File, Dynamics 1, Dynamics 2, Blending, TcMod & Export.
Note: Right click on a slider to type in an exact value.
FILE TAB
Base Path:
Set this to your baseq3 folder, ie D:\games\quake3\baseq3. If you use the find button, select any file in your basepath.
Shader Name:
This will be the name of the shader when its exported. It must contain a path name and a shader name separated by a '/', ie 'test/name'. NOTE: If your using a foreign keyboard and cannot find '/' use space instead.
Texture Name:
The name of your texture relative to baseq3/, ie 'textures/common/caulk'.
Experimental Firework Mode:
See Section at bottom of this guide.
DYNAMICS 1 TAB
# Particles:
The Number of particles in your system.
Z Waveform:
The wave form that controls motion on the z axis(up/down). Sine is good for fountains, sawtooth is good for smoke effects.
Height:
The height particles will rise to, in game units.
Natural:
When creating fountain effects it sets the height to match the frequency, so that the particles accelerate approximately at 9.81ms-2.
Var:
The variation of height in game units.
Base Var:
Variation along the Z axis of the particle's emitter.
Frequency:
The number of cycles per second.
Natural:
As above.
Phase Grouping:
Controls the 'spurtyness' of the effect. 1 is continuous flow, below 1 creates spurts, above 1 creates inverted spurts. A value like 0.1 - 0.2 is quite nice.
Master Phase:
The master phase of the whole system, most of the time you wont need to use this.
Size:
Particle size, this is just for use in the studio. The actual size in game will be the size you create your brush in radiant.
DYNAMICS 2 TAB
Radius:
The distance a particle will move away from the emitter in the x/y plane.
Var:
The variation in radius, in game units.
Base Var:
Random variation along the x/y plane of the particle's emitter.
XY Waveform:
The wave function of motion in the x/y plane.
XY Phase:
Additional phase added to the xy waveform.
Start & End Angles:
Angle constraints for x/y motion.
Grouping:
Pulls the particles towards the centre angle. Doesn't work as well as I hoped.
BLENDING TAB
SRC *:
Source blend option.
DST *:
Destination blend option.
RGB1 & RGB2:
For sawtooth, square and inverse sawtooth waves, these set the initial and final vertex rgb values. For sine and triangle waves, these set the base and amplitude of the wave function respectively.
Wave:
Waveform option.
Phase:
Phase for the rgbgen waveform.
Alphagen controls are the same.
TcMod TAB
Scale1 & 2:
For sawtooth, square and inverse sawtooth waves, these set the initial and final tcMod stretch values. For sine and triangle waves, these set the base and amplitude of the wave function respectively.
Wave:
Waveform option. Sawtooth or disabled are probably the only options you will need.
Phase:
Phase for the TcMod stretch waveform.
Rotate Speed:
The speed at which the texture rotates. degrees/second
Var:
The variance in rotation speed.
SYSTEMS TAB
Active:
The active buttons activate, select and disable particle systems. To enable a system click on a grey button; this system will now become your active edit. To disable a system, select the system then click the active button again.
Name
The name of the particle systems.
Sort
The q3 render sort order of the system. The default setting of 0 doesn't set a sort order in the shader.
XYZ
The X/Y/Z sliders move the particle emitter around the scene. The sliders go between ± 512, but you can specify a larger value by right clicking the slider.
Experimental Firework Mode
This mode allows the creation of realistic explosions. To create an explosion effect, set both Z Waveform and X/Y Waveform to Sawtooth. Set the height to 0, but the height variance to the same as the radius (256 to match default radius). Set the phase grouping to a very low number, so the particles all emit at the same time. You will notice that if firework mode is off, the particles explode in a cylindrical shape, rather than a sphere.
NulL
------------------------------------------------------------------------------------------------------------
Hello yet again!
I've been rather slack with keeping you updated, and the program updated for that matter. Since last time I've added some of the suggestions that have been made. The export button brings up a save dialog so you can name the shader file anything you want. The save buttons now ask before overwriting an existing file. I've implemented a multi-system load and save, you can minimize the window or pause the program by hitting F5, if you want your cpu back The timer also resets when you click on it, which is useful if you want to do multi-system explosions and similar. There is an 800x600 and 1024x768 version, a real programmer would have just let you scale the window, but no ones ever been foolish enough to confuse me with a real programmer
Have fun
------------------------------------------------------------------------------------------------------------
Hi
I've added everything I think is needed, so I'm going it call this final. Ive added the ability to save/load settings. Also every slider's value can be manually typed in by right clicking on it to open an edit dialog. I didn't get round to picking a new name, with apologies.
Download 1.0
Mirror
------------------------------------------------------------------------------------------------------------
Hi
Beta 2 is ready, I've added a few of the things people have outlined below; not all yet though.
Download beta 0.2
ADDED:
- Browse buttons for base path & texture path.
- Background Colour Picker
- Ability to show relative player size (red info_player_start box)
- TcMod Tab
- -- TcMod Stretch Controls
- -- TcMod Rotate Controls
UPDATED:
- Export Code no longer dependent on pak0.pk3, so it should work correctly for mods.
- Height and radius variance code changed.
- Drop-down lists no longer fall off the screen.
STILL TODO:
- Loading and Saving settings.
- Allow users to type in slider values.
- I'm going to reduce the floating point slider precision.
- I'll consider an alternative name.
------------------------------------------------------------------------------------------------------------
Hi
This is beta 1 of my quake3 engine particle studio. I still have some functionality to add, such as a tcMod tab for stretching and rotating textures.
Download beta 0.1
Things still todo:
- Add Functionality to control tcMod stretch.
- Add Functionality to control tcMod rotate.
- I'm going to rewrite the variance code for height and radius.
- I may add the option of allowing a background image to be loaded.