Difference between revisions of "Sims 3:0x02D5DF13"
From SimsWiki
| Line 3: | Line 3: | ||
==Format== | ==Format== | ||
Follows the [[RCOL]] format, with its own custom chunks. These chunks have a lot of filler data(0xDEADBEEF), so it will likely expand in later versions. | Follows the [[RCOL]] format, with its own custom chunks. These chunks have a lot of filler data(0xDEADBEEF), so it will likely expand in later versions. | ||
| − | ===S_SM=== | + | ===S_SM State Machine Definition=== |
| − | + | ||
<pre> | <pre> | ||
| − | DWORD S_SM | + | DWORD 'S_SM' |
| − | DWORD Name // | + | DWORD Version // 0x202 |
| + | DWORD Name // Hashed state machine name (Typically same as filename w/o path or extension) | ||
DWORD count1 // Actor definitions | DWORD count1 // Actor definitions | ||
--repeat | --repeat | ||
| − | DWORD S_AD index | + | DWORD [S_AD index] |
DWORD count2 // Property definitions | DWORD count2 // Property definitions | ||
--repeat | --repeat | ||
| − | DWORD S_PD index | + | DWORD [S_PD index] |
DWORD count3 // States | DWORD count3 // States | ||
--repeat | --repeat | ||
| − | DWORD S_St index | + | DWORD [S_St index] |
DWORD count4 | DWORD count4 | ||
--repeat | --repeat | ||
| − | DWORD // | + | DWORD //animation |
DWORD //actor name | DWORD //actor name | ||
DWORD //actor name | DWORD //actor name | ||
DWORD 0xDEADBEEF | DWORD 0xDEADBEEF | ||
| − | DWORD // State machine properties | + | DWORD Properties // State machine properties |
| − | DWORD | + | DWORD Priority // Automation priority |
| − | DWORD | + | DWORD // Value that's 0-5<!-- SACS.ActorTypes would fit but the values don't make sense--> |
| − | DWORD | + | DWORD Empty |
| − | DWORD | + | DWORD Empty |
| − | DWORD | + | DWORD Empty |
| − | DWORD | + | DWORD Empty |
</pre> | </pre> | ||
| − | ===S_St=== | + | ===S_St State Definition=== |
| − | + | ||
<pre> | <pre> | ||
| − | DWORD S_St | + | DWORD 'S_St' |
| − | DWORD version | + | DWORD version // 0x101 |
| − | DWORD // Hashed state name | + | DWORD Name // Hashed state name |
| − | DWORD // | + | DWORD Priority // Automation Priority |
| − | DWORD S_DG index // State decision graph | + | DWORD [S_DG index] // State decision graph |
DWORD count // State transitions | DWORD count // State transitions | ||
--repeat(count) | --repeat(count) | ||
| − | DWORD S_St index | + | DWORD [S_St index] // Valid transitions out |
| − | DWORD | + | DWORD // Values 0-6<!-- Could be event subtype for SACS events --> |
</pre> | </pre> | ||
| − | ===S_PD=== | + | ===S_PD Parameter Definition=== |
| − | + | ||
<pre> | <pre> | ||
| − | DWORD S_PD | + | DWORD 'S_PD' |
| − | DWORD version | + | DWORD version // 0x100 |
DWORD hash // Hashed parameter name | DWORD hash // Hashed parameter name | ||
DWORD hash // Default value | DWORD hash // Default value | ||
</pre> | </pre> | ||
| − | ===S_DG=== | + | ===S_DG Decision Graph=== |
Decision graph | Decision graph | ||
<pre> | <pre> | ||
| − | DWORD | + | DWORD 'S_DG' |
| − | DWORD version | + | DWORD version // 0x101 |
| − | DWORD blank | + | DWORD blank // In all cases in JazzData.package |
DWORD count1 | DWORD count1 | ||
--Reps (Count1) | --Reps (Count1) | ||
| − | DWORD index | + | DWORD index // List of all decision graph nodes descendant from this S_DG |
DWORD count2 | DWORD count2 | ||
--Reps (Count2) | --Reps (Count2) | ||
| − | DWORD index | + | DWORD index // Root of the decision graph |
4 BYTES (DEADBEEF filler) | 4 BYTES (DEADBEEF filler) | ||
</pre> | </pre> | ||
| − | ===S_AD=== | + | ===S_AD Actor Definition=== |
| − | + | ||
<pre> | <pre> | ||
| − | DWORD | + | DWORD 'S_AD' |
| − | DWORD version | + | DWORD version // 0x100 |
DWORD //hashed actor parameter name | DWORD //hashed actor parameter name | ||
| − | DWORD // | + | DWORD //null in all JazzData.package cases |
</pre> | </pre> | ||
| − | ===SoPn | + | ===SoPn Select on Parameter Node=== |
| − | Select on Parameter | + | |
<pre> | <pre> | ||
DWORD 'SoPn' | DWORD 'SoPn' | ||
| − | DWORD version | + | DWORD version // 0x101 |
DWORD index // Parameter to select on | DWORD index // Parameter to select on | ||
DWORD count // Possible cases to select | DWORD count // Possible cases to select | ||
--repetition | --repetition | ||
| − | DWORD // | + | DWORD //hashed value to compare |
DWORD indexcount | DWORD indexcount | ||
index[indexcount] // Action to take on match | index[indexcount] // Action to take on match | ||
| Line 88: | Line 84: | ||
DWORD "/DGN" | DWORD "/DGN" | ||
</pre> | </pre> | ||
| − | ===SNSN | + | ===SNSN Next State Node=== |
| − | Next State Node | + | |
<pre> | <pre> | ||
| − | DWORD | + | DWORD 'SNSN' |
| − | DWORD version | + | DWORD version // 0x101 |
DWORD S_St index // Next state | DWORD S_St index // Next state | ||
DWORD /DGN (end entry) | DWORD /DGN (end entry) | ||
</pre> | </pre> | ||
| − | ===Rand=== | + | ===Rand Random Node=== |
| − | + | ||
<pre> | <pre> | ||
| − | DWORD Rand | + | DWORD 'Rand' |
| − | DWORD version | + | DWORD version // 0x101 |
DWORD count // Possible outcomes | DWORD count // Possible outcomes | ||
--Reps (Count times) | --Reps (Count times) | ||
| Line 106: | Line 100: | ||
DWORD subcount | DWORD subcount | ||
--Reps (subcount times) | --Reps (subcount times) | ||
| − | DWORD index // Action on selection | + | DWORD [DGN index] // Action on selection |
DWORD - DEADBEEF | DWORD - DEADBEEF | ||
DWORD flags // Random node flags | DWORD flags // Random node flags | ||
DWORD /DGN | DWORD /DGN | ||
</pre> | </pre> | ||
| − | ===Play=== | + | ===Play Play Animation Node=== |
| − | + | ||
<pre> | <pre> | ||
DWORD 'Play' | DWORD 'Play' | ||
| Line 123: | Line 116: | ||
DWORD | DWORD | ||
--rep(count1) | --rep(count1) | ||
| − | DWORD | + | DWORD Empty |
| − | DWORD | + | DWORD Empty |
| − | DWORD | + | DWORD Actor // Hashed actor parameter name |
| − | DWORD | + | DWORD Slot // Hashed slot name (Only one instance of this in jazzdata.package) |
DWORD count2 | DWORD count2 | ||
--rep(count2) | --rep(count2) | ||
| − | DWORD | + | DWORD // |
DWORD | DWORD | ||
4byte filler(DEADBEEF) | 4byte filler(DEADBEEF) | ||
| Line 142: | Line 135: | ||
4byte filler(DEADBEEF) | 4byte filler(DEADBEEF) | ||
DWORD | DWORD | ||
| − | DWORD | + | DWORD Priority // Animation Priroity |
DWORD | DWORD | ||
FLOAT | FLOAT | ||
| Line 148: | Line 141: | ||
FLOAT | FLOAT | ||
FLOAT | FLOAT | ||
| − | DWORD S_AD Index // Actor to animate | + | DWORD [S_AD Index] // Actor to animate |
| − | DWORD | + | DWORD Priority // Animation Priroity |
DWORD | DWORD | ||
DWORD | DWORD | ||
| Line 159: | Line 152: | ||
DWORD count3 | DWORD count3 | ||
--rep(count3) | --rep(count3) | ||
| − | DWORD Index | + | DWORD [DGN Index] // Additional actions (On animation complete?) |
DWORD '/DGN' | DWORD '/DGN' | ||
</pre> | </pre> | ||
| − | ===Prop=== | + | ===Prop Create Prop Node=== |
| − | + | ||
<pre> | <pre> | ||
| − | DWORD Prop | + | DWORD 'Prop' |
DWORD version | DWORD version | ||
DWORD index | DWORD index | ||
| Line 178: | Line 170: | ||
DWORD /DGN | DWORD /DGN | ||
</pre> | </pre> | ||
| − | ===AcOp=== | + | ===AcOp Actor Operation Node=== |
| − | + | ||
<pre> | <pre> | ||
| − | DWORD AcOp | + | DWORD 'AcOp' |
DWORD version | DWORD version | ||
DWORD index // Actor to operate on | DWORD index // Actor to operate on | ||
| Line 192: | Line 183: | ||
DWORD /DGN | DWORD /DGN | ||
</pre> | </pre> | ||
| − | ===Stop=== | + | ===Stop Stop Animation Node=== |
| − | + | ||
<pre> | <pre> | ||
DWORD 'Stop' | DWORD 'Stop' | ||
| Line 205: | Line 195: | ||
FLOAT | FLOAT | ||
DWORD S_AD index // Actor to stop animating | DWORD S_AD index // Actor to stop animating | ||
| − | DWORD | + | DWORD |
DWORD | DWORD | ||
DWORD | DWORD | ||
Revision as of 13:16, 18 July 2009
Overview
Coordinates animations(and sounds?).
Format
Follows the RCOL format, with its own custom chunks. These chunks have a lot of filler data(0xDEADBEEF), so it will likely expand in later versions.
S_SM State Machine Definition
DWORD 'S_SM' DWORD Version // 0x202 DWORD Name // Hashed state machine name (Typically same as filename w/o path or extension) DWORD count1 // Actor definitions --repeat DWORD [S_AD index] DWORD count2 // Property definitions --repeat DWORD [S_PD index] DWORD count3 // States --repeat DWORD [S_St index] DWORD count4 --repeat DWORD //animation DWORD //actor name DWORD //actor name DWORD 0xDEADBEEF DWORD Properties // State machine properties DWORD Priority // Automation priority DWORD // Value that's 0-5<!-- SACS.ActorTypes would fit but the values don't make sense--> DWORD Empty DWORD Empty DWORD Empty DWORD Empty
S_St State Definition
DWORD 'S_St' DWORD version // 0x101 DWORD Name // Hashed state name DWORD Priority // Automation Priority DWORD [S_DG index] // State decision graph DWORD count // State transitions --repeat(count) DWORD [S_St index] // Valid transitions out DWORD // Values 0-6<!-- Could be event subtype for SACS events -->
S_PD Parameter Definition
DWORD 'S_PD' DWORD version // 0x100 DWORD hash // Hashed parameter name DWORD hash // Default value
S_DG Decision Graph
Decision graph
DWORD 'S_DG'
DWORD version // 0x101
DWORD blank // In all cases in JazzData.package
DWORD count1
--Reps (Count1)
DWORD index // List of all decision graph nodes descendant from this S_DG
DWORD count2
--Reps (Count2)
DWORD index // Root of the decision graph
4 BYTES (DEADBEEF filler)
S_AD Actor Definition
DWORD 'S_AD' DWORD version // 0x100 DWORD //hashed actor parameter name DWORD //null in all JazzData.package cases
SoPn Select on Parameter Node
DWORD 'SoPn'
DWORD version // 0x101
DWORD index // Parameter to select on
DWORD count // Possible cases to select
--repetition
DWORD //hashed value to compare
DWORD indexcount
index[indexcount] // Action to take on match
4BYTE filler(DEADBEEF)
DWORD "/DGN"
SNSN Next State Node
DWORD 'SNSN' DWORD version // 0x101 DWORD S_St index // Next state DWORD /DGN (end entry)
Rand Random Node
DWORD 'Rand'
DWORD version // 0x101
DWORD count // Possible outcomes
--Reps (Count times)
FLOAT // Random weight
DWORD subcount
--Reps (subcount times)
DWORD [DGN index] // Action on selection
DWORD - DEADBEEF
DWORD flags // Random node flags
DWORD /DGN
Play Play Animation Node
DWORD 'Play'
DWORD version
TGI64 (CLIP)
TGI64 (TkMk)
DWORD count1
DWORD
DWORD
DWORD
--rep(count1)
DWORD Empty
DWORD Empty
DWORD Actor // Hashed actor parameter name
DWORD Slot // Hashed slot name (Only one instance of this in jazzdata.package)
DWORD count2
--rep(count2)
DWORD //
DWORD
4byte filler(DEADBEEF)
DWORD
DWORD
DWORD
DWORD
DWORD len
STRING char16[len] // Padded to DWORD boundry
if (len > 0){BYTE[4-((2*len)%4)]} '00'
DWORD
4byte filler(DEADBEEF)
DWORD
DWORD Priority // Animation Priroity
DWORD
FLOAT
FLOAT
FLOAT
FLOAT
DWORD [S_AD Index] // Actor to animate
DWORD Priority // Animation Priroity
DWORD
DWORD
DWORD
DWORD
DWORD
DWORD
4byte filler(DEADBEEF)
DWORD count3
--rep(count3)
DWORD [DGN Index] // Additional actions (On animation complete?)
DWORD '/DGN'
Prop Create Prop Node
DWORD 'Prop'
DWORD version
DWORD index
4 BYTES blank?
4 BYTES
4 BYTES blank?
4 BYTES
20 BYTES blank?
DWORD count
--Rep (count times)
DWORD index
DWORD /DGN
AcOp Actor Operation Node
DWORD 'AcOp'
DWORD version
DWORD index // Actor to operate on
DWORD (0x01) // Count?
DWORD op // Actor operation
12 BYTES blank?
DWORD count
--Rep (count times)
DWORD index // Linked action
DWORD /DGN
Stop Stop Animation Node
DWORD 'Stop' DWORD version DWORD DWORD DWORD FLOAT FLOAT DWORD FLOAT DWORD S_AD index // Actor to stop animating DWORD DWORD DWORD DWORD DWORD DWORD DWORD DWORD 0xDEADBEEF DWORD count --repeat(count) DWORD index DWORD '/DGN'