CMDL (Metroid Prime): Difference between revisions
→Tools
>Aruki mNo edit summary |
>Aruki (→Tools) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 7: | Line 7: | ||
== Format == | == Format == | ||
CMDL files are split up into a number of 32-byte aligned ''sections''. Every section both starts and ends on a 32-byte boundary. These are used to separate different parts of the file; different | CMDL files are split up into a number of 32-byte aligned ''data sections''. Every data section both starts and ends on a 32-byte boundary. These are used to separate different parts of the file; different data sections typically indicate different sets of data. The header declares the data section count and the size of each one; using these is the only way to navigate the file. | ||
=== Header === | === Header === | ||
Line 13: | Line 13: | ||
{| class="wikitable" | {| class="wikitable" | ||
! Offset | ! Offset | ||
! | ! Type | ||
! | ! Count | ||
! Name | |||
! Notes | |||
|- | |- | ||
| 0x0 | | 0x0 | ||
| | | u32 | ||
| '''Magic''' | | 1 | ||
| '''Magic''' | |||
| Always <code>0xDEADBABE</code>. | |||
|- | |- | ||
| 0x4 | | 0x4 | ||
| | | u32 | ||
| '''Version''' | | 1 | ||
| '''Version''' | |||
| See [[CMDL (File Format)|hub article]] for a list of possible version numbers. | |||
|- | |- | ||
| 0x8 | | 0x8 | ||
| | | u32 | ||
| '''Flags''' | | 1 | ||
| '''Flags''' | |||
| [[#Flags|See below]] | |||
|- | |- | ||
| 0xC | | 0xC | ||
| | | float | ||
| '''Axis- | | 6 | ||
| '''Model Axis-Aligned Bounding Box''' | |||
| | |||
|- | |- | ||
| 0x24 | | 0x24 | ||
| | | u32 | ||
| '''Section | | 1 | ||
| '''Data Section Count''' | |||
| Count of data sections in the file. | |||
|- | |- | ||
| 0x28 | | 0x28 | ||
| | | u32 | ||
| '''Material | | 1 | ||
| '''Material Set Count''' | |||
| Count of material sets in the model. There will be one materials section per set in the file. | |||
|- | |- | ||
| 0x2C | | 0x2C | ||
| | | u32 | ||
| '''Section | | ''Data Section Count'' | ||
| | | '''Data Section Sizes''' | ||
| | |||
|- | |- | ||
| 5 | | colspan=5 {{unknown|End of header; pad to 32 bytes before section data begins}} | ||
| | |||
|} | |} | ||
Line 75: | Line 72: | ||
| 0 | | 0 | ||
| 0x1 | | 0x1 | ||
| | | Indicates the model is skinned (no ingame effect) | ||
|- | |- | ||
| 1 | | 1 | ||
Line 88: | Line 85: | ||
=== Materials === | === Materials === | ||
''See [[Materials (Metroid Prime)]]'' | ''See [[Materials (Metroid Prime)]] and [[Materials (Metroid Prime 3)]]'' | ||
CMDL files can have multiple material sets; each set will get its own section. The main catch with reading materials is to mind the version number; extra values were added starting in version 3 (Echoes Demo). | CMDL files can have multiple material sets; each set will get its own section. The main catch with reading materials is to mind the version number; extra values were added starting in version 3 (Echoes Demo). | ||
Metroid Prime 3 | The material format was completely revamped in Metroid Prime 3, but the way the format supports multiple material sets is the same. | ||
=== Geometry === | === Geometry === | ||
Line 102: | Line 99: | ||
== Tools == | == Tools == | ||
* [https://drive.google.com/file/d/0B9MLV21H7SDvYXRtTWlFRGQ3ZjA/edit?usp=sharing | * [https://drive.google.com/file/d/0B9MLV21H7SDvYXRtTWlFRGQ3ZjA/edit?usp=sharing Aruki's CMDL Maxscript] will import CMDL files into 3DS Max. | ||
[[Category:File Formats]] | [[Category:File Formats]] |