LBA2:3D model: Difference between revisions

From LBA File Information
Jump to navigation Jump to search
[unchecked revision][checked revision]
Content deleted Content added
Xesf (talk | contribs)
Updating format fields
 
(5 intermediate revisions by 3 users not shown)
Line 12: Line 12:
<pre>
<pre>
[ Header ]
[ Header ]
00: ?? ??
00: s32 bodyFlag
08: s32 xMin
0C: s32 xMax
10: s32 yMin
14: s32 yMax
18: s32 zMin
1C: s32 zMax
20: u32 Number of bones
20: u32 Number of bones
24: u32 Offset to bones
24: u32 Offset to bones
Line 43: Line 49:
04: s16 z
04: s16 z
06: u16 Bone
06: u16 Bone
Vertex position is relative to its bone position.
And each bone position itself is relative to its parent bone position
[ / Vertex ]
[ / Vertex ]


Line 59: Line 67:
[ / Unknown1 ]
[ / Unknown1 ]


[ Polygon ]
[ Polygon section ]
Polygon section is made of one or more blocks. Each blocks can describe one or more Polygon.
00: u16 flag (Use Texture/Is Transparency)
[ Polygon Block]
02: u16 Number of polygons
00: u8 Block ID
04: u16 Size of data
01: u8 00h For triangle and 80h for Quad
06: u16 ??
Read (size - 8) * (number of polygons)
02: u16 Number of polygons
04: u16 Size of data (including this header)
That data contains polygons and colour information
06: u16 ??
[ / Polygon ]
Each polygon is described with ((size of data - 8) / Number of polygons) bytes :
[ Polygon ]
the 12 firsts bytes are mandatory :
00: u16 1st point ID
02: u16 2nd point ID
04: u16 3rd point ID
06: u16 4th point ID (only if Quad)
08: u8 colour ID
09: u8 ??
0A: u8 ??
0B: u8 ??
If the polygon is described with more than 12 bytes
from 0Ch to 2BH, UV info for texture mapping:
0C: u8 ??
0D: u8 U1
0E: u8 ??
0F: u8 V1
10: u8 ??
11: u8 U2
12: u8 ??
13: u8 V2
14: u8 ??
15: u8 U3
16: u8 ??
17: u8 V3
18: u8 ??
19: u8 U4
2A: u8 ??
2B: u8 V4
If the polygon is described with more than 24 bytes : ??
[ / Polygon]
[ / Polygon Block]
[ / Polygon section ]


[ Lines ]
[ Lines ]
Line 77: Line 118:
[ Sphere ]
[ Sphere ]
00: u16 ??
00: u16 ??
02: u16 colour
02: u8 ??
03: u8 colour
04: u16 vertex
04: u16 vertex
06: u16 size (needs to be devided by 0x4000)
06: u8 size
07: u8 ??
[ / Sphere ]
[ / Sphere ]


Line 89: Line 132:
[ / Textures ]
[ / Textures ]
</pre>
</pre>
{{providers|[[provider::alexfont]]}}
{{providers|[[provider::xesf]]}}

Latest revision as of 09:12, 7 November 2020

3D model
Extension

LM2

Occurence

LBA2

Colour
Programs supporting this format

(none)

References

Find entries of this type

LM2 files contain 3D models used for Actors and other objects in LBA2.

Specification[edit]

[ Header ]
00:	s32	bodyFlag
08:	s32	xMin
0C:	s32	xMax
10:	s32	yMin
14:	s32	yMax
18:	s32	zMin
1C:	s32	zMax
20:	u32	Number of bones
24:	u32	Offset to bones
28:	u32	Number of vertices
2C:	u32	Offset to vertices
30:	u32	Number of normals
34:	u32	Offset to normals
38:	u32	Number of unknown1
3C:	u32	Offset to unknown1
40:	u32	Number of polygons
44:	u32	Offset to polygons
48:	u32	Number of lines
4C:	u32	Offset to lines
50:	u32	Number of spheres
54:	u32	Offset to spheres
58:	u32	Number of textures
5C:	u32	Offset to textures
[ / Header ]

[ Bone ]
00:	u16	Parent bone
02:	u16	Vertex
04:	u16	??
06:	u16	??
[ / Bone ]

[ Vertex ]
00:	s16	x
02:	s16	y
04:	s16	z
06:	u16	Bone
Vertex position is relative to its bone position.
And each bone position itself is relative to its parent bone position
[ / Vertex ]

[ Normal ]
00:	s16	x
02:	s16	y
04:	s16	z
06:	u16	??
[ / Normal ]

[ Unknown1 ]
00:	u16	??
02:	u16	??
04:	u16	??
06:	u16	??
[ / Unknown1 ]

[ Polygon section ]
Polygon section is made of one or more blocks. Each blocks can describe one or more Polygon.
	[ Polygon Block]
	00:	u8	Block ID
	01:	u8	00h For triangle and 80h for Quad
	02:	u16	Number of polygons
	04:	u16	Size of data (including this header)
	06:	u16	??
	Each polygon is described with ((size of data - 8) / Number of polygons) bytes :
		[ Polygon ]
		the 12 firsts bytes are mandatory :
		00:	u16	1st point ID
		02:	u16	2nd point ID
		04:	u16	3rd point ID
		06:	u16	4th point ID (only if Quad)
		08:	u8	colour ID
		09:	u8	??
		0A:	u8	??
		0B:	u8	??
		If the polygon is described with more than 12 bytes
		from 0Ch to 2BH, UV info for texture mapping:
		0C:	u8	??
		0D:	u8	U1
		0E:	u8	??
		0F:	u8	V1
		10:	u8	??
		11:	u8	U2
		12:	u8	??
		13:	u8	V2
		14:	u8	??
		15:	u8	U3
		16:	u8	??
		17:	u8	V3
		18:	u8	??
		19:	u8	U4
		2A:	u8	??
		2B:	u8	V4
		If the polygon is described with more than 24 bytes : ??
		[ / Polygon]
	[ / Polygon Block]
[ / Polygon section ]

[ Lines ]
00:	u16	??
02:	u16	colour
04:	u16	vertex1
06:	u16	vertex2
[ / Unknown2 ]

[ Sphere ]
00:	u16	??
02:	u8	??
03:	u8	colour
04:	u16	vertex
06:	u8	size
07:	u8	??
[ / Sphere ]

[ Textures ]
00:	u8	x
01:	u8	y
02:	u8	w
03:	u8	h
[ / Textures ]

Information provided by: xesf