2DFX: Difference between revisions

5,727 bytes added ,  4 July 2018
contributions from myself, DK22Pac, Solom, and Wesser
No edit summary
(contributions from myself, DK22Pac, Solom, and Wesser)
Line 1: Line 1:
{{This|This article describes the usage of the 2dfx section inside a plain text [[IDE]]. For the [[List of RW section IDs|RW Section]] of models see [[2dfx (RW Section)]]}}
{{Research}}
{{IdeSection
{{IdeSection
| game        = [[Grand Theft Auto III|GTA III]], [[Grand Theft Auto: Vice City|GTA VC]]
| game        = {{Icon-square|3}} {{Icon-square|vc}} {{Icon-square|4}}
| description = Used to place 2D effects and ped behaviors on objects
| description = Used to place 2D effects and ped behaviors on objects
}}
}}
'''2DFX''' is a section in the [[IDE|item definition]] file. It is used to place 2D effects (like lights and particles) and ped behaviors on objects. This section is somewhat unique compared to other sections because it needs to be attached to an existing object rather than defining itself. If too much effects are loaded or drawn in the game, some of the effects will load in and out or won't appear at all.
'''2DFX''' is a section in the item definition file in [[Grand Theft Auto III]], [[Grand Theft Auto: Vice City]], and [[Grand Theft Auto IV]]. It is used to place 2D effects (like lights and particles) and ped behaviors on objects. This section is somewhat unique compared to other sections because it needs to be attached to an existing object rather than defining itself. If too many effects are loaded or drawn in the game, some of the effects will load in and out or won't appear at all.


==GTA III - Vice City==
== GTA III and GTA Vice City ==
===Type 0: Lights===
{{Pre|
2dfx
# [[#Type 0: Lights|type 0: lights]] (III/VC)
Id, X, Y, Z, R, G, B, unknown, 2DFXType, "Corona", "Shadow", Distance, OuterRange, Size, InnerRange, ShadowIntensity, Flash, Wet, Flare, Flags
# [[#Type 1: Particles|type 1: particles]] (III/VC)
Id, X, Y, Z, R, G, B, unknown, 2DFXType, Particle, StrengthX, StrengthY, StrengthZ, Scale
# [[#Type 2|type 2]] (III/VC)
Id, X, Y, Z, R, G, B, unknown, 2DFXType, unknown, unk1, unk2, unk3, unknown
# [[#Type 3: Peds|type 3: peds]] (VC)
Id, X, Y, Z, R, G, B, unknown, 2DFXType, Behavior, unk1, unk2, unk3, RotX, RotY, RotZ
# [[#Type 4: Sun Reflections|type 4: sun reflections]] (VC)
Id, X, Y, Z, R, G, B, unknown, 2DFXType
end
}}
 
=== Type 0: Lights ===
This can create a complex light source on an object. If the object has a sub object, the light will disappear when the main object changes into the sub object (like when lampposts are knocked).
This can create a complex light source on an object. If the object has a sub object, the light will disappear when the main object changes into the sub object (like when lampposts are knocked).
ID, X, Y, Z, R, G, B, unknown (0 or 200), 0, Corona, Shadow, Distance, Outer range, Size, Inner range, IDE flag, Flash, Wet, Flare, Dust


{|class="prettytable" width="100%"
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
!width="250px"|Identifier
!style="width: 3em;" |{{Icon-square|3}} {{Icon-square|vc}}
!style="width: 12em;" |Identifier
!style="width: 6em;" |Type
!Description
!Description
|-
|-
|<center>ID</center>||associated to existing object ID defined in [[OBJS]] or [[TOBJ]] section
|A ||Id ||integer ||associated to existing object ID defined in [[OBJS]] or [[TOBJ]] section
|-
|B,C,D ||X, Y, Z ||float[3] ||X, Y, and Z coordinates relative to the center of the object
|-
|E,F,G ||R, G, B ||integer[3] ||color of the light and everything associated with it in RGB format, also affects the intensity of the light so that darker the color the dimmer the light (meaning black (0,0,0) will yield a light so dim that it's not visible)
|-
|-
|<center>X, Y, Z</center>||X, Y, and Z coordinates relative to the center of the object
|H ||''unknown'' ||integer ||usually 0 or 200
|-
|-
|<center>R, G, B</center>||color of the light and everything associated with it in RGB format, also affects the intensity of the light so that darker the color the dimmer the light (meaning black (0,0,0) will yield a light so dim that it's not visible)
|I ||2DFXType ||integer ||always 0 for lights
|-
|-
|<center>Corona</center>||corona texture associated to the light, texture defined in <code>particle.txd</code>, usually "coronastar" for lights
|J ||Corona ||string ||corona texture associated to the light, texture defined in <code>particle.txd</code>, usually "coronastar" for lights
|-
|-
|<center>Shadow</center>||light texture that is cast on the ground, texture defined in <code>particle.txd</code>, usually "shad_exp" for lights
|K ||Shadow ||string ||light texture that is cast on the ground, texture defined in <code>particle.txd</code>, usually "shad_exp" for lights
|-
|-
|<center>Distance</center>||view distance of the light, is limited by the draw distance of the host object
|L ||Distance ||float ||view distance of the light, is limited by the draw distance of the host object
|-
|-
|<center>Outer range</center>||the range the light can cast on objects, cars, and peds
|M ||OuterRange ||float ||the range the light can cast on objects, cars, and peds
|-
|-
|<center>Size</center>||the size of the corona, can be a float or integer, size 0 means no visible corona but effect of light still visible
|N ||Size ||float ||the size of the corona, can be a float or integer, size 0 means no visible corona but effect of light still visible
|-
|-
|<center>Inner range</center>||the range the light can cast on the ground
|O ||InnerRange ||float ||the range the light can cast on the ground (shadow)
|-
|-
|<center>IDE flag</center>||[[OBJS#Object_Flags|IDE flag]], only the time-dependent flags are useable
|P ||ShadowIntensity ||integer ||shadow intensity (0 - 255), usually 40
|-
|-
|<center>Flash</center>||sets the type of flashing ([[2DFX#Types of Flashes|see below]])
|Q ||Flash ||integer ||sets the type of flashing ([[2DFX#Types of Flashes|see below]])
|-
|-
|<center>Wet</center>||sets the particle to be "reflective" on wet grounds, will only work if the ground around the light is set to wet when raining<br>0 - not reflective when wet, 1 - reflective when wet
|R ||Wet ||integer ||sets the particle to be "reflective" on wet grounds, will only work if the ground around the light is set to wet when raining<br>0 - not reflective when wet, 1 - reflective when wet
|-
|-
|<center>Flare</center>||sets the particle to create a lens flare on the screen, similar to what the sun does<br>0 - no lens flare, 1 - lens flare effect
|S ||Flare ||integer ||sets the particle to create a lens flare on the screen, similar to what the sun does<br>0 - no lens flare, 1 - yellow lens flare, 2 - white lens flare
|-
|-
|<center>Dust</center>||sets the intensity of light reflecting off dust, values 4 to 7 have visible effects
|T ||Flags ||integer ||bit 0 - disable z-test for corona, bits 1-2 - fog (dust) type
|}
|}


====Types of Flashes====
====Types of Flashes====
{| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #aaa solid; border-collapse: collapse;"
{|class="wikitable center-col-1"
| 0
|0 ||constantly lit all time
| constantly lit all time
|-
|-
| 1
|1 ||constantly lit at night
| constantly lit at night
|-
|-
| 2
|2 ||occasional flicker all time
| occasional flicker all time
|-
|-
| 3
|3 ||occasional flicker at night
| occasional flicker at night
|-
|-
| 4
|4 ||1.02 seconds flashes
| ~1 second flashes
|-
|-
| 5
|5 ||1.02 seconds flashes at night
| ~1 second flashes at night
|-
|-
| 6
|6 ||2.04 seconds flashes
| ~2 seconds flashes
|-
|-
| 7
|7 ||2.04 seconds flashes at night
| ~2 seconds flashes at night
|-
|-
| 8
|8 ||4.08 seconds flashes
| ~3 seconds flashes
|-
|-
| 9
|9 ||4.08 seconds flashes at night
| ~3 seconds flashes at night
|-
|-
| 10
|10 ||random flicker
| random flicker
|-
|-
| 11
|11 ||random flicker at night
| random flicker at night
|-
|-
| 12
|12 ||hardcoded traffic lights properties
| hardcoded traffic lights properties
|-
|13 ||{{Icon-square|3}} 1.02 seconds flashes only during lift bridge's alarm
|-
|14 ||{{Icon-square|3}} unused, flashes only during lift bridge's alarm
|}
|}
Type 12 is involved in hardcoded properties of traffic lights. It is mainly used to position the lights on the traffic light. A traffic light without a 2DFX entry will crash the game when the traffic light is loading.
All night flashes occur between 19:00 and 7:00. Type 12 is involved in hardcoded properties of traffic lights. It is mainly used to position the lights on the traffic light. A traffic light without a 2DFX entry will crash the game when the traffic light is loading.


===Type 1: Particles===
===Type 1: Particles===
This can create simple particles on an object
This can create simple particles on an object
ID, X, Y, Z, R, G, B, unknown (63 or 200), 1, Particle, unk1, unk2, unk3, Size


{|class="prettytable" width="100%"
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
!width="250px"|Identifier
!style="width: 3em;" |{{Icon-square|3}} {{Icon-square|vc}}
!style="width: 12em;" |Identifier
!style="width: 6em;" |Type
!Description
!Description
|-
|-
|<center>ID</center>||associated to existing object ID defined in [[OBJS]] or [[TOBJ]] section
|A ||Id ||integer ||associated to existing object ID defined in [[OBJS]] or [[TOBJ]] section
|-
|-
|<center>X, Y, Z</center>||X, Y, and Z coordinates relative to the center of the object
|B,C,D ||X, Y, Z ||float[3] ||X, Y, and Z coordinates relative to the center of the object
|-
|-
|<center>R, G, B</center>||useless values
|E,F,G ||R, G, B ||integer[3] ||useless values
|-
|-
|<center>Particle</center>||particle type ([[2DFX#Types of Particles|see below]])
|H ||''unknown'' ||integer ||usually 63 or 200
|-
|-
|<center>unk1, unk2, unk3</center>||unknown, rotation of particle?
|I ||2DFXType ||integer ||always 1 for particles
|-
|-
|<center>Size</center>||the size of the particle
|J ||Particle ||integer ||particle type ([[#Types of Particles|see below]])
|-
|K,L,M ||StrengthX, StrengthY, StrengthZ ||float[3] ||X, Y, and Z strength representing the direction and length of movement of the particle
|-
|N ||Scale ||float ||scale of the particle
|}
|}


====Types of Particles====
====Types of Particles====
[http://spaceeinstein.wikispaces.com/file/view/2dfx_particles.png/106044279/2dfx_particles.png Image link] - Ordered from 6 to 0 from left to right, all size is 1 with Tommy at the bottom for comparison
{|class="wikitable center-col-1"
{| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #aaa solid; border-collapse: collapse;"
!{{Icon-square|3}} ||{{Icon-square|vc}} ||Name ||Description
| 0
| small white smoke
|-
|-
| 1
|colspan="2" |0 ||POBJECT_<wbr>PAVEMENT_<wbr>STEAM ||small white smoke
| medium white smoke
|-
|-
| 2
|colspan="2" |1 ||POBJECT_<wbr>WALL_<wbr>STEAM ||small white smoke
| large white smoke
|-
|-
| 3
|colspan="2" |2 ||POBJECT_<wbr>DRY_<wbr>ICE ||larger white smoke
| fire (it doesn't burn)
|-
|-
| 4
|colspan="2" |3 ||POBJECT_<wbr>SMALL_<wbr>FIRE ||fire (start new game to see)
| black smoke
|-
|-
| 5
|colspan="2" |4 ||POBJECT_<wbr>DARK_<wbr>SMOKE ||black smoke
| water fountain (Vice City only, will spray water droplets on the screen)
|-
|-
| 6
| - || style="text-align: center;" |5 ||POBJECT_<wbr>WATER_<wbr>FOUNTAIN_<wbr>VERT ||water fountain (will spray water droplets on the screen)
| water spray (Vice City only, will spray water droplets on the screen)
|-
| - || style="text-align: center;" |6 ||POBJECT_<wbr>WATER_<wbr>FOUNTAIN_<wbr>HORIZ ||water spray (will spray water droplets on the screen)
|}
|}


===Type 2===
===Type 2===
It is unknown what this type does. This type is only used in GTA III.
This causes peds to investigate interesting spots.<ref>[https://www.youtube.com/watch?v=zcQvqQlIYTM Video demonstration of type 2], by Nick007J</ref> This type was never used in GTA Vice City but it can be used.
ID, X, Y, Z, R, G, B, unknown (63 or 200), 2, unk1, unk2, unk3, unk4, unk5
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
!style="width: 3em;" |{{Icon-square|3}} {{Icon-square|vc}}
!style="width: 12em;" |Identifier
!style="width: 6em;" |Type
!Description
|-
|A ||Id ||integer ||
|-
|B,C,D ||X, Y, Z ||float[3] ||
|-
|E,F,G ||R, G, B ||integer[3] ||
|-
|H ||''unknown'' ||integer ||usually 63 or 200
|-
|I ||2DFXType ||integer ||always 2
|-
|J ||''unknown'' ||integer ||
|-
|K,L,M ||''unk1'', ''unk2'', ''unk3'' ||float[3] ||
|-
|N ||''unknown'' ||integer ||
|}


===Type 3: Peds===
===Type 3: Peds===
This can make a ped have simple behaviors around the object. This type is only available in Vice City.
This can make a ped have simple behaviors around the object.
ID, X, Y, Z, R, G, B, unknown (200), 3, Behavior, unk1, unk2, unk3, RotX, RotY, RotZ


{|class="prettytable" width="100%"
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
!width="250px"|Identifier
!style="width: 3em;" |{{Icon-square|vc}}
!style="width: 12em;" |Identifier
!style="width: 6em;" |Type
!Description
!Description
|-
|-
|<center>ID</center>||associated to existing object ID defined in [[OBJS]] or [[TOBJ]] section
|A ||Id ||integer ||associated to existing object ID defined in [[OBJS]] or [[TOBJ]] section
|-
|B,C,D ||X, Y, Z ||float[3] ||X, Y, and Z coordinates relative to the center of the object
|-
|E,F,G ||R, G, B ||integer[3] ||useless values
|-
|-
|<center>X, Y, Z</center>||X, Y, and Z coordinates relative to the center of the object
|H ||''unknown'' ||integer ||usually 0 or 200
|-
|-
|<center>R, G, B</center>||useless values
|I ||2DFXType ||integer ||always 3 for peds
|-
|-
|<center>Behavior</center>||behavior type ([[2DFX#Types of Behaviors|see below]])
|J ||Behavior ||integer ||behavior type ([[#Types of Behaviors|see below]])
|-
|-
|<center>unk1, unk2, unk3</center>||unknown, useless values?
|K,L,M ||''unk1'', ''unk2'', ''unk3'' ||float[3] ||unknown, useless values?
|-
|-
|<center>RotX, RotY, RotZ</center>||rotation of ped when animation is playing
|N,O,P ||RotX, RotY, RotZ ||float[3] ||rotation of ped when animation is playing
|}
|}


====Types of Behaviors====
====Types of Behaviors====
{| border="2" cellpadding="4" cellspacing="0" style="margin: 1em 1em 1em 0; border: 1px #aaa solid; border-collapse: collapse;"
{|class="wikitable"
| 0
|0 ||walks to the coordinates to use an ATM then walks away
| walks to the coordinates to use an ATM then walks away
|-
|-
| 1
|1 ||walks to the coordinates to sit down for a while then stand back up and walks away
| walks to the coordinates to sit down for a while then stand back up and walks away
|-
|-
| 2
|2 ||walks to the coordinates to wait for a bus; additional peds will line up behind each other
| walks to the coordinates to wait for a bus; additional peds will line up behind each other
|-
|-
| 3
|3 ||walks to the coordinates, stands for a very short while, then leave (like window shopping)
| walks to the coordinates, stands for a very short while, then leave (like window shopping)
|-
|-
| 4
|4 ||runs to shelter from rain<ref>[https://www.youtube.com/watch?v=DjEPUpccqx0 Video demonstration of type 3, behavior 4], by Nick007J</ref>
| unknown, used in game
|}
|}


===Type 4: Sun Reflections===
===Type 4: Sun Reflections===
This can create a sun "reflection" exactly and behaving like the ones seen on cars. This type is only available in Vice City.
This can create a sun "reflection" exactly and behaving like the ones seen on cars.
ID, X, Y, Z, R, G, B, unknown (120), 4
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
!style="width: 3em;" |{{Icon-square|vc}}
!style="width: 12em;" |Identifier
!style="width: 6em;" |Type
!Description
|-
|A ||Id ||integer ||associated to existing object ID defined in [[OBJS]] or [[TOBJ]] section
|-
|B,C,D ||X, Y, Z ||float[3] ||X, Y, and Z coordinates relative to the center of the object
|-
|E,F,G ||R, G, B ||integer[3] ||useless values
|-
|H ||''unknown'' ||integer ||usually 120
|-
|I ||2DFXType ||integer ||always 4 for sun reflections
|}
 
== GTA IV ==
GTA IV 2DFX Category doesn't have all Types description. More description about 2dfx types will be added later.
 
=== Type 0: Lights ===
 
Type ''Lights'' ignore by the game. GTA IV using light in .wdr/wft models
 
=== Type 1: Particles ===
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
!style="width: 3em;" |{{Icon-square|4}}
!style="width: 12em;" |Identifier
!style="width: 6em;" |Type
!Description
|-
|A ||Id ||string ||associated to existing object ID defined in OBJS or TOBJ section
|-
|B,C,D ||X, Y, Z ||float[3] ||X, Y, and Z coordinates relative to the center of the object
|-
|E ||Type ||integer ||always 1
|-
|F,G,H,I ||RX, RY, RZ, RW ||float[4] ||Rotation in quaternion
|-
|J ||Name ||string ||particle name, defined in <code>common\data\effects\</code>
|-
|K || ||integer ||stages of destruction? (between 0 and 4)
|-
|L || ||integer ||?
|-
|M ||Size ||float ||size of particle
|-
|N ||Draw distance ||integer ||draw distance
|-
|O || ||integer ||? (between 0 and 5)
|-
|P,Q,R ||Color ||integer[3] ||RGB color when applicable
|}
 
=== Type 2: Explosion ===
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
!style="width: 3em;" |{{Icon-square|4}}
!style="width: 12em;" |Identifier
!style="width: 6em;" |Type
!Description
|-
|A ||Id ||string ||associated to existing object ID defined in OBJS or TOBJ section
|-
|B,C,D ||X, Y, Z ||float[3] ||X, Y, and Z coordinates relative to the center of the object
|-
|E ||Type ||integer ||always 2
|-
|F,G,H,I ||RX, RY, RZ, RW ||float[4] ||rotation in quaternion
|-
|J || ||integer ||
|-
|K || ||integer  ||
|-
|L || ||integer ||
|-
|M || ||integer ||
|}
 
=== Type 10: Escalator ===
 
GTA SA Using Escalator attribute in .dff models, GTA IV has the Escalator Attribute too, but all parameters are unknown and possible section maybe call the game crash.
 
=== Type 12: Proc Object ===
 
=== Type 13: WorldPoint ===
 
=== Type 14: Ladder ===
 
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
!width="40px"|{{Icon-square|4}}
!style="width: 12em;"|Identifier
!style="width: 6em;" |Type
!Description
|-
|A ||Name ||string ||Model name, who using Ladder Section
|-
|B,C,D ||X, Y, Z ||float[3] ||X, Y, and Z coordinates
|-
|E ||2DFX Type ||Integer ||This is 2DFX Type. Always use the value 14 for Ladder
|-
|F,G,H,I ||RX, RY, RZ, RW ||float[4] ||Rotation in quaternion
|-
|J,K,L ||StartX,StartY,StartZ ||float[3] ||Start Ladder Position (When player start to climb)
|-
|M,N,O ||EndX,EndY,EndZ ||float[3] ||End Ladder Position (When player finished to climb)
|-
|P,Q,R ||ClimbDirectionX, ClimbDirectionY, ClimbDirectionZ ||float[3] ||Climb Direction Position
|-
|S ||Flag ||Integer ||Unknown Flag, Always(?) using value 1
|}


{|class="prettytable" width="100%"
=== Type 15: Audio ===
!width="250px"|Identifier
 
=== Type 17: SpawnPoint ===
{|class="wikitable center-col-1 center-col-2" style="width: 100%;"
!style="width: 3em;"|{{Icon-square|4}}
!style="width: 12em;"|Identifier
!style="width: 6em;" |Type
!Description
!Description
|-
|-
|<center>ID</center>||associated to existing object ID defined in [[OBJS]] or [[TOBJ]] section
|A ||Id ||string ||associated to existing object ID defined in OBJS or TOBJ section
|-
|B,C,D ||X, Y, Z ||float[3] ||X, Y, and Z coordinates relative to the center of the object
|-
|E ||Type ||integer ||Always 17
|-
|-
|<center>X, Y, Z</center>||X, Y, and Z coordinates relative to the center of the object
|F,G,H,I ||RX, RY, RZ, RW ||float[4] ||Rotation in quaternion
|-
|-
|<center>R, G, B</center>||useless values
|J,K,L,M ||||integer[4] ||Flags
|}{{fdl}}
|}
 
=== Type 18: LightShaft ===
 
=== Type 19: ScrollBar ===
 
=== Type 21: SwayableAttr ===
 
=== Type 22: BouyancyAttr ===
 
=== Type 23: WalkDontWalkAttr ===
 
== Statistics ==
Total number of 2DFX entries in:
:GTA III: 927 (max 2000)
::Type 0: 859
::Type 1: 53
::Type 2: 15
 
:GTA Vice City: 1069 (max 1210)
::Type 0: 834
::Type 1: 63
::Type 2: 0
::Type 3: 162
::Type 4: 10
 
:GTA IV: 17043
::Type 0: 13831
::Type 1: 2385
::Type 2: 23
::Type 12: 60
::Type 14: 103
::Type 15: 246
::Type 17: 117
::Type 18: 204
::Type 19: 34
::Type 21: 11
::Type 22: 10
::Type 23: 19
 
== References ==
<references />
 
{{fdl}}
12,236

edits