3D Studio File Format Information (3dsinfo.txt) ----------------------------------------------- by Jochen Wilhelmy a.k.a. digisnap digisnap@cs.tu-berlin.de 06.08.1997 Introduction ============ The information contained in this file is only collected by me. The credits go to the following people (in alphabetical order): Christophe Chabanois (Wolverine / Apocalypse) Jim Pitts Niklas Beisert (Pascal / 4711) I think some more people did a good job in discovering unknown chunks, but I don't know them all. The layout is based on 3dsffo10.txt from Christophe Chabanois. I did not include any source code from this info, because it was of no use to me. I used only the standard character set for compatibility with other operating systems. My own extensions and corrections are: - Corrected the hierarchy levels of some chunks, especially the material editor chunk and the spotlight sub-chunks are at the wrong place in some docs - Documented some spotlight and material sub-chunks - Documented most tracks - Made a consistent layout for all chunk descriptions My reader is written in object oriented C++ and can read the chunks only if they are in the right hierarchy position. It keeps the structure of the 3DS file in memory and does not jam all vertices into one big array. It also can write this structure back to a 3DS file. This gave me the possibility to convert the data of my world-editor into a 3DS file to see where to place the animated objects. If you want to convert a mesh object into a 3DS file, you just need this chunk structure: 0x4D4D Main chunk 0x3D3D 3D editor chunk 0x4000 Object block (with name of your object) 0x4100 Triangular mesh 0x4110 Your vertices 0x4120 Your faces The internal reader of 3DS sets all other things to their defaults. The "auto edge" function is good if you dont't want to set the face flags. Index ===== 1. Fast reference : The chunk tree ---------------------------------- This will help you to find rapidly a chunk number and its description. 2. A chunk - What's that ? -------------------------- This will explain what a chunk is and help programmers understand the general concept of the 3DS file format. 3. Data types ------------- This short section will describe all data types used. 4. Chunks description --------------------- This is the most important part of the document. It describes the chunks. 1. Fast reference : The chunk tree ================================== Color chunks ------------ 0x0010 : Rgb (float) 0x0011 : Rgb (byte) 0x0012 : Rgb (byte) gamma corrected 0x0013 : Rgb (float) gamma corrected Percent chunks -------------- 0x0030 : percent (int) 0x0031 : percent (float) 0x4D4D : Main chunk ------------------- 0x0002 : 3DS-Version 0x3D3D : 3D editor chunk ------------------------ 0x0100 : One unit 0x1100 : Background bitmap 0x1101 : Use background bitmap 0x1200 : Background color 0x1201 : Use background color 0x1300 : Gradient colors 0x1301 : Use gradient 0x1400 : Shadow map bias 0x1420 : Shadow map size 0x1450 : Shadow map sample range 0x1460 : Raytrace bias 0x1470 : Raytrace on 0x2100 : Ambient color 0x2200 : Fog 0x2210 : fog background 0x2201 : Use fog 0x2210 : Fog background 0x2300 : Distance queue 0x2310 : Dim background 0x2301 : Use distance queue 0x2302 : Layered fog options 0x2303 : Use layered fog 0x3D3E : Mesh version 0x4000 : Object block --------------------- 0x4010 : Object hidden 0x4012 : Object doesn't cast 0x4013 : Matte object 0x4015 : External process on 0x4017 : Object doesn't receive shadows 0x4100 : Triangular mesh 0x4110 : Vertices list 0x4120 : Faces description 0x4130 : Faces material list 0x4140 : Mapping coordinates list 0x4150 : Smoothing group list 0x4160 : Local coordinate system 0x4165 : Object color in editor 0x4181 : External process name 0x4182 : External process parameters 0x4600 : Light 0x4610 : Spotlight 0x4627 : Spot raytrace 0x4630 : Light shadowed 0x4641 : Spot shadow map 0x4650 : Spot show cone 0x4651 : Spot is rectangular 0x4652 : Spot overshoot 0x4653 : Spot map 0x4656 : Spot roll 0x4658 : Spot ray trace bias 0x4620 : Light off 0x4625 : Attenuation on 0x4659 : Range start 0x465A : Range end 0x465B : Multiplier 0x4700 : Camera 0x7001 : Window settings 0x7011 : Window description #2 ... 0x7012 : Window description #1 ... 0x7020 : Mesh windows ... 0xAFFF : Material block ----------------------- 0xA000 : Material name 0xA010 : Ambient color 0xA020 : Diffuse color 0xA030 : Specular color 0xA040 : Shininess percent 0xA041 : Shininess strength percent 0xA050 : Transparency percent 0xA052 : Transparency falloff percent 0xA053 : Reflection blur percent 0xA081 : 2 sided 0xA083 : Add trans 0xA084 : Self illum 0xA085 : Wire frame on 0xA087 : Wire thickness 0xA088 : Face map 0xA08A : In tranc 0xA08C : Soften 0xA08E : Wire in units 0xA100 : Render type 0xA240 : Transparency falloff percent present 0xA250 : Reflection blur percent present 0xA252 : Bump map present (true percent) 0xA200 : Texture map 1 0xA33A : Texture map 2 0xA210 : Opacity map 0xA230 : Bump map 0xA33C : Shininess map 0xA204 : Specular map 0xA33D : Self illum. map 0xA220 : Reflection map 0xA33E : Mask for texture map 1 0xA340 : Mask for texture map 2 0xA342 : Mask for opacity map 0xA344 : Mask for bump map 0xA346 : Mask for shininess map 0xA348 : Mask for specular map 0xA34A : Mask for self illum. map 0xA34C : Mask for reflection map Sub-chunks for all maps: 0xA300 : Mapping filename 0xA351 : Mapping parameters 0xA353 : Blur percent 0xA354 : V scale 0xA356 : U scale 0xA358 : U offset 0xA35A : V offset 0xA35C : Rotation angle 0xA360 : RGB Luma/Alpha tint 1 0xA362 : RGB Luma/Alpha tint 2 0xA364 : RGB tint R 0xA366 : RGB tint G 0xA368 : RGB tint B 0xB000 : Keyframer chunk ------------------------ 0xB001 : Ambient light information block 0xB002 : Mesh information block 0xB003 : Camera information block 0xB004 : Camera target information block 0xB005 : Omni light information block 0xB006 : Spot light target information block 0xB007 : Spot light information block 0xB008 : Frames (Start and End) 0xB010 : Object name, parameters and hierarchy father 0xB013 : Object pivot point 0xB015 : Object morph angle 0xB020 : Position track 0xB021 : Rotation track 0xB022 : Scale track 0xB023 : FOV track 0xB024 : Roll track 0xB025 : Color track 0xB026 : Morph track 0xB027 : Hotspot track 0xB028 : Falloff track 0xB029 : Hide track 0xB030 : Hierarchy position 2. A chunk - What's that ? ========================== 1 - What is a chunk ? -------------------- The 3D studio file format is compounded of several "chunks". What is a "chunk" ? Well, that's quite simple. Each chunk contains information : for example, it can contain colors, images ... All tools which use the "chunk" method make file formats like this: 1st chunk 2nd chunk 3rd chunk ... nth chunk 2 - What is a "sub-chunk" ? --------------------------- But, there are several problems with this format : - The data are all at same level (an image is as important as the name of an object ...) - A general concept can't group several things. This is why there are "sub-chunks". In fact, each chunk can contain several sub-chunks : 1st chunk 1st sub-chunk 2nd sub-chunk 2nd chunk 3rd chunk 1st sub-chunk 1st sub-sub-chunk ... Nth chunk 3 - How to read chunks ? ------------------------ This is the representation of a chunk : Offset Length Name 0 2 Chunk-ID 2 4 Chunk-length = 6+n+m 6 n Data 6+n m Sub-chunks So don't forget to read or skip the sub-chunks if the header and data size is less than the chunk-length (6+n < chunk-length). 3. Data types ============= Name Description word 2 byte dword 4 byte float 4 byte floating point number strz zero terminated string (C-string) vector 3 floats (X,Y,Z) BOOLEAN a BOOLEAN chunk acts as a flag and contains no data or sub-chunks degree angle from 0 to 360 degree rad angle from 0 to 2*pi Note: If X and Y are the horizontal plane and Z is the height in your world, you don't have to exchange Y and Z. Some other infos say that you have to exchange Y and Z only in the keyframer chunk, but you have to treat all vectors the same way. 4. Chunks description ===================== ----------------------------------------------------------------------------- Color chunks ------------ These chunks are used several times in the format, they are "global chunks". ----------------------------------------------------------------------------- Chunk # : 0x0010 Name : Rgb color (float format) Level : global chunk Size : 12 Format : float red float green float blue This chunk contains 3 floats : the red, green and blue components of a color. The values range from 0.0 to 1.0 (full intensity). ----------------------------------------------------------------------------- Chunk # : 0x0011 Name : Rgb color (byte format) Level : global chunk Size : 3 Format : byte red byte green byte blue This chunk contains 3 bytes : the red, green and blue components of a color. The values range from 0 to 255 (full intensity). ----------------------------------------------------------------------------- Chunk # : 0x0012 Name : Rgb color gamma corrected (byte format) Level : global chunk Size : 3 Format : byte red byte green byte blue This chunk contains 3 bytes : the red, green and blue components of a gamma corrected color. The values range from 0 to 255 (full intensity). ----------------------------------------------------------------------------- Chunk # : 0x0013 Name : Rgb color gamma corrected (float format) Level : global chunk Size : 12 Format : float red float green float blue This chunk contains 3 floats : the red, green and blue components of a gamma corrected color. The values range from 0.0 to 1.0 (full intensity). ----------------------------------------------------------------------------- Percent chunks -------------- ----------------------------------------------------------------------------- Chunk # : 0x0030 Name : percent (int format) Level : global chunk Size : 2 Format : word percent This chunk contains a word. The values range from 0 to 100. ----------------------------------------------------------------------------- Chunk # : 0x0031 Name : percent (float format) Level : global chunk Size : 4 Format : float percent This chunk contains a float. The values range from 0 to 100. ============================================================================= M A I N C H U N K ================== ============================================================================= Chunk # : 0x4D4D Name : Main chunk Level : 0 Size : 0 + sub-chunks Father : none Format : ----------------------------------------------------------------------------- Chunk # : 0x0002 Name : 3DS-Version Level : 1 Size : 4 Father : 0x4D4D (Main chunk) Format : dword Version This dword specifies the number of your 3DS-Version. ============================================================================= 3 D E D I T O R C H U N K =========================== ============================================================================= Chunk # : 0x3D3D Name : 3D Editor chunk Level : 1 Size : 0 + sub-chunks Father : 0x4D4D (Main chunk) Format : ----------------------------------------------------------------------------- Chunk # : 0x0100 Name : One unit Level : 2 Size : 4 Father : 3D Editor chunk Format : float One unit ----------------------------------------------------------------------------- Chunk # : 0x1100 Name : Background bitmap Level : 2 Size : varying Father : 3D Editor chunk Format : strz Name This chunk contains the name of the background bitmap choosen in 3DS even if not used (i.e. you have selected a bitmap but you choose another thing). ----------------------------------------------------------------------------- Chunk # : 0x1101 Name : Use background bitmap Level : 2 Size : 0 Father : 3D Editor chunk Format : BOOLEAN This chunk is a flag indicating that the background bitmap (see chunk 0x1100) is used. When this chunk is not present, the background bitmap is not used. ----------------------------------------------------------------------------- Chunk # : 0x1200 Name : Background color Level : 2 Size : 0 + sub-chunks Father : 3D Editor chunk Format : This chunk contains the color of the background even if not used. You must read the color sub-chunks. Generaly, the format is : - Background color chunk (0x1200) - RGB float color chunk (0x0010) - RGB float gamma corected color chunk (0x0013) ----------------------------------------------------------------------------- Chunk # : 0x1201 Name : Use background color Level : 2 Size : 0 Father : 3D Editor chunk Format : BOOLEAN This chunk is a flag indicating that the background color (see chunk 0x1200) is used. When this chunk is not present, the background color is not used. ----------------------------------------------------------------------------- Chunk # : 0x1300 Name : Background gradient colors Level : 2 Size : 4 + sub-chunks Father : 3D Editor chunk Format : float Gradient position color chunk RGBF1 color chunk RGBFG1 color chunk RGBF2 color chunk RGBFG2 color chunk RGBF3 color chunk RGBFG3 RGBF = RGB float color CHUNK RGBFG = RGB gamma corrected float color CHUNK So, if hexa you have something like that 00 13 76 00 00 00 21 CE 4A 3F 10 00 12 00 00 00 ..... * 00 13 is the chunk ID (0x1300) and 76 00 00 00 is the length of this chunk. * 21 CE 4A 3F are values which contain the "position" of the three gradient colors. It's a float (from 0.0 to 1.0) indicating the position of the middle color. * 10 00 is the chunk ID (0x0010) of a rgb float color and 12 00 00 00 is the length of this sub-chunk. ----------------------------------------------------------------------------- Chunk # : 0x1301 Name : Use background gradient colors Level : 2 Size : 0 Father : 3D Editor chunk Format : BOOLEAN This chunk is a flag indicating that the background gradient colors (see chunk 0x1300) are used. When this chunk is not present, the gradient colors are not used. ----------------------------------------------------------------------------- Chunk # : 0x1400 Name : Shadow map bias Level : 2 Size : 4 Father : 3D Editor chunk Format : float Shadow map bias ----------------------------------------------------------------------------- Chunk # : 0x1420 Name : Shadow map size Level : 2 Size : 2 Father : 3D Editor chunk Format : word Shadow map size ----------------------------------------------------------------------------- Chunk # : 0x1450 Name : Shadow map sample range Level : 2 Size : 4 Father : 3D Editor chunk Format : float Shadow map sample range ----------------------------------------------------------------------------- Chunk # : 0x1460 Name : Raytrace bias Level : 2 Size : 4 Father : 3D Editor chunk Format : float Raytrace bias ----------------------------------------------------------------------------- Chunk # : 0x1470 Name : Use raytrace Level : 2 Size : 0 Father : 3D Editor chunk Format : BOOLEAN This chunk is a flag indicating that raytrace (see chunk 0x1460) is used. When this chunk is not present, the raytrace is not used. ----------------------------------------------------------------------------- Chunk # : 0x2100 Name : Ambient color Level : 2 Size : 0 + sub-chunk Father : 3D Editor chunk Format : This chunk contains a color chunk (in general RGB float) ----------------------------------------------------------------------------- 0x4000 : OBJECT BLOCK --------------------- ----------------------------------------------------------------------------- Chunk # : 0x4000 Name : OBJECT BLOCK Level : 2 Size : varying + sub-chunks Father : 0x3D3D (3D Editor chunk) Format : strz Object name ----------------------------------------------------------------------------- Chunk # : 0x4010 Name : Object hidden Level : 3 Size : 0 Father : 0x4000 (Object block) Format : BOOLEAN ----------------------------------------------------------------------------- Chunk # : 0x4012 Name : Object doesn't cast Level : 3 Size : 0 Father : 0x4000 (Object block) Format : BOOLEAN ----------------------------------------------------------------------------- Chunk # : 0x4013 Name : Matte object Level : 3 Size : 0 Father : 0x4000 (Object block) Format : BOOLEAN ----------------------------------------------------------------------------- Chunk # : 0x4015 Name : External process on Level : 3 Size : 0 Father : 0x4000 (Object block) Format : BOOLEAN ----------------------------------------------------------------------------- Chunk # : 0x4017 Name : Object doesn't receive shadows Level : 3 Size : 0 Father : 0x4000 (Object block) Format : BOOLEAN ----------------------------------------------------------------------------- 0x4100 : Triangular mesh ------------------------ ----------------------------------------------------------------------------- Chunk # : 0x4100 Name : Triangular Mesh Level : 3 Size : 0 + sub-chunks Father : 0x4000 (Object block) Format : ----------------------------------------------------------------------------- Chunk # : 0x4110 Name : Vertices list Level : 4 Size : varying Father : 0x4100 (Triangular mesh) Format : word Number of vertices Then, for each vertex vector Position ----------------------------------------------------------------------------- Chunk # : 0x4120 Name : Faces description Level : 4 Size : varying + sub-chunks Father : 0x4100 (Triangular mesh) Format : word Number of faces Then, for each face: word Vertex for corner A (number reference) word Vertex for corner B (number reference) word Vertex for corner C (number reference) word Face flag * bit 0 : CA visible * bit 1 : BC visible * bit 2 : AB visible After datas, parse sub-chunks (0x4130, 0x4150). ----------------------------------------------------------------------------- Chunk # : 0x4130 Name : Faces material list Level : 5 Size : varying Father : 0x4120 (Faces description) Format : strz Material name word Number of entries Then, for each entry: word Face assigned to this material (number reference) I think the faces of one object can have different materials. Therefore, this chunk can be present more than once. ----------------------------------------------------------------------------- Chunk # : 0x4140 Name : Mapping coordinates list for each vertex Level : 4 Size : varying Father : 0x4100 (Triangular mesh) Format : word Number of vertices Then, for each vertex float U coordinate float V coordinate ----------------------------------------------------------------------------- Chunk # : 0x4150 Name : Smoothing groups list Level : 5 Size : Father : 0x4120 (Faces description) Format : ----------------------------------------------------------------------------- Chunk # : 0x4160 Name : Local coordinate system Level : 4 Size : 48 Father : 0x4100 (Triangular mesh) Format : vector X1 vector X2 vector X3 vector O X1, X2 and X3 represent the axes, O the origin. ----------------------------------------------------------------------------- Chunk # : 0x4165 Name : Object color in 3D Editor Level : 4 Size : 1 Father : 0x4100 (Triangular mesh) Format : byte Color ----------------------------------------------------------------------------- Chunk # : 0x4600 Name : Light Level : 3 Size : 12 + sub-chunks Father : 0x4000 (Object block) Format : vector Position ----------------------------------------------------------------------------- Chunk # : 0x4610 Name : Spotlight Level : 4 Size : 20 + sub-chunks Father : 0x4600 (Light) Format : vector Target float HotSpot float FallOff If this chunk is found, the light is a spot light and not an omni directional light. ----------------------------------------------------------------------------- Chunk # : 0x4651 Name : Spot is rectangular Level : 5 Size : 0 Father : 0x4610 (Spotlight) Format : BOOLEAN ----------------------------------------------------------------------------- Chunk # : 0x4653 Name : Spot map Level : 5 Size : varying Father : 0x4610 (Spotlight) Format : strz Filename ----------------------------------------------------------------------------- Chunk # : 0x4656 Name : Spot roll Level : 5 Size : 4 Father : 0x4610 (Spotlight) Format : float Roll (degree) ----------------------------------------------------------------------------- Chunk # : 0x4700 Name : CAMERA Level : 3 Size : 32 Father : 0x4000 (Object block) Format : vector Position vector Target float Bank (degree) float Lens ----------------------------------------------------------------------------- Chunk # : 0x7001 Name : Window settings Level : 2 Size : varying Father : 0x3D3D (3D editor chunk) Format : ----------------------------------------------------------------------------- Chunk # : 0x3D3E Name : Mesh version Level : 2 Size : 4 Father : 0x3D3D (3D editor chunk) Format : dword Version ----------------------------------------------------------------------------- 0xAFFF : Material block ----------------------- ----------------------------------------------------------------------------- Chunk # : 0xAFFF Name : Material editor chunk Level : 2 Size : 0 + sub-chunks Father : 0x3D3D (3D editor chunk) Format : ----------------------------------------------------------------------------- Chunk # : 0xA000 Name : Material name Level : 3 Size : varying Father : 0xAFFF (Material block) Format : strz Material name ----------------------------------------------------------------------------- Chunk # : 0xA010 Name : Material ambient color Level : 3 Size : 0 + sub-chunks Father : 0xAFFF (Material block) Format : This chunk contains color chunks (in gen. rgb byte & rgb byte gamma) ----------------------------------------------------------------------------- Chunk # : 0xA020 Name : Material diffuse color Level : 3 Size : 0 + sub-chunks Father : 0xAFFF (Material block) Format : This chunk contains color chunks (in gen. rgb byte & rgb byte gamma) ----------------------------------------------------------------------------- Chunk # : 0xA030 Name : Material specular color Level : 3 Size : 0 + sub-chunks Father : 0xAFFF (Material block) Format : This chunk contains color chunks (in gen. rgb byte & rgb byte gamma) ----------------------------------------------------------------------------- Chunk # : 0xA040 Name : Material shininess percent Level : 3 Size : 0 + sub-chunk Father : 0xAFFF (Material block) Format : This chunk contains a percent chunk (in gen. int format) ----------------------------------------------------------------------------- Chunk # : 0xA041 Name : Material shininess strength percent Level : 3 Size : 0 + sub-chunk Father : 0xAFFF (Material block) Format : This chunk contains a percent chunk (in gen. int format) ----------------------------------------------------------------------------- Chunk # : 0xA200 - 0xA34C Name : Map Level : 3 Size : 0 + sub-chunk Father : 0xAFFF (Material block) Format : These chunks define the different maps (see chunk tree). They contain the sub-chunks for all maps, such as mapping filename name or U/V scale. ----------------------------------------------------------------------------- Chunk # : 0xA300 Name : Mapping filename Level : 4 Size : varying Father : 0xA200 - 0xA34C (Map) Format : strz Filename ----------------------------------------------------------------------------- Chunk # : 0xA354 Name : V scale Level : 4 Size : 4 Father : 0xA200 - 0xA34C (Map) Format : float V scale ----------------------------------------------------------------------------- Chunk # : 0xA356 Name : U scale Level : 4 Size : 4 Father : 0xA200 - 0xA34C (Map) Format : float U scale ----------------------------------------------------------------------------- Chunk # : 0xA358 Name : U offst Level : 4 Size : 4 Father : 0xA200 - 0xA34C (Map) Format : float U offset ----------------------------------------------------------------------------- Chunk # : 0xA35A Name : V offst Level : 4 Size : 4 Father : 0xA200 - 0xA34C (Map) Format : float V offset ----------------------------------------------------------------------------- Chunk # : 0xA35A Name : Rotation angle Level : 4 Size : 4 Father : 0xA200 - 0xA34C (Map) Format : float Rotation angle ----------------------------------------------------------------------------- K E Y F R A M E R C H U N K ------------------------------ ----------------------------------------------------------------------------- Chunk # : 0xB000 Name : Keyframer Level : 1 Size : 0 + sub-chunks Father : 0x4D4D (Main chunk) Format : The goal of the keyframer datas is to describe the move of - The objects in the scene (like a cube ...) - The lights (ambient, omni or spot) - The cameras ----------------------------------------------------------------------------- Chunk # : 0xB001..0xB007 Name : Information block Level : 2 Size : 0 + sub-chunks Father : 0xB000 (Keyframer chunk) Format : The information block is a chunk constituted of sub-chunks describing the move of a particular object, or camera: 0xB001 : Ambient light information block 0xB002 : Mesh information block 0xB003 : Camera information block 0xB004 : Camera target information block 0xB005 : Omni light information block 0xB006 : Spot light target information block 0xB007 : Spot light information block ----------------------------------------------------------------------------- Chunk # : 0xB008 Name : Frames (Start and End) Level : 2 Size : 8 Father : 0xB000 (Keyframer chunk) Format : dword Start dword End ----------------------------------------------------------------------------- Chunk # : 0xB010 Name : Object name, parameters and hierarchy father Level : 3 Size : varying Father : 0xB001..0xB007 Information block Format : strz Object Name word Flag1 * Bit 11 : Hidden word Flag2 * Bit 0 : Show path * Bit 1 : Animate smoothing * Bit 4 : Object motion blur * Bit 6 : Morph materials word Hierarchy father, link to the parent object (-1 for none) ----------------------------------------------------------------------------- Chunk # : 0xB013 Name : Object pivot point Level : 3 Size : 12 Father : 0xB001..0xB007 Information block Format : vector Pivot point ----------------------------------------------------------------------------- Chunk # : 0xB020..0xB029 Name : Track Level : 3 Size : varying Father : 0xB001..0xB007 Information block Format : word Flag * Bits 0-1 : 0 = single 2 = repeat 3 = loop * Bit 3 : lock X * Bit 4 : lock Y * Bit 5 : lock Z * Bit 7 : unlink X * Bit 8 : unlink Y * Bit 9 : unlink Z 8 byte Unknown dword Number of keys in this track Then, for each key: dword Key number (position in track) word Acceleration data present (flag) Range: * Bit 0 : Tension follows [-1.0, 1.0] * Bit 1 : Continuity follows [-1.0, 1.0] * Bit 2 : Bias follows [-1.0, 1.0] * Bit 3 : Ease to follows [ 0.0, 1.0] * Bit 4 : Ease from follows [ 0.0, 1.0] n floats Acceleration data ? Track specific data Track specific data is: 0xB020 : Position track : 1 vector Position 0xB021 : Rotation track : 1 float Angle (rad) 1 vector Axis 0xB022 : Scale track : 3 floats Size 0xB023 : FOV track : 1 float Angle (degree) 0xB024 : Roll track : 1 float Angle (degree) 0xB025 : Color track : 0xB026 : Morph track : 1 strz Object name 0xB027 : Hotspot track : 1 float Angle (degree) 0xB028 : Falloff track : 1 float Angle (degree) 0xB029 : Hide track : nothing ----------------------------------------------------------------------------- Chunk # : 0xB030 Name : Hierarchy position Level : 3 Size : 2 Father : 0xB001..0xB007 Information block Format : word Hierarchy This word contains a unique value for the object and is used for the hierarchy tree links. -----------------------------------------------------------------------------