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'