|
 |
|
|
|
|
|
Attention:
This is for the discussion and releasing of tutorials for modifying GTA. Anything that isn't a tutorial will be deleted without notification.
- Please read the Official Modification Forum Rules & Procedure BEFORE posting!
- Data topics: The following topics contain information for formatting and writing tutorials.
- Requests are to be made in the pinned topic.
- New topics to this forum are subject to moderation, and will not appear immediately. Pending approval by a moderator, if a topic is deemed unsuitable it will be deleted without notification.
|
GTAGarage.com free mod hosting from GTANet, simply login with your GTAForums account details
GTAModding.com GTANet's modding wiki
GTA Modding Chatroom provided by irc.gtanet.com (Don't have an IRC client? Click here)
|
[SA][2DFX] Creating your own particle effects Not replacing!
 |
|
 |
| |
Jost_Vice  |
Posted: Wednesday, Dec 26 2007, 09:57
|
realtime, not prerendered

Group: Members
Joined: Oct 30, 2005



|
Hello there... as I said, here is the tut for creating new particle effects, I will explain also the structure of them (or well, the parameters) You need to know how to export 2dfx with DexX script, I wont explain it here... So first, open your effects.fxp file that is in models folder. that file can be opened with notepad and such, lets copy one of the existing files, I used PRT_sand. Copy from the start to the end, It usually starts on: | CODE | FILENAME: X:\SA\FxTools\Data\effects\gta_pc\particles/prt_sand.fxs NAME: prt_sand |
and end with: | CODE | LODSTART: 30.000 LODEND: 50.000 OMITTEXTURES: 0 TXDNAME: NOTXDSET
FX_SYSTEM_DATA: 109 |
Paste it where you want, just be sure it doesnt 'cut' any other particle system, then rename it to your one: | CODE | FILENAME: X:\SA\FxTools\Data\effects\gta_pc\particles/prt_JV.fxs NAME: prt_JV | Notice: The filename is ignored, its a path on R*s network disk but can help for identifying the particle system. Now you have your particle system created, nice. lets spawn it then edit. Go to your 3d max script folder, and find the SAparticle.ini: open it with notepad or any of those and search for: Thats the number of particle systems in the game, so just change it to 83 Search again for [particlesystems], you will see a list of particle effects, go to the end and add your one: Done. save the ini and launch 3d Studio Max, now you will see your effect in the particle rollout  you should go test it so you're sure it worked. I will explain now the structure of the particle system.... | CODE | FILENAME: X:\SA\FxTools\Data\effects\gta_pc\particles/prt_JV.fxs NAME: prt_JV LENGTH: 5.000 LOOPINTERVALMIN: 0.000 LENGTH: 5.000 PLAYMODE: 2 CULLDIST: 50.000 BOUNDINGSPHERE: 0.0 0.0 0.0 0.0 NUM_PRIMS: 1 FX_PRIM_EMITTER_DATA: |
filename and name explained before. Those lenghts parameters and loop I dont know what are... I tried changing playmode without any effect and same with culldist. NUM_PRIMS looks like the number of particle effects in each system (you can have more than one, like over explosions you have the fire and the dark smoke) | CODE | FX_PRIM_BASE_DATA: NAME: ParticleEmitter MATRIX: 1.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 1.000 0.000 0.000 0.000 TEXTURE: fireball TEXTURE2: NULL TEXTURE3: NULL TEXTURE4: NULL ALPHAON: 1 SRCBLENDID: 4 DSTBLENDID: 5 |
I dont know what is the matrix for, not the position/rotation. DexX explained to me sometime ago something about the textures.. I dont remember  well, its just texture used, they are in effectsPC.txd in your models folder, dont know if it can load from other TXDs The alphaon parameter is easy: if 1, alpha loaded, if 0: no alpha http://i144.photobucket.com/albums/r161/Jo.../noalphalol.jpg (http://i144.photobucket.com/albums/r161/JostVice/noalphalol.jpg) the two 'blendid' parameters looks like D3d blend types: http://msdn2.microsoft.com/en-us/library/b...508(VS.85).aspx (http://msdn2.microsoft.com/en-us/library/bb172508(VS.85).aspx) | CODE | NUM_INFOS: 6 FX_INFO_EMLIFE_DATA: LIFE: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 9.000 BIAS: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 5.000 |
Thats the 'life' of the particle (time in ms for the particle to be killed (usually it fades)) For example this effect are 9000 ms, I dont know what is the bias for. | CODE | FX_INFO_EMROTATION_DATA: ANGLEMIN: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 0.000 ANGLEMAX: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 360.000 |
Thats the rotation of the texture (in degress) | CODE | FX_INFO_FORCE_DATA: TIMEMODEPRT: 1 FORCEX: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 0.050 FORCEY: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 0.000 FORCEZ: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 0.150 |
The force is the direction of the particle. You can check here that a X force of 0.050 and a Z force of 0.150 make this: http://i144.photobucket.com/albums/r161/JostVice/wowa.jpg (http://i144.photobucket.com/albums/r161/JostVice/wowa.jpg) You can also change the 'force' via time. Just increase the num_keys | CODE | FX_INFO_ROTSPEED_DATA: TIMEMODEPRT: 1 MINCW: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 50.000 MAXCW: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 100.000 MINCCW: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 50.000 MAXCCW: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 100.000 |
Thats the rotation speed, I didnt test with it yet. | CODE | FX_INFO_COLOUR_DATA: TIMEMODEPRT: 1 RED: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 4 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 255.000 FX_KEYFLOAT_DATA: TIME: 0.100 VAL: 255.000 FX_KEYFLOAT_DATA: TIME: 0.600 VAL: 255.000 FX_KEYFLOAT_DATA: TIME: 0.900 VAL: 0.000 GREEN: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 4 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 255.000 FX_KEYFLOAT_DATA: TIME: 0.100 VAL: 215.000 FX_KEYFLOAT_DATA: TIME: 0.600 VAL: 210.000 FX_KEYFLOAT_DATA: TIME: 0.900 VAL: 0.000 BLUE: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 4 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 255.000 FX_KEYFLOAT_DATA: TIME: 0.100 VAL: 84.000 FX_KEYFLOAT_DATA: TIME: 0.600 VAL: 0.000 FX_KEYFLOAT_DATA: TIME: 0.900 VAL: 0.000 ALPHA: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 4 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 0.000 FX_KEYFLOAT_DATA: TIME: 0.100 VAL: 255.000 FX_KEYFLOAT_DATA: TIME: 0.600 VAL: 0.000 FX_KEYFLOAT_DATA: TIME: 0.900 VAL: 0.000 |
Thats the code (in RGB) and alpha. Check that they are on 'frames' as in time 0.000 there is an value and in 0.600 another one. | CODE | FX_INFO_SIZE_DATA: TIMEMODEPRT: 1 SIZEX: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 2 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 0.500 FX_KEYFLOAT_DATA: TIME: 1.000 VAL: 3.000 SIZEY: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 2 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 0.500 FX_KEYFLOAT_DATA: TIME: 1.000 VAL: 3.000 SIZEXBIAS: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 2 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 0.500 FX_KEYFLOAT_DATA: TIME: 1.000 VAL: 1.500 SIZEYBIAS: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 2 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 1.000 FX_KEYFLOAT_DATA: TIME: 1.000 VAL: 1.500 |
The size of particle effect, you can also change the value via the time like in color and force so you have that at the start its pretty small and then get bigger. Well, i'm done. I hope I didnt miss something and that all was clear, anyway if need help or you foind that i'm wrong on something i will like to know This post has been edited by Jost_Vice on Monday, Sep 29 2008, 21:58
|
|
|
|
|
 |
|
 |
 |
|
 |
| |
oCain  |
|
Crackhead

Group: Members
Joined: Oct 2, 2005


|
Hi...first of all...Nice Tut! I've got some additional info's... Is the number of how many ParticleEmitter(FX_PRIM_BASE_DATA:) used by the FX, for example take a look at 'explosion_large'...there are 3 in use. I don't really know how importent it is, but it's the number of how many Fx_Data sections used by an Emitter. | CODE | FX_INFO_EMLIFE_DATA: LIFE: ... VAL: 15.000 BIAS: ... VAL: 15.000 |
The 'BIAS' value is a kind of +/- value, if you set it to 0.000 the particle will 'die' exactly at the 'LIFE' value. Btw...all sections that begins with 'FX_INFO_EM...' are Emitter info sections. | CODE | FX_INFO_EMSIZE_DATA: RADIUS: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 0.000 SIZEMINX: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: -20.000 SIZEMAXX: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 20.000 SIZEMINY: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: -20.000 SIZEMAXY: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 20.000 SIZEMINZ: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 0.000 SIZEMAXZ: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 0.000 |
This one is for the Emitter size, in this example it's a 40x40 plane...but you can also use the 'RADIUS' value. Both together doesn't work. | CODE | FX_INFO_EMRATE_DATA: RATE: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 1500.000 |
How many particles the emitter will spit out. Don't know the limit...and never count them.  Some misc stuff... | CODE | FX_INFO_NOISE_DATA: TIMEMODEPRT: 1 NOISE: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 2.000 |
This makes the particle flow...ehm...noisy. | CODE | FX_INFO_FRICTION_DATA: TIMEMODEPRT: 1 FRICTION: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 0.970 |
| CODE | FX_INFO_WIND_DATA: TIMEMODEPRT: 1 WINDFACTOR: FX_INTERP_DATA: LOOPED: 0 NUM_KEYS: 1 FX_KEYFLOAT_DATA: TIME: 0.000 VAL: 0.500
|
Nice to play with. A lil snow example...bad youtube quality| CODE | FX_INFO_UNDERWATER_DATA: TIMEMODEPRT: 1 |
Underwater only...for example 'prt_bubble' That's all...for now...I think. I hope it was ok to post it in here and sorry for my silly english. Greetz! This post has been edited by oCain on Friday, Jan 4 2008, 21:22
|
|
|
|
|
 |
|
 |
 |
|
 |
| |
Gtapoptart  |
Posted: Saturday, Jan 5 2008, 04:28
|
You Cannot Kill What You Did Not Create.

Group: Members
Joined: Oct 6, 2007


|
|
|
|
|
|
 |
|
 |
 |
|
 |
| |
oCain  |
Posted: Thursday, Jan 10 2008, 13:35
|
Crackhead

Group: Members
Joined: Oct 2, 2005


|
Hi, I think you just need to change the emitter-names...'NAME: ParticleEmitter' to 'NAME: kule1' and 'NAME: kule2' for example, they just need to be different. (Only if you use more than one emitter) I've test it with another texture and it works. Oh and I don't know if you just forget to copy/paste it... need to be at the beginning of every FX. I hope I could help. Greetz!
|
|
|
|
|
 |
|
 |
 |
|
 |
| |
Jost_Vice  |
Posted: Saturday, Jan 12 2008, 00:06
|
realtime, not prerendered

Group: Members
Joined: Oct 30, 2005



|
Name should be Particle Emitter. about the FX_system_data i'm not sure, i think its at the start. To make this effect, wich 'base' particle system you used? and also, how added the same name to the DexX's script INI? oCain: nice! i will try to update the tut with your info, thanks This post has been edited by Jost_Vice on Saturday, Jan 12 2008, 00:08
|
|
|
|
|
 |
|
 |
 |
|
 |
| |
KnightProwl  |
|
Trick

Group: BUSTED!
Joined: Apr 19, 2007

|
i have a question, how would i go about making something like the moon in SA, but not replacing the moon in SA. like 2 moons with 2 diffrent textures, for example, say i want a bat signal, since im a huge batman fan, and a moon too, how would i mkae it to where the moon is there, then the batsignal is just next to it and a bit higher?, any help would really be apprecated, thanks and peace out  knightprowl
|
|
|
|
|
 |
|
 |
 |
|
 |
| |
Gtapoptart  |
|
You Cannot Kill What You Did Not Create.

Group: Members
Joined: Oct 6, 2007


|
| QUOTE (KnightProwl @ Jan 13 2008, 15:46) | i have a question, how would i go about making something like the moon in SA, but not replacing the moon in SA. like 2 moons with 2 diffrent textures, for example, say i want a bat signal, since im a huge batman fan, and a moon too, how would i mkae it to where the moon is there, then the batsignal is just next to it and a bit higher?, any help would really be apprecated, thanks and peace out 
knightprowl | this is an idea, i don't know if it will work, but you can simply copy the moon particle, and modify one of them to be the bat signal....
|
|
|
|
|
 |
|
 |
 |
|
 |
| |
Function-X-  |
|
Negativity Replenish

Group: Members
Joined: Jan 7, 2008


|
Hey guys i need a little help  sorry for massive bump btw... Coding aint my thing and i don't have 3Dmax, so help me on this one So let's say i want : cardebris_01,cardebris_02,cardebris_03,cardebris_04,cardebris_05 to come out from car explosions. and same for Sparks_02 but i want like 3 or 4 sparks to go a bit up high,to sky direction. What should i do  ?
|
|
|
|
|
 |
|
 |
 |
|
 |
| |
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:
Pages:
(2) [1] 2
Track this topic
Receive email notification when a reply has been made to this topic and you are not active on the board.
Subscribe to this forum
Receive email notification when a new topic is posted in this forum and you are not active on the board.
Download / Print this Topic
Download this topic in different formats or view a printer friendly version.
| |
 |
|
 |
|
|
|
|