Difference between revisions of "Sims 3:0x02D5DF13"
From SimsWiki
(→S_St State Definition) |
(→Format) |
||
Line 2: | Line 2: | ||
Coordinates animations(and sounds?). | Coordinates animations(and sounds?). | ||
==Format== | ==Format== | ||
− | Follows the [[RCOL]] format, with its own custom chunks. These chunks have a lot of filler data(0xDEADBEEF) | + | Follows the [[RCOL]] format, with its own custom chunks. All data is aligned on DWORD boundries. These chunks have a lot of filler data(0xDEADBEEF) which is a "serialization sentinel" according to enum definitions. |
− | ===S_SM State Machine Definition=== | + | ===S_SM - State Machine Definition=== |
<pre> | <pre> | ||
DWORD 'S_SM' | DWORD 'S_SM' | ||
− | DWORD Version // 0x202 | + | DWORD Version // 0x202 |
− | DWORD Name // Hashed state machine name (Typically same as filename w/o path or extension) | + | DWORD Name // Hashed state machine name (Typically same as filename w/o path or extension) |
− | DWORD count1 // Actor definitions | + | DWORD count1 // Actor definitions |
− | + | REP count1 | |
DWORD [S_AD index] | DWORD [S_AD index] | ||
− | DWORD count2 // Property definitions | + | DWORD count2 // Property definitions |
− | + | REP count2 | |
DWORD [S_PD index] | DWORD [S_PD index] | ||
− | DWORD count3 // States | + | DWORD count3 // States |
− | + | REP count3 | |
DWORD [S_St index] | DWORD [S_St index] | ||
− | + | REP count4 | |
--repeat | --repeat | ||
− | DWORD // | + | DWORD filename //Hash of a .ma filename with extension |
− | DWORD //actor name | + | DWORD actor1 //hash of actor name - animation parameter? |
− | DWORD //actor name | + | DWORD actor2 //hash of actor name - animation parameter? |
DWORD 0xDEADBEEF | DWORD 0xDEADBEEF | ||
DWORD Properties // State machine properties | DWORD Properties // State machine properties | ||
− | DWORD Priority // Automation priority | + | DWORD Priority // Automation priority |
− | DWORD // Value that's 0-5 | + | DWORD // Value that's 0-5 |
DWORD Empty | DWORD Empty | ||
DWORD Empty | DWORD Empty | ||
Line 32: | Line 32: | ||
</pre> | </pre> | ||
− | ===S_St State Definition=== | + | ===S_St - State Definition=== |
<pre> | <pre> | ||
DWORD 'S_St' | DWORD 'S_St' | ||
− | DWORD version // 0x101 | + | DWORD version // 0x101 |
− | DWORD Name // Hashed state name | + | DWORD Name // Hashed state name |
− | DWORD Priority // Automation Priority | + | 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 |
− | + | REP count | |
DWORD [S_St index] // Valid transitions out | DWORD [S_St index] // Valid transitions out | ||
DWORD // Values 0-6 | DWORD // Values 0-6 | ||
</pre> | </pre> | ||
− | ===S_PD Parameter Definition=== | + | ===S_PD - Parameter Definition=== |
<pre> | <pre> | ||
DWORD 'S_PD' | DWORD 'S_PD' | ||
DWORD version // 0x100 | 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 Decision Graph=== | + | ===S_DG - Decision Graph=== |
Decision graph | Decision graph | ||
<pre> | <pre> | ||
DWORD 'S_DG' | DWORD 'S_DG' | ||
− | DWORD version // 0x101 | + | DWORD version // 0x101 |
− | DWORD blank // In all cases in JazzData.package | + | DWORD blank // In all cases in JazzData.package |
DWORD count1 | DWORD count1 | ||
− | + | REP count1 | |
− | + | DWORD [DGN index] // List of all decision graph nodes descendant from this S_DG | |
DWORD count2 | DWORD count2 | ||
− | + | REP count2 | |
− | + | DWORD [DGN index] // Root of the decision graph | |
− | + | DWORD (DEADBEEF filler) | |
</pre> | </pre> | ||
− | ===S_AD Actor Definition=== | + | ===S_AD - Actor Definition=== |
<pre> | <pre> | ||
DWORD 'S_AD' | DWORD 'S_AD' | ||
DWORD version // 0x100 | DWORD version // 0x100 | ||
− | DWORD //hashed actor parameter name | + | DWORD Name //hashed actor parameter name |
− | DWORD //null in all JazzData.package cases | + | DWORD Empty //null in all JazzData.package cases |
</pre> | </pre> | ||
− | ===SoPn Select on Parameter Node=== | + | ===SoPn - Select on Parameter Node=== |
<pre> | <pre> | ||
DWORD 'SoPn' | DWORD 'SoPn' | ||
− | DWORD version // 0x101 | + | 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 |
− | + | REP count | |
− | DWORD //hashed value to compare | + | DWORD Value //hashed value to compare |
DWORD indexcount | DWORD indexcount | ||
− | + | REP indexcount | |
+ | DWORD [DGN index] // Action to take on match | ||
4BYTE filler(DEADBEEF) | 4BYTE filler(DEADBEEF) | ||
− | DWORD | + | DWORD '/DGN' |
</pre> | </pre> | ||
− | ===SNSN Next State Node=== | + | ===SNSN - Next State Node=== |
<pre> | <pre> | ||
DWORD 'SNSN' | DWORD 'SNSN' | ||
− | DWORD version // 0x101 | + | 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 Random Node=== | + | ===Rand - Random Node=== |
<pre> | <pre> | ||
DWORD 'Rand' | DWORD 'Rand' | ||
− | DWORD version // 0x101 | + | DWORD version // 0x101 |
− | DWORD count // Possible outcomes | + | DWORD count // Possible outcomes |
− | + | REP count | |
− | + | FLOAT // Random weight | |
− | + | DWORD subcount | |
− | + | REP subcount | |
− | + | 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 Animation Node=== | + | ===Play - Play Animation Node=== |
<pre> | <pre> | ||
DWORD 'Play' | DWORD 'Play' | ||
− | DWORD version | + | DWORD version // 0x105 |
TGI64 (CLIP) | TGI64 (CLIP) | ||
TGI64 (TkMk) | TGI64 (TkMk) | ||
Line 117: | Line 118: | ||
DWORD | DWORD | ||
DWORD | DWORD | ||
− | + | REP count1 | |
DWORD Empty | DWORD Empty | ||
DWORD Empty | DWORD Empty | ||
− | DWORD Actor // Hashed actor parameter name | + | DWORD Actor // Hashed actor parameter name |
− | DWORD Slot // Hashed slot name (Only one instance of this in jazzdata.package) | + | DWORD Slot // Hashed slot name (Only one instance of this in jazzdata.package) |
DWORD count2 | DWORD count2 | ||
− | + | REP count2 | |
− | DWORD // | + | DWORD // Hashed name |
− | DWORD | + | DWORD // Hashed name |
− | + | DWORD filler(DEADBEEF) | |
DWORD | DWORD | ||
DWORD | DWORD | ||
Line 132: | Line 133: | ||
DWORD | DWORD | ||
DWORD len | DWORD len | ||
− | STRING char16[len] // Padded to DWORD boundry | + | STRING char16[len] // Padded to DWORD boundry w/ null termination included if longer than 0 |
if (len > 0){BYTE[4-((2*len)%4)]} '00' | if (len > 0){BYTE[4-((2*len)%4)]} '00' | ||
DWORD | DWORD | ||
− | + | DWORD filler(DEADBEEF) | |
DWORD | DWORD | ||
− | DWORD Priority // Animation Priroity | + | DWORD Priority // Animation Priroity |
DWORD | DWORD | ||
FLOAT | FLOAT | ||
Line 144: | Line 145: | ||
FLOAT | FLOAT | ||
DWORD [S_AD Index] // Actor to animate | DWORD [S_AD Index] // Actor to animate | ||
− | DWORD Priority // Animation Priroity | + | DWORD Priority // Animation Priroity |
DWORD | DWORD | ||
DWORD | DWORD | ||
Line 151: | Line 152: | ||
DWORD | DWORD | ||
DWORD | DWORD | ||
− | + | DWORD filler(DEADBEEF) | |
DWORD count3 | DWORD count3 | ||
− | + | REP count3 | |
DWORD [DGN Index] // Additional actions (On animation complete?) | DWORD [DGN Index] // Additional actions (On animation complete?) | ||
DWORD '/DGN' | DWORD '/DGN' | ||
</pre> | </pre> | ||
− | ===Prop Create Prop Node=== | + | ===Prop - Create Prop Node=== |
<pre> | <pre> | ||
DWORD 'Prop' | DWORD 'Prop' | ||
− | DWORD version | + | DWORD version // 0x100 |
− | DWORD | + | DWORD [S_Ad Index] // Prop actor to create |
− | + | DWORD blank | |
− | + | TGI64 propobject // Catalog reference of prop to create - the type ID doesn't exist in any packages, but the instance ID is correct | |
− | + | 5 DWORDS blank // Could be another blank + TGI64 | |
− | + | ||
− | + | ||
DWORD count | DWORD count | ||
− | + | REP count | |
− | + | DWORD [DGN index] | |
− | DWORD /DGN | + | DWORD '/DGN' |
</pre> | </pre> | ||
− | ===AcOp Actor Operation Node=== | + | ===AcOp - Actor Operation Node=== |
<pre> | <pre> | ||
DWORD 'AcOp' | DWORD 'AcOp' | ||
− | DWORD version | + | DWORD version // 0x100 |
− | DWORD index // Actor to operate on | + | DWORD index // Actor to operate on |
− | DWORD | + | DWORD 1 // Count? Always 1 in jazzdata.package, but there is also only one defined operation |
− | DWORD op // Actor operation | + | DWORD op // Actor operation |
− | + | 3 DWORDS blank | |
DWORD count | DWORD count | ||
− | + | REP count | |
− | + | DWORD [DGN index] | |
− | DWORD /DGN | + | DWORD '/DGN' |
</pre> | </pre> | ||
− | ===Stop Stop Animation Node=== | + | ===Stop - Stop Animation Node=== |
<pre> | <pre> | ||
DWORD 'Stop' | DWORD 'Stop' | ||
− | DWORD version | + | DWORD version // 0x104 |
DWORD | DWORD | ||
DWORD | DWORD | ||
Line 196: | Line 195: | ||
DWORD | DWORD | ||
FLOAT | FLOAT | ||
− | DWORD S_AD index // Actor to stop animating | + | DWORD [S_AD index] // Actor to stop animating |
DWORD | DWORD | ||
DWORD | DWORD | ||
Line 206: | Line 205: | ||
DWORD 0xDEADBEEF | DWORD 0xDEADBEEF | ||
DWORD count | DWORD count | ||
− | + | REP count | |
− | DWORD index | + | DWORD [DGN index] |
DWORD '/DGN' | DWORD '/DGN' | ||
</pre> | </pre> |
Revision as of 06:31, 19 July 2009
Overview
Coordinates animations(and sounds?).
Format
Follows the RCOL format, with its own custom chunks. All data is aligned on DWORD boundries. These chunks have a lot of filler data(0xDEADBEEF) which is a "serialization sentinel" according to enum definitions.
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 REP count1 DWORD [S_AD index] DWORD count2 // Property definitions REP count2 DWORD [S_PD index] DWORD count3 // States REP count3 DWORD [S_St index] REP count4 --repeat DWORD filename //Hash of a .ma filename with extension DWORD actor1 //hash of actor name - animation parameter? DWORD actor2 //hash of actor name - animation parameter? DWORD 0xDEADBEEF DWORD Properties // State machine properties DWORD Priority // Automation priority DWORD // Value that's 0-5 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 REP count DWORD [S_St index] // Valid transitions out DWORD // Values 0-6
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 REP count1 DWORD [DGN index] // List of all decision graph nodes descendant from this S_DG DWORD count2 REP count2 DWORD [DGN index] // Root of the decision graph DWORD (DEADBEEF filler)
S_AD - Actor Definition
DWORD 'S_AD' DWORD version // 0x100 DWORD Name //hashed actor parameter name DWORD Empty //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 REP count DWORD Value //hashed value to compare DWORD indexcount REP indexcount DWORD [DGN index] // 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 REP count FLOAT // Random weight DWORD subcount REP subcount DWORD [DGN index] // Action on selection DWORD - DEADBEEF DWORD flags // Random node flags DWORD '/DGN'
Play - Play Animation Node
DWORD 'Play' DWORD version // 0x105 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 // Hashed name DWORD // Hashed name DWORD filler(DEADBEEF) DWORD DWORD DWORD DWORD DWORD len STRING char16[len] // Padded to DWORD boundry w/ null termination included if longer than 0 if (len > 0){BYTE[4-((2*len)%4)]} '00' DWORD DWORD 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 DWORD filler(DEADBEEF) DWORD count3 REP count3 DWORD [DGN Index] // Additional actions (On animation complete?) DWORD '/DGN'
Prop - Create Prop Node
DWORD 'Prop' DWORD version // 0x100 DWORD [S_Ad Index] // Prop actor to create DWORD blank TGI64 propobject // Catalog reference of prop to create - the type ID doesn't exist in any packages, but the instance ID is correct 5 DWORDS blank // Could be another blank + TGI64 DWORD count REP count DWORD [DGN index] DWORD '/DGN'
AcOp - Actor Operation Node
DWORD 'AcOp' DWORD version // 0x100 DWORD index // Actor to operate on DWORD 1 // Count? Always 1 in jazzdata.package, but there is also only one defined operation DWORD op // Actor operation 3 DWORDS blank DWORD count REP count DWORD [DGN index] DWORD '/DGN'
Stop - Stop Animation Node
DWORD 'Stop' DWORD version // 0x104 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 REP count DWORD [DGN index] DWORD '/DGN'