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: