Sims 3:0x02D5DF13
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
The catalog resource ID references type 0x139f7591 (CatalogObjectResourceID) which does not exist in any packages. However, the instance does reference a valid catalog object ID.
Current speculation is that the blank values may be object create parameters, since the prop is created with no script intervention. However, none of the values are set in existing jazz data.
DWORD 'Prop'
DWORD version // 0x100
DWORD [S_Ad Index] // Prop actor to create
DWORD blank
TGI64 propobject // Catalog reference of prop to create
5 DWORDS blank
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'