Difference between revisions of "Sims 3:0xEA5118B0"
(Added changes in Resource reference block; these changes made the effects resource in patch 1.55 work for me) |
ChaosMageX (Talk | contribs) (→Format: Added Particle Effect field names based on findings made by Rick) |
||
| Line 85: | Line 85: | ||
======Format====== | ======Format====== | ||
| − | DWORD //Flags | + | DWORD //BE; Flags |
| − | FLOAT // | + | FLOAT[2] //le; Particle Lifetime |
| − | FLOAT // | + | FLOAT //BE; Preroll Time |
| − | FLOAT // | + | FLOAT[2] //le; Emit Delay |
| − | FLOAT // | + | FLOAT[2] //le; Emit Retrigger |
| − | FLOAT // | + | FLOAT[3] //le; Emit Direction Bounding Box Minimum |
| − | FLOAT // | + | FLOAT[3] //le; Emit Direction Bounding Box Maximum |
| − | FLOAT // | + | FLOAT[2] //le; Emit Speed |
| − | FLOAT // | + | FLOAT[3] //le; Emit Volume Bounding Box Minimum |
| − | FLOAT // | + | FLOAT[3] //le; Emit Volume Bounding Box Maximum |
| − | FLOAT // | + | FLOAT //BE; Emit Torus Width |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | // | + | // Emit Rate Curve (Particles/Sim-Minute) |
| − | DWORD Count | + | DWORD Count //BE |
| − | + | FLOAT //BE | |
| − | FLOAT | + | FLOAT //BE; Emit Rate Curve Time |
| − | WORD | + | WORD //BE; Emit Rate Curve Cycles |
| − | FLOAT | + | FLOAT //BE; Emit Rate Speed Scale |
| − | // | + | |
| − | DWORD Count | + | // Size Curve |
| − | + | DWORD Count //BE | |
| − | FLOAT | + | FLOAT //BE |
| − | // | + | FLOAT //BE; Size Vary |
| − | DWORD Count | + | |
| − | + | // Aspect Ratio Curve (1 is normal) | |
| − | //Randomization Multipliers: | + | DWORD Count //BE |
| + | FLOAT //BE | ||
| + | |||
| + | // Randomization Multipliers: | ||
// If > 0, randomly scaled between 0 and value for each particle | // If > 0, randomly scaled between 0 and value for each particle | ||
// and multiplied to each value of the specified delta list | // and multiplied to each value of the specified delta list | ||
| Line 128: | Line 119: | ||
// a lot more particles were very wide and spinning rapidly, | // a lot more particles were very wide and spinning rapidly, | ||
// and very few particles were narrow and spinning slowly. | // and very few particles were narrow and spinning slowly. | ||
| − | FLOAT // | + | // UPDATE: The basic formula is: (1 + random(-1,1) * vary) * value |
| − | FLOAT //Rotation | + | FLOAT // BE; Aspect Ratio Vary |
| + | FLOAT // BE; Rotation Vary | ||
| + | FLOAT // BE; Rotation Offset | ||
| − | + | // Rotation Curve (1 = one clockwise rotation = 360 degrees) | |
| − | //Rotation | + | DWORD Count //BE |
| − | DWORD Count | + | FLOAT //BE |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | //Color | + | // Alpha Curve (0 - 1 = transparent - opaque) |
| + | DWORD Count //BE | ||
| + | FLOAT //BE | ||
| + | FLOAT //BE; Alpha Vary; 0 - 1 = transparent - opaque | ||
| + | |||
| + | // Color Curve | ||
| + | DWORD Count //BE | ||
| + | FLOAT //le ; Red ; 0 - 1 | ||
| + | FLOAT //le ; Green ; 0 - 1 | ||
| + | FLOAT //le ; Blue ; 0 - 1 | ||
| + | |||
| + | //Color Vary that is added at a random intensity to each particle | ||
//Example: if set to (0,0,1) with white particles, | //Example: if set to (0,0,1) with white particles, | ||
// some particles will be bright yellow, some will be pale yellow, and most will be white | // some particles will be bright yellow, some will be pale yellow, and most will be white | ||
| − | FLOAT // | + | FLOAT //le ; Red ; 0 - 1 |
| − | FLOAT // | + | FLOAT //le ; Green ; 0 - 1 |
| − | FLOAT // | + | FLOAT //le ; Blue ; 0 - 1 |
//Resource reference block | //Resource reference block | ||
| − | QWORD // | + | QWORD //BE; IID<sub>64</sub> of a an image([[Sims_3:0x00B2D882|DDS]]), model([[Sims_3:0x736884F1|VPXY]]), or material(see [[#Materials|Material Section]] below) |
| − | BYTE | + | BYTE //BE; Format |
| − | BYTE | + | BYTE //BE; DrawMode |
| − | if(( | + | if ((DrawMode & 0x80) == 0x80) DWORD //BE; ??? |
| − | if(( | + | if ((DrawMode & 0x40) == 0x40) BYTE //BE; ??? |
| − | BYTE | + | |
| − | BYTE | + | // BE; Draw Flags |
| − | WORD | + | if (Version >= 6) WORD |
| − | FLOAT | + | else BYTE |
| − | QWORD //0xFFFFFFFFFFFFFFFF | + | |
| + | BYTE //BE; Buffer | ||
| + | WORD //BE; Layer | ||
| + | FLOAT //BE; Sort Offset | ||
| + | QWORD //BE; Second IID<sub>64</sub>; almost always 0xFFFFFFFFFFFFFFFF | ||
| + | |||
| + | BYTE //BE; Physics Type | ||
| + | BYTE //BE; Override Set | ||
| + | BYTE //BE; Tile Count U | ||
| + | BYTE //BE; Tile Count V | ||
| + | BYTE //BE; Align Mode | ||
| + | FLOAT //BE; Frame Speed | ||
| + | BYTE //BE; Frame Start | ||
| + | BYTE //BE; Frame Count | ||
| + | BYTE //BE; Frame Random | ||
| + | FLOAT[3] //le; Directional Forces Sum | ||
| + | FLOAT //BE; Wind Strength | ||
| + | FLOAT //BE; Gravity Strength | ||
| + | FLOAT //BE; Radial Force | ||
| + | FLOAT[3] //le; Radial Force Location | ||
| + | FLOAT //BE; Drag | ||
| + | FLOAT //BE; Velocity Stretch | ||
| + | FLOAT //BE; Screw Rate | ||
| + | |||
| + | // Wiggles | ||
| + | DWORD Count //BE | ||
| + | FLOAT //BE; Time Rate | ||
| + | FLOAT[3] //le; Rate Direction | ||
| + | FLOAT[3] //le; Wiggle Direction | ||
| + | |||
| + | BYTE //BE; Screen Bloom Alpha Rate; usually 0x00 | ||
| + | BYTE //BE; Screen Bloom Alpha Base; usually 0xFF | ||
| + | BYTE //BE; Screen Bloom Size Rate; usually 0x00 | ||
| + | BYTE //BE; Screen Bloom Size Base; usually 0xFF | ||
| + | |||
| + | // Loop Box Color Curve | ||
| + | DWORD Count //BE | ||
| + | FLOAT //le ; Red ; 0 - 1 | ||
| + | FLOAT //le ; Green ; 0 - 1 | ||
| + | FLOAT //le ; Blue ; 0 - 1 | ||
| + | |||
| + | // Loop Box Alpha Curve | ||
| + | DWORD Count //BE | ||
| + | FLOAT //BE; 0 - 1 = transparent - opaque | ||
| + | |||
| + | // Surfaces | ||
| + | DWORD Count //BE | ||
| + | DWORD //BE; Flags; 0x3FFF mask? | ||
| + | QWORD //BE; IID<sub>64</sub> of a surface map(see [[#Materials|Material Section]] below)? | ||
| + | FLOAT //BE; Bounce ; Should be DWORD? | ||
| + | FLOAT //BE; Slide ; Should be DWORD? | ||
| + | FLOAT //BE; Collision Radius ; Should be DWORD? | ||
| + | FLOAT //BE; Death Probability ; Should be DWORD? | ||
| + | DWORD //BE; Pin Offset | ||
| + | ZSTRING //??? | ||
| + | ZSTRING //??? | ||
| + | DWORD Count //BE | ||
| + | FLOAT[3] //le; Surface Point | ||
| + | |||
| + | FLOAT //BE; Map Bounce | ||
| + | FLOAT //BE; Map Repulse Height | ||
| + | FLOAT //BE; Map Repulse Strength | ||
| + | FLOAT //BE; Map Repulse Scout Distance | ||
| + | FLOAT //BE; Map Repulse Vertical | ||
| + | FLOAT //BE; Map Repulse Kill Height; usually -1000000000.0 | ||
| + | FLOAT //BE; Probability Death; usually 0.0 | ||
| + | FLOAT[2] //le; Altitude Range; usually (-10000.0, 10000.0) | ||
| + | QWORD //BE; Force Map IID<sub>64</sub>; usually 0xFFFFFFFFFFFFFFFF | ||
| + | QWORD //BE; Emit Rate Map IID<sub>64</sub>; usually 0xFFFFFFFFFFFFFFFF | ||
| + | QWORD //BE; Emit Color Map IID<sub>64</sub>; usually 0xFFFFFFFFFFFFFFFF | ||
| − | + | // Random Walk | |
| − | + | FLOAT[2] //le; Time | |
| − | + | FLOAT[2] //le; Strength | |
| − | + | FLOAT //BE; Turn Range | |
| − | + | FLOAT //BE; Turn Offset | |
| − | + | FLOAT //BE; Mix | |
| − | + | // Turn Offset Curve | |
| − | + | DWORD Count //BE | |
| − | + | FLOAT //BE | |
| − | + | BYTE //BE; Walk Loop Type | |
| − | FLOAT // | + | |
| − | FLOAT // | + | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | FLOAT // | + | |
| − | FLOAT // | + | |
| − | FLOAT // | + | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | DWORD Count | + | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | FLOAT // | + | FLOAT[3] //le; Attractor Origin |
| − | + | // Attractor Strength Curve | |
| − | + | DWORD Count //BE | |
| − | + | FLOAT //BE | |
| − | + | FLOAT //BE; Range | |
| − | + | FLOAT //BE; Kill Range | |
| − | + | ||
| − | + | // Path Points | |
| − | + | DWORD Count //BE | |
| − | + | FLOAT[3] //le; Position | |
| − | + | FLOAT[3] //le; Velocity | |
| − | + | FLOAT //BE; Time | |
| − | + | ||
| − | + | ||
| − | DWORD Count | + | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | if(Version >= 2) | + | if (Version >= 2) |
| − | + | FLOAT[3] //le; ??? | |
| − | + | DWORD Count //BE | |
| − | + | FLOAT[3] //le; ??? | |
| − | + | ||
| − | + | ||
| − | + | ||
| − | + | ||
| − | if(Version >=3)BYTE | + | if (Version >=3) BYTE //BE; ??? |
| − | if(Version >=4)FLOAT | + | if (Version >=4) FLOAT //BE; ??? |
| − | if(Version >=5)FLOAT | + | if (Version >=5) FLOAT //BE; ??? |
====Metaparticle Effect==== | ====Metaparticle Effect==== | ||
Revision as of 17:11, 12 August 2014
| Modding Reference by Category | |
|---|---|
|
Sims 3 :DBPF | File Types | RCOL(Scene) | Catalog Resource | String Table | Key Table | TS3 Programmer's Reference |
| Effect Resource Tree - SWB | ||
|---|---|---|
| TypeID: | 0xEA5118B0 | |
| Game Version: | The Sims 3 | |
Overview
Defines special effects.
Format
All data is in Big Endian order unless otherwise noted(most floats). This spec is very primitive and needs work.
WORD Version Effect Sections Resource Sections VisualEffect Section BYTE[4] //FFFFFFFF VisualEffect Handles
Effect Sections
Format
--Repeat until BlockType 0xFFFF // Block List WORD BlockType WORD Version DWORD Count --repeat(Count) --Insert block data(depending on type)
Blocks
| BlockType | |
|---|---|
| 0x0001 | Particle Effect |
| 0x0002 | Metaparticle Effect |
| 0x0003 | Decal Effect |
| 0x0004 | Effect Sequence |
| 0x0005 | Sound Effect |
| 0x0006 | Shake Effect |
| 0x0007 | Camera Effect |
| 0x0008 | Model Effect |
| 0x0009 | Screen Effect |
| 0x000A | Unused |
| 0x000B | Game Effect |
| 0x000C | Fast Particle Effect |
| 0x000D | Distribute Effect |
| 0x000E | Ribbon Effect |
| 0x000F | Sprite Effect |
Particle Effect
Format
DWORD //BE; Flags
FLOAT[2] //le; Particle Lifetime
FLOAT //BE; Preroll Time
FLOAT[2] //le; Emit Delay
FLOAT[2] //le; Emit Retrigger
FLOAT[3] //le; Emit Direction Bounding Box Minimum
FLOAT[3] //le; Emit Direction Bounding Box Maximum
FLOAT[2] //le; Emit Speed
FLOAT[3] //le; Emit Volume Bounding Box Minimum
FLOAT[3] //le; Emit Volume Bounding Box Maximum
FLOAT //BE; Emit Torus Width
// Emit Rate Curve (Particles/Sim-Minute)
DWORD Count //BE
FLOAT //BE
FLOAT //BE; Emit Rate Curve Time
WORD //BE; Emit Rate Curve Cycles
FLOAT //BE; Emit Rate Speed Scale
// Size Curve
DWORD Count //BE
FLOAT //BE
FLOAT //BE; Size Vary
// Aspect Ratio Curve (1 is normal)
DWORD Count //BE
FLOAT //BE
// Randomization Multipliers:
// If > 0, randomly scaled between 0 and value for each particle
// and multiplied to each value of the specified delta list
// Seems to favor higher values, since when I set each to 10,
// a lot more particles were very wide and spinning rapidly,
// and very few particles were narrow and spinning slowly.
// UPDATE: The basic formula is: (1 + random(-1,1) * vary) * value
FLOAT // BE; Aspect Ratio Vary
FLOAT // BE; Rotation Vary
FLOAT // BE; Rotation Offset
// Rotation Curve (1 = one clockwise rotation = 360 degrees)
DWORD Count //BE
FLOAT //BE
// Alpha Curve (0 - 1 = transparent - opaque)
DWORD Count //BE
FLOAT //BE
FLOAT //BE; Alpha Vary; 0 - 1 = transparent - opaque
// Color Curve
DWORD Count //BE
FLOAT //le ; Red ; 0 - 1
FLOAT //le ; Green ; 0 - 1
FLOAT //le ; Blue ; 0 - 1
//Color Vary that is added at a random intensity to each particle
//Example: if set to (0,0,1) with white particles,
// some particles will be bright yellow, some will be pale yellow, and most will be white
FLOAT //le ; Red ; 0 - 1
FLOAT //le ; Green ; 0 - 1
FLOAT //le ; Blue ; 0 - 1
//Resource reference block
QWORD //BE; IID64 of a an image(DDS), model(VPXY), or material(see Material Section below)
BYTE //BE; Format
BYTE //BE; DrawMode
if ((DrawMode & 0x80) == 0x80) DWORD //BE; ???
if ((DrawMode & 0x40) == 0x40) BYTE //BE; ???
// BE; Draw Flags
if (Version >= 6) WORD
else BYTE
BYTE //BE; Buffer
WORD //BE; Layer
FLOAT //BE; Sort Offset
QWORD //BE; Second IID64; almost always 0xFFFFFFFFFFFFFFFF
BYTE //BE; Physics Type
BYTE //BE; Override Set
BYTE //BE; Tile Count U
BYTE //BE; Tile Count V
BYTE //BE; Align Mode
FLOAT //BE; Frame Speed
BYTE //BE; Frame Start
BYTE //BE; Frame Count
BYTE //BE; Frame Random
FLOAT[3] //le; Directional Forces Sum
FLOAT //BE; Wind Strength
FLOAT //BE; Gravity Strength
FLOAT //BE; Radial Force
FLOAT[3] //le; Radial Force Location
FLOAT //BE; Drag
FLOAT //BE; Velocity Stretch
FLOAT //BE; Screw Rate
// Wiggles
DWORD Count //BE
FLOAT //BE; Time Rate
FLOAT[3] //le; Rate Direction
FLOAT[3] //le; Wiggle Direction
BYTE //BE; Screen Bloom Alpha Rate; usually 0x00
BYTE //BE; Screen Bloom Alpha Base; usually 0xFF
BYTE //BE; Screen Bloom Size Rate; usually 0x00
BYTE //BE; Screen Bloom Size Base; usually 0xFF
// Loop Box Color Curve
DWORD Count //BE
FLOAT //le ; Red ; 0 - 1
FLOAT //le ; Green ; 0 - 1
FLOAT //le ; Blue ; 0 - 1
// Loop Box Alpha Curve
DWORD Count //BE
FLOAT //BE; 0 - 1 = transparent - opaque
// Surfaces
DWORD Count //BE
DWORD //BE; Flags; 0x3FFF mask?
QWORD //BE; IID64 of a surface map(see Material Section below)?
FLOAT //BE; Bounce ; Should be DWORD?
FLOAT //BE; Slide ; Should be DWORD?
FLOAT //BE; Collision Radius ; Should be DWORD?
FLOAT //BE; Death Probability ; Should be DWORD?
DWORD //BE; Pin Offset
ZSTRING //???
ZSTRING //???
DWORD Count //BE
FLOAT[3] //le; Surface Point
FLOAT //BE; Map Bounce
FLOAT //BE; Map Repulse Height
FLOAT //BE; Map Repulse Strength
FLOAT //BE; Map Repulse Scout Distance
FLOAT //BE; Map Repulse Vertical
FLOAT //BE; Map Repulse Kill Height; usually -1000000000.0
FLOAT //BE; Probability Death; usually 0.0
FLOAT[2] //le; Altitude Range; usually (-10000.0, 10000.0)
QWORD //BE; Force Map IID64; usually 0xFFFFFFFFFFFFFFFF
QWORD //BE; Emit Rate Map IID64; usually 0xFFFFFFFFFFFFFFFF
QWORD //BE; Emit Color Map IID64; usually 0xFFFFFFFFFFFFFFFF
// Random Walk
FLOAT[2] //le; Time
FLOAT[2] //le; Strength
FLOAT //BE; Turn Range
FLOAT //BE; Turn Offset
FLOAT //BE; Mix
// Turn Offset Curve
DWORD Count //BE
FLOAT //BE
BYTE //BE; Walk Loop Type
FLOAT[3] //le; Attractor Origin
// Attractor Strength Curve
DWORD Count //BE
FLOAT //BE
FLOAT //BE; Range
FLOAT //BE; Kill Range
// Path Points
DWORD Count //BE
FLOAT[3] //le; Position
FLOAT[3] //le; Velocity
FLOAT //BE; Time
if (Version >= 2)
FLOAT[3] //le; ???
DWORD Count //BE
FLOAT[3] //le; ???
if (Version >=3) BYTE //BE; ???
if (Version >=4) FLOAT //BE; ???
if (Version >=5) FLOAT //BE; ???
Metaparticle Effect
Overview
This type takes an existing effect and modifies it
Format
DWORD DWORD FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT DWORD Count FLOAT FLOAT DWORD DWORD Count FLOAT FLOAT DWORD Count FLOAT DWORD Count FLOAT DWORD Count FLOAT FLOAT FLOAT FLOAT FLOAT FLOAT FLOAT DWORD Count FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian DWORD Count FLOAT FLOAT ZSTRING Base Effect //See Effect Handles below ZSTRING Death Effect //See Effect Handles below BYTE FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT FLOAT FLOAT FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT FLOAT DWORD Count FLOAT FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian BYTE[4] //00FF00FF DWORD Count FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian DWORD Count FLOAT DWORD Count DWORD QWORD FLOAT FLOAT FLOAT FLOAT BYTE[4] ZSTRING ZSTRING DWORD Count FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT FLOAT FLOAT FLOAT FLOAT FLOAT //-1000000000.0 FLOAT // 0.0 FLOAT //-10000.0 Little Endian FLOAT // 10000.0 Little Endian QWORD //0xFFFFFFFFFFFFFFFF QWORD //0xFFFFFFFFFFFFFFFF QWORD //0xFFFFFFFFFFFFFFFF FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT FLOAT FLOAT DWORD Count FLOAT BYTE FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT FLOAT FLOAT DWORD Count FLOAT BYTE FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT FLOAT FLOAT FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian DWORD Count FLOAT FLOAT FLOAT DWORD Count FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT timecode FLOAT
Decal Effect
Overview
This is mostly used for things like the build tool UI tools(i.e. the terrain tool circle).
Format
DWORD QWORD //I64 of a DDS Resource BYTE FLOAT BYTE FLOAT DWORD Count1 FLOAT DWORD Count2 FLOAT DWORD Count3 FLOAT //Color Deltas DWORD Count4 FLOAT Red //Little Endian FLOAT Green //Little Endian FLOAT Blue //Little Endian DWORD Count5 FLOAT FLOAT FLOAT FLOAT FLOAT FLOAT //Little Endian FLOAT //Little Endian QWORD //0xFFFFFFFFFFFFFFFF if(version >= 2)BYTE
Sequence Effect
Overivew
Combines effect compilations so they play out sequentially
Format
DWORD Count1 FLOAT //Little Endian FLOAT //Little Endian ZSTRING Effect Name //See Effect Handles below DWORD
Sound Effect
Overview
Plays a sound
Format
DWORD QWORD //I64 of an Audio Tuner FLOAT FLOAT FLOAT
Shake Effect
Format
FLOAT FLOAT DWORD Count1 FLOAT DWORD Count2 FLOAT FLOAT BYTE FLOAT
Camera Effect
Format
DWORD
WORD
FLOAT
DWORD Count1
FLOAT
DWORD Count2
FLOAT
DWORD Count3
FLOAT
DWORD Count4
FLOAT
DWORD Count5
FLOAT
DWORD Count6
FLOAT
DWORD Count7
FLOAT
QWORD
WORD
Model Effect
Format
DWORD QWORD FLOAT FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT DWORD Count FLOAT //Little Endian FLOAT //Little Endian DWORD Count --repeat(Count) FLOAT DWORD DWORD BYTE BYTE QWORD //0xFFFFFFFFFFFFFFFF BYTE
Screen Effect
Format
BYTE
DWORD
DWORD Count
FLOAT Red //Little Endian
FLOAT Green //Little Endian
FLOAT Blue //Little Endian
DWORD Count
FLOAT
DWORD Count
FLOAT
FLOAT
DWORD
DWORD
DWORD
QWORD
DWORD Count
BYTE
BYTE
QWORD
DWORD Count
BYTE
DWORD Count
FLOAT
FLOAT
DWORD Count
DWORD
DWORD Count
FLOAT //Little Endian
FLOAT //Little Endian
DWORD Count
FLOAT //Little Endian
FLOAT //Little Endian
DWORD Count
DWORD
Game Effect
No examples to decode
FastParticle Effect
No examples to decode
Distribute Effect
Overview
Note: there is only one of these
Format
DWORD
DWORD
ZSTRING
DWORD
BYTE
FLOAT
WORD
FLOAT
FLOAT[12] Transform Matrix//Little Endian
DWORD Count
FLOAT
DWORD
DWORD Count
FLOAT
DWORD Count
FLOAT
DWORD Count
FLOAT
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD Count
FLOAT Red //Little Endian
FLOAT Green //Little Endian
FLOAT Blue //Little Endian
FLOAT //Little Endian
FLOAT //Little Endian
FLOAT //Little Endian
DWORD Count
FLOAT
DWORD
DWORD Count
DWORD
QWORD
FLOAT
FLOAT
FLOAT
FLOAT
DWORD
ZSTRING
ZSTRING
DWORD Count
FLOAT //Little Endian
FLOAT //Little Endian
FLOAT //Little Endian
QWORD //0xFFFFFFFFFFFFFFFF
QWORD //0xFFFFFFFFFFFFFFFF
QWORD //0xFFFFFFFFFFFFFFFF
FLOAT //Little Endian
FLOAT //Little Endian
QWORD //0xFFFFFFFFFFFFFFFF
BYTE
BYTE flag
if(flag & 0x80) DWORD
BYTE
BYTE
WORD
DWORD
QWORD //0xFFFFFFFFFFFFFFFF
BYTE
DWORD
Ribbon Effect
Overview
Examples of this effect first appear in the Create A Pet Demo
Format
DWORD
DWORD
DWORD
DWORD Count
FLOAT
DWORD Count
FLOAT
FLOAT
FLOAT
FLOAT
DWORD Count
FLOAT Red //Little Endian
FLOAT Green //Little Endian
FLOAT Blue //Little Endian
DWORD Count
FLOAT
DWORD Count
FLOAT //Little Endian
FLOAT //Little Endian
FLOAT //Little Endian
DWORD Count
FLOAT
DWORD Count
FLOAT //Little Endian
FLOAT //Little Endian
FLOAT //Little Endian
DWORD Count
FLOAT
DWORD Count
FLOAT
DWORD Count
FLOAT
DWORD
FLOAT
//Resource reference block
QWORD //I64 of a an image(DDS), model(VPXY), or material(see Material Section below)
BYTE
BYTE flag
if((flag & 0x80)==0x80) DWORD
BYTE
BYTE
WORD
FLOAT
QWORD //0xFFFFFFFFFFFFFFFF
DWORD //0xFFFFFFFF
FLOAT
FLOAT
FLOAT
FLOAT //Little Endian
FLOAT //Little Endian
FLOAT //Little Endian
FLOAT
FLOAT
QWORD //0xFFFFFFFFFFFFFFFF
QWORD //0xFFFFFFFFFFFFFFFF
DWORD
Sprite Effect
Overview
Examples of this effect first appear in the Create A Pet Demo
Format
DWORD
DWORD
DWORD
FLOAT
WORD
DWORD Count
FLOAT
DWORD Count
FLOAT Red //Little Endian
FLOAT Green //Little Endian
FLOAT Blue //Little Endian
DWORD Count
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT //Little Endian
FLOAT //Little Endian
FLOAT //Little Endian
FLOAT //Little Endian
FLOAT //Little Endian
FLOAT //Little Endian
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
FLOAT
//Resource reference block
QWORD //I64 of a an image(DDS), model(VPXY), or material(see Material Section below)
BYTE
BYTE flag
if((flag & 0x80)==0x80) DWORD
BYTE
BYTE
WORD
FLOAT
QWORD //0xFFFFFFFFFFFFFFFF
BYTE
Resource Sections
Format
--Repeat until ResourceType 0xFFFF
// Block List
WORD ResourceType
WORD Version
DWORD Count
--repeat(Count)
--Insert resource data(depending on type)
Resources
| ID | Name |
|---|---|
| 0x0000 | Map |
| 0x0001 | Material |
Map
No examples to decode
Material
Overview
References shaders from "Shaders_Win32.precomp", making them available to the particle effects in the previous section and overriding some parameters.
Format
QWORD Hashed name QWORD Shader DWORD Count1 QWORD Property Id BYTE dataType switch(dataType) case 06: QWORD // DDS Instance Id case 00: FLOAT // Little Endian
Shaders
FNV32 Hashed shader names from "Shaders_Win32.precomp"
| ID | Name |
|---|---|
| 0x8FAB3764 | Fluid Effect |
| 0x4968A478 | Sim Censor |
Properties
FNV32 Hashed property names from "Shaders_Win32.precomp"
| ID | Name |
|---|---|
| 0x6CC0FD85 | Diffuse Map |
| 0x6E56548A | Normal Map |
| 0x8C27D8C9 | Edge Darkening |
| 0xC3C472A1 | Refraction Distortion Scale |
| 0x6A203374 | Clip Alpha Opacity |
| 0x556010DC | Alpha Cutoff |
| 0xF2FCAD8C | Specular Scale |
| 0xF43D2BDC | Multiply Value |
| 0x3965ECE0 | Additive Value |
VisualEffect Section
Overview
This section combines multiple effects from the previous sections. The same effects are often used more than once here but with different offsets and parameters.
Format
WORD SectionType //0x0000
WORD Version //0x0002
DWORD EffectCount
--Repeat EffectCount
// Effect Block Table
DWORD
DWORD
DWORD
FLOAT //Little Endian
FLOAT //Little Endian
DWORD
BYTE
DWORD Count
FLOAT
FLOAT //Little Endian
FLOAT //Little Endian
FLOAT //Little Endian
DWORD
DWORD BlockIndexCount
--repeat BlockIndexCount
BYTE BlockType
DWORD
WORD
FLOAT
FLOAT[12] Transformation Matrix //Little Endian
BYTE
BYTE
DWORD Count
--repeat Count
FLOAT
FLOAT
FLOAT
FLOAT[6] // always 1.0
FLOAT
FLOAT
WORD
WORD
FLOAT
DWORD BlockIndex
if(version >=2)
BYTE
BYTE
VisualEffect Handles
Overview
This is the root of an effect tree. Effects are called via scripts and clip events by the name provided in this section, which links to the other parts.
Format
--Repeat until index 0xFFFFFFFF DWORD CompilationIndex //see previous section ZSTRING EffectName
| Modding Reference by Category | |
|---|---|
|
Sims 3 :DBPF | File Types | RCOL(Scene) | Catalog Resource | String Table | Key Table | TS3 Programmer's Reference |