Difference between revisions of "Sims 3:0x02D5DF13"

From SimsWiki
Jump to: navigation, search
(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
--repeat
 
 
   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===
+
 
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>
===S_AD - Actor Definition===
+
 
<pre>
+
===Decision Graph Node Chunks===
DWORD 'S_AD'
+
====SoPn - Select on Parameter Node====
DWORD version // 0x100
+
DWORD Name    //hashed actor parameter name
+
DWORD Empty  //null in all JazzData.package cases
+
</pre>
+
===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'
Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox