MAB Format - KCreator/Earth-Defence-Force-Documentation GitHub Wiki

Unknown format type, further research required. Found embedded in weapon SGO data.

Notes

Credit to AUK223!

header is 4D414200 0F000000 03000000, length is 0x24
- 0x0C - : UInt16, BoneAdjust amount
- 0x0E - : UInt16, AnimationAdjust amount
- 0x10 - : UInt16, FloatGroup amount
- 0x12 - : UInt16, String block length
- 0x14 - : UInt32, start offset of BoneAdjust block
- 0x18 - : UInt32, start offset of AnimationAdjust block
- 0x1C - : UInt32, start offset of FloatGroup block
- 0x20 - : UInt32, start offset of String block

BoneAdjust, length is 0x08
- 0x00 - : Int16
- 0x02 - : UInt16, BAGroup amount
- 0x04 - : UInt32, start offset of BAGroup. but if 0x02 = 0, the value is pointer to AnimationAdjust block

BAGroup, length is 0x20
- 0x00 - : Exported bone. UInt32, start offset of string.
- 0x04 - : Linked bone. UInt32, start offset of string.
- 0x08 - : UInt32? determine the type of the next three 4-bytes. Prevent accidents, use uint16 + int16.
|-------------------------------------------------------------|
if 0x08 = 0
- 0x0C - : Displacement. UInt32, start offset of FloatGroup.
- 0x10 - : Float
- 0x14 - : Int32
|-------------------------------------------------------------|
if 0x08 = 1
- 0x0C - : Displacement. UInt32, start offset of FloatGroup.
- 0x10 - : Displacement. UInt32, start offset of FloatGroup.
- 0x14 - : Int32
|-------------------------------------------------------------|
if 0x08 = 2
- 0x0C - : Displacement. UInt32, start offset of FloatGroup.
- 0x10 - : UInt32, start offset of FloatGroup.
- 0x14 - : Rotation, Radian. UInt32, start offset of FloatGroup.
|-------------------------------------------------------------|
if 0x08 = 3, maybe the float was used as the int
- 0x0C - : Displacement. UInt32, start offset of FloatGroup.
- 0x10 - : Float
- 0x14 - : Displacement. UInt32, start offset of FloatGroup.
|-------------------------------------------------------------|
if 0x08 = 4
- 0x0C - : Displacement. UInt32, start offset of FloatGroup.
- 0x10 - : Float
- 0x14 - : Displacement. UInt32, start offset of FloatGroup.
|-------------------------------------------------------------|
- 0x18 - : Int32
- 0x1C - : UInt32, start offset of SGO data

FloatGroup, length is 0x10, has 4 floats. X Y Z W

AnimationAdjust, length is 0x10
- 0x00 - : UInt32, start offset of OFGroup1. if 0x0C = 0, it pointer to BABABABA
- 0x04 - : is a offset, but i only see it pointer to BABABABA
- 0x08 - : UInt32, start offset of string.
- 0x0C - : UInt32, OFGroup1 amount

OFGroup1, length is 0x10
- 0x00 - : UInt32, start offset of string.
- 0x04 - : Float, playback time, cannot exceed the maximum animation time.
- 0x08 - : Unknown
- 0x0C - : UInt32, start offset of SGO data.

------------------
Coordinate System
------------------

Y   
|  X
| /
|/____Z

------------------