Formats/SSXTricky:MPF(PS2 Model): Difference between revisions

no edit summary
No edit summary
No edit summary
 
Here is the structure made in programming languages for easy code implementation:
 
- [SSX Tricky mpf GO struct by Erick](<nowiki>https://github.com/Erickson400/TheTrickyModels/blob/main/mpf/MpfStructure.go</nowiki>)
 
- [SSX Tricky mpf C# handler by GlitcherOG](<nowiki>https://github.com/GlitcherOG/SSX-PS2-Collection-Modder/blob/main/FileHandlers/Models/TrickyMPFModelHandler.cs</nowiki>)
 
- [SSX Tricky mpf GO struct by Erick](<nowiki>https://github.com/Erickson400/TheTrickyModels/blob/main/mpf/MpfStructure.go</nowiki>)
 
== Structure ==
All Offsets Unless Stated Otherwise are relative to the start of model data
 
==== <u>Material Data</u> ====
Unused Slots use 0x00202020 as a place holder
{| class="wikitable"
|}
 
==== <u>Bone Data</u> ====
Location and Rotation are relative to parent
{| class="wikitable"
|XYZ Radian Rotation of the bone
|-
|Vector 3 (3 Float32s)Flo
|}boots stick on
|XYZ Radian 2
|-
|6 Float32s
|Contains 6 float values with either -1.0 or 1.0
|}
 
==== IK Point (Inverse Kinematic) ====
Inverse Kinematic Targets this is a list which usually contains 2 points boards use them so the character's boots stick on
{| class="wikitable"
|+
|}
 
==== <u>Group Main</u> ====
 
===== Group Main Header =====
|}
 
==== <u>Bone Weight</u> ====
<nowiki><br></nowiki>
 
Bone Weight
 
<nowiki>###</nowiki> Bone Weight Header
 
===== Bone Weight Header =====
| Offset | Type   | Description                | Key | Rel |
 
| 0x08   | UInt32 | Unknown                    |     |     |
 
===== Bone Weight =====
<nowiki><br></nowiki>
 
<nowiki>###</nowiki> Bone Weight
 
| Offset | Type   | Description            | Key | Rel |
 
| 0x03   | UInt8  | Unknown                |     |     |
 
==== <nowikiu>##</nowiki> Number List Ref</u> ====
 
<nowiki>###</nowiki> Number List Ref Header
 
===== Number List Ref Header =====
| Offset | Type   | Description                 | Key | Rel |
 
<nowiki><br></nowiki>
 
<nowiki>###</nowiki>===== Sub Number List Ref =====
 
| Offset | Type   | Description            | Key | Rel |
 
<nowiki><br></nowiki>
 
<!--
 
    Row Count Header
 
    Hex examples:
 
    01000010 00000000 00000000 00000000
 
    ^ 1 row
 
    06000096 00000000 00000000 00000000
 
    ^ 6 rows
 
-->
 
<!-- THIS IS ALSO A COMMENT
 
Model Data List[
 
    Model Data 1 [
 
        Material Data List[
 
            Material 1
 
            Material 2
 
        ]
 
        Bone Data List[
 
            Bone 1
 
            Bone 2
 
        ]
 
        Bone Weights List 1[
 
        ]
 
        Bone Weights List 2[
 
        ]
 
        Offsets/Count List[
 
            Offset/Count 1 List[
 
            ]
 
            Offset/Count 1 List[
 
            ]
 
        ]
 
        Mesh Data List[
 
            Mesh Data 1 List[
 
                Mesh 1
 
                Mesh 2
 
            ]
 
            Mesh Data 2 List[
 
                Mesh 1
 
                Mesh 2
 
            ]
 
        ]
 
    ]
 
]
 
There's multiple mesh groups in the mesh section
 
    Mesh Data List [ # the model's header leads here
 
      Mesh Data 1 List [ # offset/count section leads here
 
            Mesh 1 # mesh info, tristrips, uvs, nrm, vtx
 
            Mesh 2
 
            etc...
 
        ] # footer Hex: 00000000 00000010 00000000 00000014
 
      Mesh Data 2 List[ # offset/count section leads here
 
            Mesh 1
 
            etc...
 
        ]  # footer Hex: 00000000 00000010 00000000 00000014
 
Test
 
-->
 
<nowiki>##</nowiki> Mesh Data