Difference between revisions of "Sims 3:0xEA5118B0"
(→Format) |
|||
Line 12: | Line 12: | ||
==Format== | ==Format== | ||
All data is in Big Endian order unless otherwise noted(most floats). This spec is very primitive and needs work. | All data is in Big Endian order unless otherwise noted(most floats). This spec is very primitive and needs work. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | WORD Version | |
− | + | [[#Effect_Blocks|Effect Block Section]] | |
− | + | [[#Shader_Effects|Effect Shader Section]] | |
− | + | [[#Effect_Compilations|Effect Compilation Section]] | |
− | + | [[#Effect_Handles|Effect Handle Section]] | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | == | + | ===Effect Blocks=== |
− | + | ====Format==== | |
− | + | --Repeat until BlockType 0xFFFF | |
− | + | // Block List | |
− | + | WORD BlockType | |
− | + | WORD BlockVersion | |
− | + | DWORD BlockCount | |
− | + | --BlockCount times | |
− | + | --Insert block data(depending on type) | |
− | + | ====Blocks==== | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | === | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | ==Blocks== | + | |
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
! BlockType | ! BlockType | ||
Line 197: | Line 76: | ||
|- | |- | ||
|} | |} | ||
− | ===Particle Effect | + | ====Particle Effect==== |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | //Angle(Degrees) | + | ======Format====== |
− | DWORD Count1 | + | BYTE |
− | + | BYTE | |
− | FLOAT | + | BYTE |
− | WORD | + | BYTE |
− | FLOAT | + | 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 | ||
+ | |||
+ | //Angle(Degrees) | ||
+ | DWORD Count1 | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | WORD | ||
+ | FLOAT | ||
+ | //Scale Delta | ||
+ | DWORD Count2 | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | DWORD Count3 | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | BYTE[4] | ||
+ | DWORD Count4 | ||
+ | FLOAT | ||
+ | DWORD Count5 | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | //Particle Color Delta | ||
+ | DWORD Count6 | ||
+ | FLOAT Red //Little Endian | ||
+ | FLOAT Green //Little Endian | ||
+ | FLOAT Blue //Little Endian | ||
+ | |||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | QWORD //I<sub>64</sub> of a an image(DDS), model(VPXY), or shader(see shader section below) | ||
+ | BYTE[10] | ||
+ | FLOAT | ||
+ | BYTE[8] // FFFFFFFFFFFFFFFF | ||
+ | BYTE | ||
+ | WORD | ||
+ | BYTE | ||
+ | BYTE | ||
+ | FLOAT | ||
+ | BYTE | ||
+ | BYTE | ||
+ | BYTE | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | DWORD Count7 | ||
+ | FLOAT | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | BYTE[4] // 00FF00FF | ||
+ | BYTE[4] | ||
+ | DWORD Count8 | ||
+ | FLOAT | ||
+ | DWORD Count9 | ||
+ | DWORD | ||
+ | QWORD | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | BYTE[4] | ||
+ | ZSTRING | ||
+ | ZSTRING | ||
+ | DWORD Count | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT | ||
+ | BYTE[16] | ||
+ | FLOAT //-1000000000.0 | ||
+ | FLOAT // 0.0 | ||
+ | FLOAT //-10000.0 Little Endian | ||
+ | FLOAT // 10000.0 Little Endian | ||
+ | BYTE[24] //FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | DWORD Count10 | ||
+ | FLOAT | ||
+ | BYTE | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | DWORD Count11 | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | DWORD | ||
+ | BYTE[16] | ||
+ | DWORD Count12 | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | BYTE | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | // | + | ====Metaparticle Effect==== |
− | DWORD Count6 | + | =====Overview===== |
− | + | This type takes an existing effect and modifies it | |
− | + | =====Format===== | |
− | + | BYTE[6] | |
+ | WORD | ||
+ | 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 Count1 | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | DWORD | ||
+ | DWORD Count2 | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | DWORD | ||
+ | BYTE[4] | ||
+ | DWORD | ||
+ | BYTE[4] | ||
+ | DWORD Count3 | ||
+ | FLOAT | ||
+ | BYTE[24] | ||
+ | DWORD Count4 | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | BYTE[8] | ||
+ | DWORD Count5 | ||
+ | BYTE[3] | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | BYTE[9] | ||
+ | DWORD Count6 | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | ZSTRING Base Effect //See effect handles below | ||
+ | ZSTRING Death Effect //See effect handles below | ||
+ | BYTE | ||
+ | BYTE[8] | ||
+ | FLOAT //Little Endian | ||
+ | BYTE[20] | ||
+ | FLOAT | ||
+ | BYTE[12] | ||
+ | FLOAT | ||
+ | BYTE[8] | ||
+ | BYTE[4] //00FF00FF | ||
+ | BYTE[8] | ||
+ | DWORD Count7 | ||
+ | DWORD | ||
+ | BYTE[30] | ||
+ | DWORD Count | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT | ||
+ | BYTE[16] | ||
+ | FLOAT //-1000000000.0 | ||
+ | FLOAT // 0.0 | ||
+ | FLOAT //-10000.0 Little Endian | ||
+ | FLOAT // 10000.0 Little Endian | ||
+ | BYTE[24] //FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | DWORD Count8 | ||
+ | FLOAT | ||
+ | BYTE | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | BYTE | ||
+ | DWORD Count9 | ||
+ | BYTE[8] | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | DWORD Count | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | DWORD Count10 | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT timecode | ||
+ | BYTE[4] | ||
− | + | ====Decal Effect==== | |
− | + | ====Overview==== | |
− | + | This is mostly used for things like the build tool UI tools(i.e. the terrain tool circle). | |
− | + | =====Format===== | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | BYTE[4] | |
− | + | QWORD //I<sub>64</sub> of a DDS resource | |
− | < | + | BYTE[6] |
− | BYTE[6] | + | 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 | |
− | + | BYTE[4] | |
− | + | FLOAT | |
− | + | BYTE[8] | |
− | + | BYTE[8] //FFFFFFFFFFFFFFFF | |
− | + | BYTE | |
− | + | ||
− | + | ||
− | FLOAT | + | |
− | DWORD Count1 | + | |
− | + | ||
− | FLOAT | + | |
− | + | ||
− | DWORD Count2 | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | DWORD Count3 | + | |
− | + | ||
− | + | ||
− | DWORD Count4 | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | DWORD Count5 | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | BYTE[8] | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | BYTE[8 | + | |
− | + | ||
− | BYTE | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | === | + | ====Effect Sequence==== |
− | ==== | + | =====Overivew===== |
− | + | Combines effect compilations so they play out sequentially | |
− | + | =====Format===== | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | === | + | |
− | ==== | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | DWORD Count1 | |
− | + | FLOAT //Little Endian | |
− | + | FLOAT //Little Endian | |
− | DWORD | + | ZSTRING Effect Name //See Effect Compilations below |
− | + | DWORD | |
− | FLOAT | + | |
− | + | ||
− | + | ||
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === | + | ====Sound Effect==== |
− | ==== | + | =====Overview===== |
− | + | Plays a sound | |
− | + | =====Format===== | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | DWORD | |
− | + | QWORD //I<sub>64</sub> of an Audio resource | |
− | < | + | FLOAT |
− | + | FLOAT | |
− | + | FLOAT | |
− | + | ||
− | FLOAT | + | |
− | FLOAT | + | |
− | FLOAT | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | === | + | ====Shake Effect==== |
− | ====Format==== | + | =====Format===== |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | ===P10Block=== | + | 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 | ||
+ | BYTE[17] | ||
+ | DWORD | ||
+ | BYTE | ||
+ | |||
+ | ====Model Effect==== | ||
+ | =====Format===== | ||
+ | |||
+ | BYTE[12] | ||
+ | FLOAT | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT | ||
+ | BYTE[4] | ||
+ | BYTE[8] //FFFFFFFFFFFFFFFF | ||
+ | BYTE | ||
+ | |||
+ | ====Screen Effect==== | ||
+ | =====Format===== | ||
+ | |||
+ | BYTE type | ||
+ | DWORD | ||
+ | DWORD Count1 | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | FLOAT //Little Endian | ||
+ | DWORD Count2 | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | if(type == 0) BYTE[4] else BYTE[12] | ||
+ | BYTE[8] | ||
+ | BYTE[21] | ||
+ | BYTE[3] | ||
+ | |||
+ | |||
+ | ====P10Block==== | ||
No examples to decode | No examples to decode | ||
− | ===P11Block=== | + | ====P11Block==== |
No examples to decode | No examples to decode | ||
− | ===P12Block=== | + | ====P12Block==== |
No examples to decode | No examples to decode | ||
− | ===Distribution Effect=== | + | ====Distribution Effect==== |
− | ==== | + | =====Overview===== |
− | + | Note: there is only one of these | |
− | DWORD | + | =====Format===== |
− | DWORD | + | DWORD |
− | ZSTRING | + | DWORD |
− | BYTE[5] | + | ZSTRING |
− | FLOAT | + | BYTE[5] |
− | BYTE[2] | + | FLOAT |
− | FLOAT | + | BYTE[2] |
− | FLOAT //Little Endian | + | FLOAT |
− | 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 |
− | BYTE[84] | + | FLOAT //Little Endian |
− | BYTE[24] //FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF | + | BYTE[84] |
− | FLOAT //Little Endian | + | BYTE[24] //FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF |
− | FLOAT //Little Endian | + | FLOAT //Little Endian |
− | BYTE[8] //FFFFFFFFFFFFFFFF | + | FLOAT //Little Endian |
− | BYTE[14] | + | BYTE[8] //FFFFFFFFFFFFFFFF |
− | BYTE[8] //FFFFFFFFFFFFFFFF | + | BYTE[14] |
− | BYTE[5] | + | BYTE[8] //FFFFFFFFFFFFFFFF |
− | + | BYTE[5] | |
− | ===P14Block=== | + | ====P14Block==== |
No examples to decode | No examples to decode | ||
+ | |||
+ | ===Shader Effects=== | ||
+ | ====Overview==== | ||
+ | References shaders from "Shaders_Win32.precomp", making them available to the particle effects in the previous section and overriding some parameters. | ||
+ | ====Format==== | ||
+ | |||
+ | BYTE[6] | ||
+ | DWORD | ||
+ | WORD | ||
+ | DWORD Count | ||
+ | QWORD Shader Id? | ||
+ | QWORD Effect Type | ||
+ | DWORD Count1 | ||
+ | QWORD //Property ID | ||
+ | BYTE dataType | ||
+ | switch(dataType) | ||
+ | case 06: QWORD // DDS Instance Id | ||
+ | case 00: FLOAT // Little Endian | ||
+ | ====Effect Types==== | ||
+ | {| class="wikitable" border="1" | ||
+ | ! ID | ||
+ | ! Name | ||
+ | |- | ||
+ | | 0x8FAB3764 | ||
+ | | Fluid Effect | ||
+ | |- | ||
+ | | 0x4968A478 | ||
+ | | Sim Censor | ||
+ | |- | ||
+ | |||
+ | |} | ||
+ | |||
+ | ====Properties==== | ||
+ | [[FNV|FNV32]] Hashed property names from "Shaders_Win32.precomp" | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | ! 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 | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ===Effect Compilations=== | ||
+ | ====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==== | ||
+ | BYTE[4] | ||
+ | DWORD EffectCount | ||
+ | --Repeat EffectCount | ||
+ | // Effect Block Table | ||
+ | DWORD | ||
+ | BYTE[8] | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | BYTE[5] | ||
+ | DWORD Count1 | ||
+ | FLOAT[Count1] | ||
+ | BYTE[16] | ||
+ | DWORD BlockIndexCount | ||
+ | --repeat BlockIndexCount | ||
+ | BYTE BlockType | ||
+ | BYTE[6] | ||
+ | FLOAT | ||
+ | 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 | ||
+ | //Offset relative to the slot | ||
+ | FLOAT X_Offset //Little Endian | ||
+ | FLOAT Y_Offset //Little Endian | ||
+ | FLOAT Z_Offset //Little Endian | ||
+ | BYTE | ||
+ | BYTE | ||
+ | DWORD Count | ||
+ | --repeat Count | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | FLOAT | ||
+ | BYTE[12] | ||
+ | FLOAT | ||
+ | DWORD BlockIndex | ||
+ | BYTE | ||
+ | BYTE | ||
+ | ===Effect 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 | ||
{{TS3AdvancedModdingHeader}} | {{TS3AdvancedModdingHeader}} |
Revision as of 02:10, 15 July 2010
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 Block Section Effect Shader Section Effect Compilation Section Effect Handle Section
Effect Blocks
Format
--Repeat until BlockType 0xFFFF
// Block List WORD BlockType WORD BlockVersion DWORD BlockCount --BlockCount times --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 | P10Block |
0x000B | P11Block |
0x000C | P12Block |
0x000D | Distribution Effect |
0x000E | P14Block |
Particle Effect
Format
BYTE BYTE BYTE BYTE 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 //Angle(Degrees) DWORD Count1 FLOAT FLOAT WORD FLOAT //Scale Delta DWORD Count2 FLOAT FLOAT DWORD Count3 FLOAT FLOAT FLOAT BYTE[4] DWORD Count4 FLOAT DWORD Count5 FLOAT FLOAT //Particle Color Delta DWORD Count6 FLOAT Red //Little Endian FLOAT Green //Little Endian FLOAT Blue //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian QWORD //I64 of a an image(DDS), model(VPXY), or shader(see shader section below) BYTE[10] FLOAT BYTE[8] // FFFFFFFFFFFFFFFF BYTE WORD BYTE BYTE FLOAT BYTE BYTE BYTE FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT FLOAT FLOAT FLOAT //Little Endian FLOAT FLOAT FLOAT DWORD Count7 FLOAT FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian BYTE[4] // 00FF00FF BYTE[4] DWORD Count8 FLOAT DWORD Count9 DWORD QWORD FLOAT FLOAT FLOAT FLOAT BYTE[4] ZSTRING ZSTRING DWORD Count FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT BYTE[16] FLOAT //-1000000000.0 FLOAT // 0.0 FLOAT //-10000.0 Little Endian FLOAT // 10000.0 Little Endian BYTE[24] //FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT FLOAT FLOAT DWORD Count10 FLOAT BYTE FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian DWORD Count11 FLOAT FLOAT DWORD BYTE[16] DWORD Count12 FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian BYTE
Metaparticle Effect
Overview
This type takes an existing effect and modifies it
Format
BYTE[6] WORD 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 Count1 FLOAT FLOAT DWORD DWORD Count2 FLOAT FLOAT DWORD BYTE[4] DWORD BYTE[4] DWORD Count3 FLOAT BYTE[24] DWORD Count4 FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian BYTE[8] DWORD Count5 BYTE[3] FLOAT FLOAT FLOAT BYTE[9] DWORD Count6 FLOAT FLOAT ZSTRING Base Effect //See effect handles below ZSTRING Death Effect //See effect handles below BYTE BYTE[8] FLOAT //Little Endian BYTE[20] FLOAT BYTE[12] FLOAT BYTE[8] BYTE[4] //00FF00FF BYTE[8] DWORD Count7 DWORD BYTE[30] DWORD Count FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT BYTE[16] FLOAT //-1000000000.0 FLOAT // 0.0 FLOAT //-10000.0 Little Endian FLOAT // 10000.0 Little Endian BYTE[24] //FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT FLOAT FLOAT DWORD Count8 FLOAT BYTE FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT FLOAT FLOAT BYTE DWORD Count9 BYTE[8] FLOAT //Little Endian FLOAT //Little Endian DWORD Count FLOAT FLOAT FLOAT DWORD Count10 FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT timecode BYTE[4]
Decal Effect
Overview
This is mostly used for things like the build tool UI tools(i.e. the terrain tool circle).
Format
BYTE[4] QWORD //I64 of a DDS resource BYTE[6] 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 BYTE[4] FLOAT BYTE[8] BYTE[8] //FFFFFFFFFFFFFFFF BYTE
Effect Sequence
Overivew
Combines effect compilations so they play out sequentially
Format
DWORD Count1 FLOAT //Little Endian FLOAT //Little Endian ZSTRING Effect Name //See Effect Compilations below DWORD
Sound Effect
Overview
Plays a sound
Format
DWORD QWORD //I64 of an Audio resource 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 BYTE[17] DWORD BYTE
Model Effect
Format
BYTE[12] FLOAT FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian FLOAT BYTE[4] BYTE[8] //FFFFFFFFFFFFFFFF BYTE
Screen Effect
Format
BYTE type DWORD DWORD Count1 FLOAT //Little Endian FLOAT //Little Endian FLOAT //Little Endian DWORD Count2 FLOAT FLOAT FLOAT if(type == 0) BYTE[4] else BYTE[12] BYTE[8] BYTE[21] BYTE[3]
P10Block
No examples to decode
P11Block
No examples to decode
P12Block
No examples to decode
Distribution Effect
Overview
Note: there is only one of these
Format
DWORD DWORD ZSTRING BYTE[5] FLOAT BYTE[2] FLOAT 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 BYTE[84] BYTE[24] //FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF FLOAT //Little Endian FLOAT //Little Endian BYTE[8] //FFFFFFFFFFFFFFFF BYTE[14] BYTE[8] //FFFFFFFFFFFFFFFF BYTE[5]
P14Block
No examples to decode
Shader Effects
Overview
References shaders from "Shaders_Win32.precomp", making them available to the particle effects in the previous section and overriding some parameters.
Format
BYTE[6] DWORD WORD DWORD Count QWORD Shader Id? QWORD Effect Type DWORD Count1 QWORD //Property ID BYTE dataType switch(dataType) case 06: QWORD // DDS Instance Id case 00: FLOAT // Little Endian
Effect Types
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 |
Effect Compilations
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
BYTE[4] DWORD EffectCount --Repeat EffectCount // Effect Block Table DWORD BYTE[8] FLOAT FLOAT BYTE[5] DWORD Count1 FLOAT[Count1] BYTE[16] DWORD BlockIndexCount --repeat BlockIndexCount BYTE BlockType BYTE[6] FLOAT 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 //Offset relative to the slot FLOAT X_Offset //Little Endian FLOAT Y_Offset //Little Endian FLOAT Z_Offset //Little Endian BYTE BYTE DWORD Count --repeat Count FLOAT FLOAT FLOAT FLOAT FLOAT FLOAT FLOAT FLOAT FLOAT BYTE[12] FLOAT DWORD BlockIndex BYTE BYTE
Effect 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 |