Difference between revisions of "Motion (.MOT) File Format"

From Ōkami Speedrun Wiki
Jump to navigation Jump to search
m
m
Line 27: Line 27:
| 0x00 || <code>int8_t</code> || 1 || Bone index (-1 means it animates the mode's root bone).
| 0x00 || <code>int8_t</code> || 1 || Bone index (-1 means it animates the mode's root bone).
|-
|-
| 0x01 || <code>int8_t</code> || 1 || Curve property.
| 0x01 || <code>int8_t</code> || 1 || Curve properties (See below).
|-
|-
| 0x02 || <code>uint16_t</code> || 2 || Curve keyframe count.
| 0x02 || <code>uint16_t</code> || 2 || Curve keyframe count.
|}
The curve property will define what property of the bone/object it is animating. There's some properties who could not be determined yet. See some already identified values bellow.
== Curve Properties (Already identified) ==
{| class="wikitable"
! Value !! Property Family !! Property
|-
| 0 || Single Pose || Position X
|-
| 1 || Single Pose || Position Y
|-
| 2 || Single Pose || Position Z
|-
| 3 || Single Pose || Rotation X
|-
| 4 || Single Pose || Rotation Y
|-
| 5 || Single Pose || Rotation Z
|-
| 6 || Single Pose || Scale X
|-
| 7 || Single Pose || Scale Y
|-
| 8 || Single Pose || Scale Z
|-
| 16 || Quantized Curve || Position X
|-
| 17 || Quantized Curve || Position Y
|-
| 18 || Quantized Curve || Position Z
|-
| 19 || Quantized Curve || Rotation X
|-
| 20 || Quantized Curve || Rotation Y
|-
| 21 || Quantized Curve || Rotation Z
|-
| 22 || Quantized Curve || Scale X
|-
| 23 || Quantized Curve || Scale Y
|-
| 24 || Quantized Curve || Scale Z
|}
|}

Revision as of 17:44, 7 September 2025

Note: This page pertains to Reverse Engineering of Okami File Formats.

Explanation

This file incorporates curves and/or properties for an given embbed model. Because of that, it's almost always certain that they are contained in a file container (dat). There's instances of mots that controlled properties instead of bones, so it's not always certain of what it animates. A further inspection have to be done.

Mot main header

Offset Type Size Description
0x00 uint32_t 4 File identifier (Magic number).
0x04 uint16_t 2 Animation's frame count.
0x06 uint8_t 1 Animation's property count.
0x07 uint8_t 1 Loop flag, sets if the animation either loops or not (1/0).

on Offset 8, The File gives informations about the curves, i.e: what bone it animates, etc.

Curve Info

Offset Type Size Description
0x00 int8_t 1 Bone index (-1 means it animates the mode's root bone).
0x01 int8_t 1 Curve properties (See below).
0x02 uint16_t 2 Curve keyframe count.

The curve property will define what property of the bone/object it is animating. There's some properties who could not be determined yet. See some already identified values bellow.

Curve Properties (Already identified)

Value Property Family Property
0 Single Pose Position X
1 Single Pose Position Y
2 Single Pose Position Z
3 Single Pose Rotation X
4 Single Pose Rotation Y
5 Single Pose Rotation Z
6 Single Pose Scale X
7 Single Pose Scale Y
8 Single Pose Scale Z
16 Quantized Curve Position X
17 Quantized Curve Position Y
18 Quantized Curve Position Z
19 Quantized Curve Rotation X
20 Quantized Curve Rotation Y
21 Quantized Curve Rotation Z
22 Quantized Curve Scale X
23 Quantized Curve Scale Y
24 Quantized Curve Scale Z