Difference between revisions of "Sims 3:0x02D5DF13"
From SimsWiki
(→Format) |
(→Format) |
||
Line 2: | Line 2: | ||
Coordinates animations(and sounds?). | Coordinates animations(and sounds?). | ||
==Format== | ==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. | + | 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. There are two types of chunks, definition chunks and decision graph node chunks. The definition chunks form a simple structure with data about the state machine. Decision graph nodes form a recursive data structure. References to decision graph node indexes can validly refer to any decision graph node. |
− | ===S_SM - State Machine Definition=== | + | ===Definition Chunks=== |
+ | ====S_SM - State Machine Definition==== | ||
<pre> | <pre> | ||
DWORD 'S_SM' | DWORD 'S_SM' | ||
Line 18: | Line 19: | ||
DWORD [S_St index] | DWORD [S_St index] | ||
REP count4 | REP count4 | ||
− | |||
DWORD filename //Hash of a .ma filename with extension | DWORD filename //Hash of a .ma filename with extension | ||
DWORD actor1 //hash of actor name - animation parameter? | DWORD actor1 //hash of actor name - animation parameter? | ||
Line 32: | Line 32: | ||
</pre> | </pre> | ||
− | ===S_St - State Definition=== | + | ====S_St - State Definition==== |
<pre> | <pre> | ||
DWORD 'S_St' | DWORD 'S_St' | ||
Line 45: | Line 45: | ||
</pre> | </pre> | ||
− | ===S_PD - Parameter Definition=== | + | ====S_PD - Parameter Definition==== |
<pre> | <pre> | ||
DWORD 'S_PD' | DWORD 'S_PD' | ||
Line 52: | Line 52: | ||
DWORD hash // Default value | DWORD hash // Default value | ||
</pre> | </pre> | ||
− | ===S_DG - Decision Graph=== | + | |
− | + | ====S_AD - Actor Definition==== | |
+ | <pre> | ||
+ | DWORD 'S_AD' | ||
+ | DWORD version // 0x100 | ||
+ | DWORD Name //hashed actor parameter name | ||
+ | DWORD Empty //null in all JazzData.package cases | ||
+ | </pre> | ||
+ | |||
+ | ====S_DG - Decision Graph==== | ||
<pre> | <pre> | ||
DWORD 'S_DG' | DWORD 'S_DG' | ||
Line 66: | Line 74: | ||
DWORD (DEADBEEF filler) | DWORD (DEADBEEF filler) | ||
</pre> | </pre> | ||
− | === | + | |
− | + | ===Decision Graph Node Chunks=== | |
− | + | ====SoPn - Select on Parameter Node==== | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | ===SoPn - Select on Parameter Node=== | + | |
<pre> | <pre> | ||
DWORD 'SoPn' | DWORD 'SoPn' | ||
Line 87: | Line 90: | ||
DWORD '/DGN' | DWORD '/DGN' | ||
</pre> | </pre> | ||
− | ===SNSN - Next State Node=== | + | |
+ | ====SNSN - Next State Node==== | ||
<pre> | <pre> | ||
DWORD 'SNSN' | DWORD 'SNSN' | ||
Line 94: | Line 98: | ||
DWORD '/DGN' (end entry) | DWORD '/DGN' (end entry) | ||
</pre> | </pre> | ||
− | ===Rand - Random Node=== | + | |
+ | ====Rand - Random Node==== | ||
<pre> | <pre> | ||
DWORD 'Rand' | DWORD 'Rand' | ||
Line 108: | Line 113: | ||
DWORD '/DGN' | DWORD '/DGN' | ||
</pre> | </pre> | ||
− | ===Play - Play Animation Node=== | + | |
+ | ====Play - Play Animation Node==== | ||
<pre> | <pre> | ||
DWORD 'Play' | DWORD 'Play' | ||
Line 158: | Line 164: | ||
DWORD '/DGN' | DWORD '/DGN' | ||
</pre> | </pre> | ||
− | ===Prop - Create Prop Node=== | + | |
+ | ====Prop - Create Prop Node==== | ||
<pre> | <pre> | ||
DWORD 'Prop' | DWORD 'Prop' | ||
Line 171: | Line 178: | ||
DWORD '/DGN' | DWORD '/DGN' | ||
</pre> | </pre> | ||
− | ===AcOp - Actor Operation Node=== | + | |
+ | ====AcOp - Actor Operation Node==== | ||
<pre> | <pre> | ||
DWORD 'AcOp' | DWORD 'AcOp' | ||
Line 184: | Line 192: | ||
DWORD '/DGN' | DWORD '/DGN' | ||
</pre> | </pre> | ||
− | ===Stop - Stop Animation Node=== | + | |
+ | ====Stop - Stop Animation Node==== | ||
<pre> | <pre> | ||
DWORD 'Stop' | DWORD 'Stop' |
Revision as of 06:38, 19 July 2009
Contents |
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. There are two types of chunks, definition chunks and decision graph node chunks. The definition chunks form a simple structure with data about the state machine. Decision graph nodes form a recursive data structure. References to decision graph node indexes can validly refer to any decision graph node.
Definition Chunks
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 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_AD - Actor Definition
DWORD 'S_AD' DWORD version // 0x100 DWORD Name //hashed actor parameter name DWORD Empty //null in all JazzData.package cases
S_DG - 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)
Decision Graph Node Chunks
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'