Difference between revisions of "Frame List (RW Section)"
Jump to navigation
Jump to search
(Better readability and comprehensibility) |
|||
(3 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
− | {{RW Section|Frame List| | + | {{RW Section |
+ | | NAME = Frame List | ||
+ | | VENDORNAME = Criterion Games | ||
+ | | MODULENAME = Core | ||
+ | | MODULEID = 000000 | ||
+ | | IDENTIFIER = 0E | ||
+ | | PARENTS = [[Clump (RW Section)|Clump]] | ||
+ | | CHILDREN = [[Struct (RW Section)|Struct]] | ||
+ | | EXTENSIONS = [[Frame (RW Section)|Frame]], [[HAnim PLG (RW Section)|HAnim PLG]] | ||
+ | }} | ||
− | '''Frame List''' is a container section used in [[model file|DFF files]] as child of | + | '''Frame List''' is a RenderWare stream container section used in [[model file|'''DFF''' files]] as a child section of the [[Clump (RW Section)|'''Clump''']] section. |
+ | |||
+ | The '''Frame List''' section only stores child sections and no data. | ||
+ | |||
+ | == Hierarchy == | ||
+ | |||
+ | * [[Clump (RW Section)|Clump]] | ||
+ | ** '''Frame List''' | ||
+ | *** [[Struct (RW Section)|Struct]] | ||
+ | *** [[Extension (RW Section)|Extension]] | ||
+ | **** [[HAnim PLG (RW Section)|HAnim PLG]] | ||
+ | **** [[Node Name (RW Section)|Node Name]] | ||
+ | |||
+ | |||
+ | == Struct == | ||
+ | |||
+ | The '''Frame List''' data is stored in a [[Struct (RW Section)|'''Struct''']] child section. | ||
+ | |||
+ | The '''Struct''' section is defined as: | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Size (Bytes) | ||
+ | ! Type | ||
+ | ! Variable Name | ||
+ | ! Description | ||
+ | |- | ||
+ | | <code>0x04 (4)</code> | ||
+ | | <code>int32_t | ||
+ | | <code>frame_count</code> | ||
+ | | '''Frame''' count | ||
+ | |- | ||
+ | | <code>frame_count * 0x44</code> | ||
+ | | <code>Frame[frame_count]</code> | ||
+ | | <code>frame_data</code> | ||
+ | | Array of '''Frame''' data | ||
+ | |} | ||
+ | |||
+ | The '''Struct''' section continues with an array of '''Frame''' data, holding as many as defined by the '''Frame''' count. | ||
+ | |||
+ | The '''Frame''' data is defined as: | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Size (Bytes) | ||
+ | ! Type | ||
+ | ! Variable Name | ||
+ | ! Description | ||
+ | |- | ||
+ | | <code>0x24 (36)</code> | ||
+ | | <code>TMatrix3x3F</code> | ||
+ | | <code>rotation_matrix</code> | ||
+ | | Rotation matrix | ||
+ | |- | ||
+ | | <code>0x0C (12)</code> | ||
+ | | <code>TVector3F</code> | ||
+ | | <code>position</code> | ||
+ | | Position | ||
+ | |- | ||
+ | | <code>0x04 (4)</code> | ||
+ | | <code>int32_t</code> | ||
+ | | <code>parent_index</code> | ||
+ | | Parent Index | ||
+ | |- | ||
+ | | <code>0x04 (4)</code> | ||
+ | | <code>int32_t | ||
+ | | <code>matrix_flags</code> | ||
+ | | Matrix creation flags / (''see [[Talk:Frame_List_(RW_Section)#Flags_under_Frame_Data|discussion page]]'') | ||
+ | |} | ||
+ | |||
+ | '''TMatrix3x3F''' is defined as: | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Size (Bytes) | ||
+ | ! Type | ||
+ | ! Description | ||
+ | |- | ||
+ | | <code>0x0C (12)</code> | ||
+ | | <code>TVector3F</code> | ||
+ | | <code>right</code> | ||
+ | | Right vector | ||
+ | |- | ||
+ | | <code>0x0C (12)</code> | ||
+ | | <code>TVector3F</code> | ||
+ | | <code>up</code> | ||
+ | | Up vector | ||
+ | |- | ||
+ | | <code>0x0C (12)</code> | ||
+ | | <code>TVector3F</code> | ||
+ | | <code>at</code> | ||
+ | | At vector | ||
+ | |} | ||
+ | |||
+ | '''TVector3F''' is defined as: | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | ! Size (Bytes) | ||
+ | ! Type | ||
+ | ! Description | ||
+ | |- | ||
+ | | <code>0x04 (4)</code> | ||
+ | | <code>float</code> | ||
+ | | <code>x</code> | ||
+ | | X | ||
+ | |- | ||
+ | | <code>0x04 (4)</code> | ||
+ | | <code>float</code> | ||
+ | | <code>y</code> | ||
+ | | Y | ||
+ | |- | ||
+ | | <code>0x04 (4)</code> | ||
+ | | <code>float</code> | ||
+ | | <code>z</code> | ||
+ | | Z | ||
+ | |} | ||
+ | |||
+ | == Extension == | ||
+ | |||
+ | The '''Frame List''' section can be extended by an [[Extension (RW Section)|'''Extension''']] child section. | ||
+ | |||
+ | The '''Extension''' section can appear multiple times in a '''Frame List''' section, usually matches the '''Frame''' count defined above, but is not required to do so. | ||
+ | |||
+ | The '''Extension''' section usually holds the following child sections: | ||
+ | * [[HAnim PLG (RW Section)|HAnim PLG]] | ||
+ | * [[Node Name (RW Section)|Node Name]] | ||
+ | |||
+ | {{N|SA|VC|3}} | ||
+ | |||
+ | [[Category:RW Section]] |
Latest revision as of 22:21, 29 July 2023
Frame List | |
---|---|
RenderWare Stream Section | |
Vendor | Criterion Games |
Module | Core |
Module ID | 0x000000
|
Identifier | 0x0E
|
Chunk ID | 0x0000000E
|
Versions | All |
Hierarchy | |
Parents: Clump | |
Children: Struct | |
Extensions: Frame, HAnim PLG | |
File Format |
Frame List is a RenderWare stream container section used in DFF files as a child section of the Clump section.
The Frame List section only stores child sections and no data.
Hierarchy
Struct
The Frame List data is stored in a Struct child section.
The Struct section is defined as:
Size (Bytes) | Type | Variable Name | Description |
---|---|---|---|
0x04 (4)
|
int32_t
|
frame_count
|
Frame count |
frame_count * 0x44
|
Frame[frame_count]
|
frame_data
|
Array of Frame data |
The Struct section continues with an array of Frame data, holding as many as defined by the Frame count.
The Frame data is defined as:
Size (Bytes) | Type | Variable Name | Description |
---|---|---|---|
0x24 (36)
|
TMatrix3x3F
|
rotation_matrix
|
Rotation matrix |
0x0C (12)
|
TVector3F
|
position
|
Position |
0x04 (4)
|
int32_t
|
parent_index
|
Parent Index |
0x04 (4)
|
int32_t
|
matrix_flags
|
Matrix creation flags / (see discussion page) |
TMatrix3x3F is defined as:
Size (Bytes) | Type | Description | |
---|---|---|---|
0x0C (12)
|
TVector3F
|
right
|
Right vector |
0x0C (12)
|
TVector3F
|
up
|
Up vector |
0x0C (12)
|
TVector3F
|
at
|
At vector |
TVector3F is defined as:
Size (Bytes) | Type | Description | |
---|---|---|---|
0x04 (4)
|
float
|
x
|
X |
0x04 (4)
|
float
|
y
|
Y |
0x04 (4)
|
float
|
z
|
Z |
Extension
The Frame List section can be extended by an Extension child section.
The Extension section can appear multiple times in a Frame List section, usually matches the Frame count defined above, but is not required to do so.
The Extension section usually holds the following child sections: