Difference between revisions of "Sims 3:0x02D5DF13"

From SimsWiki
Jump to: navigation, search
(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), so it will likely expand in later versions.
+
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
--repeat
+
REP count1
 
   DWORD [S_AD index]
 
   DWORD [S_AD index]
DWORD count2 // Property definitions
+
DWORD count2     // Property definitions
--repeat
+
REP count2
 
   DWORD [S_PD index]
 
   DWORD [S_PD index]
DWORD count3 // States
+
DWORD count3     // States
--repeat
+
REP count3
 
   DWORD [S_St index]
 
   DWORD [S_St index]
DWORD count4
+
REP count4
 
--repeat
 
--repeat
   DWORD //animation
+
   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
--repeat(count)
+
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
--Reps (Count1)
+
REP count1
          DWORD index // List of all decision graph nodes descendant from this S_DG
+
    DWORD [DGN index] // List of all decision graph nodes descendant from this S_DG
 
DWORD count2
 
DWORD count2
--Reps (Count2)
+
REP count2
          DWORD index // Root of the decision graph
+
    DWORD [DGN index] // Root of the decision graph
4 BYTES (DEADBEEF filler)
+
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
--repetition
+
REP count
     DWORD //hashed value to compare
+
     DWORD Value          //hashed value to compare
 
     DWORD indexcount
 
     DWORD indexcount
     index[indexcount] // Action to take on match
+
     REP indexcount
 +
        DWORD [DGN index] // Action to take on match
 
4BYTE filler(DEADBEEF)
 
4BYTE filler(DEADBEEF)
DWORD "/DGN"
+
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
--Reps (Count times)
+
REP count
        FLOAT // Random weight
+
    FLOAT                 // Random weight
        DWORD subcount
+
    DWORD subcount
        --Reps (subcount times)
+
    REP subcount
                DWORD [DGN index] // Action on selection
+
        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)
+
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)
+
REP count2
   DWORD //  
+
   DWORD           // Hashed name
   DWORD
+
   DWORD           // Hashed name
4byte filler(DEADBEEF)
+
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
4byte filler(DEADBEEF)
+
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
4byte filler(DEADBEEF)
+
DWORD filler(DEADBEEF)
 
DWORD count3
 
DWORD count3
--rep(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 index
+
DWORD [S_Ad Index]  // Prop actor to create
4 BYTES blank?
+
DWORD blank
4 BYTES
+
TGI64 propobject    // Catalog reference of prop to create - the type ID doesn't exist in any packages, but the instance ID is correct
4 BYTES blank?
+
5 DWORDS blank     // Could be another blank + TGI64
4 BYTES
+
20 BYTES blank?
+
 
DWORD count
 
DWORD count
--Rep (count times)
+
REP count
          DWORD index  
+
    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 (0x01) // Count?
+
DWORD 1      // Count? Always 1 in jazzdata.package, but there is also only one defined operation
DWORD op // Actor operation
+
DWORD op     // Actor operation
12 BYTES blank?
+
3 DWORDS blank
 
DWORD count
 
DWORD count
--Rep (count times)
+
REP count
          DWORD index // Linked action
+
  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
--repeat(count)
+
REP count
   DWORD index
+
   DWORD [DGN index]
 
DWORD '/DGN'
 
DWORD '/DGN'
 
</pre>
 
</pre>

Revision as of 06:31, 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.

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'
Personal tools
Namespaces

Variants
Actions
Navigation
game select
Toolbox