Directors Cut Wiki : FlmFormat

DirectorsCutModdingFoundry Categories PageIndex RecentChanges RecentlyCommented Login/Register
Trail: ExtraInfoFiles FaceIDs FacialAnimations FileFormat FileFormats Flags3 FlmExtras FlmFormat

The Movies .flm Format


The Main Header of the Lionhead flm File is 60 bytes, then there are dynamic sections based upon various values in the first 60 bytes. Technically, I suppose the first four bytes give the entire length of this header, but I have divided up the dynamic sections for ease of interpretation.

This is the way I broke down the flm file format into following Sections:

Main Header:


The first part is a fixed-size of 60 Bytes. It contains all the significant information for the rest of the file.
Refer to the FlmMainHeader page to read more technical details.

Extras Section


This section's number of elements is determined by the Extra Count in the Main Header. The data is the Text Element Index, starting at zero for the first Text Element. Usually the Text Elements for extras are named "023_x_A" which relates to a flm file, without the .flm extension. Any flm file from any set *can* be used, but unpredictable results happen. If the count is zero, there is no data in this section.

Offset Type Size (bytes) Field Name Description Typical Values
0x000 Int32 4 Extra TE contains the TextElement Index for a flm file name for an Extra to perform  



Pyrotechnics Section


This section's number of elements is determined by the byte (12) in the Main header. The data is the Text Element Index. This only appears in a handful of flm files, and where there is one, there is always only one entry. Usually the Text Element is named 'environmental_pyrotechnics' or 'rig_crane'. If the header byte is zero, there is no data in this section.

Each entry is :
Offset Type Size (bytes) Field Name Description Typical Values
0x000 Int32 4 PyroTE contains the TextElement Index for a TE that says 'environmental_pyrotechnics' or 'rig_crane'. May be to indicate whether specialized crew is required and/or indicate usage of LotView props like the camera dolly.  



Genres Section


This section's number of elements is determined by the byte (11) in the Main Header. The data is the Text Element Index relating to the Genre named by the Text Element. If the Header byte is zero, there is no data in this section.

Each entry is:

Int32 (4 bytes) - contains the TextElement Index for a genre. Seems to indicate a genre.ini in the genre data folder.



TextElementOffset Section


This section's number of elements is determined by the byte (13) in the Main Header. The data is a list of offsets from this section's start to the end of each TextElement. The first entry is the size in bytes of the entire section, followed by a list of offsets. Or another way to think about it is that the difference between the current TEO (TextElementOffset) and the next, is the length in characters of the corresponding string at the same Index position in the next section -- the TextElement section.

Each entry is:

Int32 (4 bytes) - contains the offset from the start of this section to the end of the corresponding TextElement.



TextElement Section


This section's number of elements is the same as the previous, and is determined by the byte (13) in the Main Header. The data is a list of null-terminated strings (ending with Chr(0)) describing the list of various elements comprising the flm animation. There are so many different aspects in every animation, and this section reflects that. The order fo their appearance, if there is one, is unknown at this time. Their Indexes are derived from their position in the list, with zero as the first.

* The first few entries seem to be for housekeeping for the game engine, like 'endshoot', 'ai_ended_by_user' ,'ai_actor_mood', 'ai_director_mood'.
* The next are where slider definitions appear, first the slider name like 'sld_beating', then the LHTS stringname from the game's string database, representing the text of the actual choices, like 'FLT_ACTION_AGGRESSIVE.' There is an entry for each slider position. The individual slider's position count and TextElement index are defined in a later section.
* Following the sliders are usually three entries required for a film. 'action', 'take_end' and 'cut'. Their Indexes get stored in the Direction section.
* There is always an entry for 'dummy_extra.'
* Files can have an entry for their Genre defined, such as 'genre_action'. Refers to an ini file in the Genres directory.
* Files can have a costume defined here. It appears to refer to an ini file in the Costume directory.
* The various .anm and .seq files that comprise the animation are usually next. Depending upon the scene slider's choices, the first batch might relate to the first actor's animations when the slider is in the first position, followed by the second actor when the slider is in the first position, and so on. Some might refer to the actions taken by crew or actors if you were watching the scene being filmed in-game, rather than in the AMM. The actual order and placement still is unknown.
* Files can have a 'fclexp' entry for facial expressions.
* Files can have a 'mumble' and 'mumble_off' entry.
* Files can have a 'playsnd' entry that refers to a sound in an .sfx file, and the positional coordinates of that sound
* Files can have props and metaprops defined here. Refers to an ini file in the Props directory.
* Files can have other .flm files for the extras to perform defined here. Their Indexes are stored in the Extras section. Usually in the form of '020_x_B_smoke' without the .flm extension
* The last entry is usually the .flm file for the crew animation you would see if you were to watch the scene filmed from Lot View. Includes .flm extension.
* In a handful of files, there is an entry '[shot:xxx]'. Unknown purpose.

[A separate wikipage might be better suited for defining what these are and what they do, as they become known.]

The last element is padded with nulls to the next 4-byte boundary.

Each entry is:

Char (varying length) Null-terminated - A string representing the name of an element of the animation.


Direction Section


This section's number of elements comes from the byte in the Main Header. Each element is a reference to the TextElement for 'action', 'cut', 'take_end' and 'dummy_extra'.

Each entry is:

Int32 (4 bytes) - The Index of the corresponding TextElement
Int16 (2 bytes) - 256 or 257.
Int16 (2 bytes) - Usually 0. Also might be two single bytes. Not sure at this time.



Sliders Section


This section contains the slider definitions. The number of entries is partially controlled by MainHeader Loc 14. If it is zero, there is no data in this section. Header 14 determines how many TextElements will be read. How the section is defined is dependent upon the data in TextElements. Each element corresponds with a TextElement, starting at the first one. Unless the TE starts with 'sld_', the value is 0 (or should be...I think there is actually an error in LH's definition for 015_subway_entrance.flm!). If the TE data starts with 'sld_', then the data is the Slider Pos Count. The next Sliders elements (to Slider Pos Count) are the TE indexes that relate to the positions of that slider, which are LHTS string database identifiers. All elements are Int32s. I believe the TE's that aren't sliders in this section, are actually variable names used by the AMM.

For example, from 037_miniature_saucer.flm:
TE VALUE SLIDER DATA NOTES
endshoot 0
ai_ended_by_user 0
ai_director_mood 0
ai_actor_mood 0
ai_crew_speed 0
sld_duration 3 count of Slider Positions
FLT_TIME_SHORT 7 Value is the TE index for FLT_TIME_SHORT
FLT_TIME_MEDIUM 8 Value is the TE Index
FLT_TIME_LONG 9 Value is the TE Index
sld_scifi_miniature 2 count of Slider Positions
FLT_MINIATURE_SCIFI_FLYING 10 Value is the TE Index
FLT_MINIATURE_SCIFI_TURBULENCE 11 Value is the TE Index


EndBlock Section


This section contains Int32s all with the value of -1, count determined by MainHeader Loc 14.

Types Sections


The following sections from here to the end of the file are one of 10 types (0 through 9). Each type has its own structure. Some of the structures are fixed size, some are variable. What they control and how they are inter-linked is still mostly unknown at the moment. They control the parameters of the scene, such as camera position, actor position, timing, etc.
Each starts with the same format: an Int32 for the Type, an Int32 for the size of the structure, an Int32 for the ID of the section.

* Type 0, May control extras ?

0: Int32 (4 byte) - Type of this section. [0]
1: Int32 (4 byte) - Size of this section. [72 minimum, 76-120]
2: Int32 (4 Byte) - SectionID. A unique ID for this section.
3: Int32 (4 Byte) - Unknown. [0,1,2] Actor?
4: Single (4 byte) - X position ?
5: Single (4 byte) - Y position ?
6: Single (4 byte) - Z position ?
7: Single (4 byte) - Rotation or Scale ?
8-1: Byte (1 Byte) - RawRefcount ( if > 1, then Refcount is this value -1, otherwise 0)
8-x: Byte (3 Byte) - Padding
9: Int32 (4 Byte) - # of Oversize Int32's after fixed portion, set 1
10: Int32 (4 Byte) - # of Oversize Int32's after fixed portion, set 2. [0,1,2]
[2 in 007_dying_wish, 013_drink_alone ] [5 in 020_rom_chase]...
11: Int32 (4 Byte) - Unknown. [-1,0,1-2500]
12: Int32 (4 Byte) - Unknown. [Usually 0] [1-110]
13: Int32 (4 Byte) - [Always 0]
14: Int32 (4 Byte) - [Always 0]
15: Int32 (4 Byte) - Reference to next item's SectionID. [Or -1 for the end ?]
16: Int32 (4 Byte) - [-1, 0-759 ?]
17: Int32 (4 Byte) - [Usually 200] May relate to display size of block in LH's Original Editor ?
[0 in 015_drive_by] [701 in 009_diplomat, 009_political_speech]
[791 in 009_diplomat, 009_political_speech]

Location 8-1 controls the count of the following data:
Int32 (4 byte) - Reference to another Type's SectionID [or -1]
Int32 (4 byte) - [-1,0,1]
Int32 (4 byte) - [Usually 120]

Oversize set 1: Location 9 controls the count of the following data
OvrX: Int32 (4 byte) - Reference to another Type's SectionID

Oversize set 2: Location 10 controls the count of the following data
OvrX: Int32 (4 byte) - Reference to another Type's SectionID





* Type 1, Varying size (minimum 84 bytes) - Controls actor positions.

0: Int32 (4 byte) - Type of this section. [1]
1: Int32 (4 byte) - Size of this section. [84-112]
2: Int32 (4 Byte) - SectionID. A unique ID for this section.
3: Int32 (4 byte) - Unknown. [0-2]. Actor ?
4: Single (4 byte) - X position
5: Single (4 byte) - Y position
6: Single (4 byte) - Z position
7: Single (4 byte) - Rotation around Z. -0.7169123 = 180 degrees reversed
8: Byte (1 byte) - Controls count of first set of Oversize data. 1= No oversize set, 2=1 oversize set,
3=2 oversize sets etc [1-4, 6]
9: Byte (1 byte) - Unknown [0,1,2,4,5]
10: Byte (1 byte) - Unknown [0,1]
11: Byte (1 byte) - [Always 0]
12: Int32 (4 byte) - Controls count of second set of Oversize Data [0-4]
13: Int32 (4 byte) - Controls count of third set of Oversize Data [0-6]
14: Int32 (4 byte) - Unknown. [-1,0,1-55,60-66, etc]
15: Int32 (4 byte) - Unknown. [0-30,32-33,35,40,48,50,55,60,65,75]
16: Int32 (4 byte) - Unknown. [0,1,2,4,8,16,32,64,128,256]
17: Int32 (4 byte) - [always 0]
18: Int32 (4 byte) - TextElement Index actor will perform.
19: Int32 (4 byte) - Unknown. [-1,0,1,2,3,4]
20: Int32 (4 byte) - Unknown. [-1,7,13,21,25,26,30]
21: Int32 (4 byte) - Reference to another Type's SectionID.
22: Int32 (4 byte) - Unknown. [-1,0,1,23]
23: Int32 (4 byte) - Unknown. [Usually 200] [104-1000]

Location 8 controls the count of the following data:
Int32 (4 byte) - Reference to another Type's SectionID [or -1]
Int32 (4 byte) - [-1,0,1]
Int32 (4 byte) - [Usually 120]

Location 12 controls the count of the following data:
Int32 (4 byte) - Reference to another Type's SectionID

Location 13 controls the count of the following data:
Int32 (4 byte) - Reference to another Type's SectionID





* Type 2, Varying size (Minimum 132 bytes), Controls motion, such as walk/jog movement cycles through up to two waypoints, or linear tweened movement from Start point to End point while rotating actor to point at up to two points (rotation around Z axis only)

0: Int32 (4 byte) - Type of this section. [2]
1: Int32 (4 byte) - Size of this section. Usually 132, can be up to 152.
2: Int32 (4 Byte) - SectionID. A unique ID for this section.
3: Int32 (4 byte) - Unknown. [0,1,2]
4: Single (4 byte) - Starting X position of actor when viewed from Lot view
5: Single (4 byte) - Starting Y position of actor when viewed from Lot view
6: Single (4 byte) - Starting Z position of actor when viewed from Lot view -- Unused ?, actor drops to floor
7: Single (4 byte) - Starting Rotation of actor when viewed from Lot view
8: Byte (1 byte) - Controls Oversize1 [1,2] 2 control oversize of specific type
9: Byte (1 byte) - Unknown [0,1]
10: Byte: (1 byte) - [Always 0]
11: Byte: (1 byte) - [Always 0]
9: Int32 (4 byte) - Controls Oversize2 [0,1,2,3,4]
10: Int32 (4 byte) - Controls Oversize3 [0,1,2,3,4]
11: Int32 (4 byte) - [Always 0]
12: Int32 (4 byte) - [Always 0]
13: Int32 (4 byte) - [Always 0]
14: Single (4 byte) - [Usually 0] Only non-zero on ai_birds_crew_facility.flm and ai_birds_gate.flm
15: Single (4 byte) - X position of Waypoint 1 (Start Position)
16: Single (4 byte) - Y position of Waypoint 1 (Start Position)
17: Single (4 byte) - Z Position of Waypoint 1 (Start Position) -- Unused ?, actor drops to floor
18: Single (4 byte) - X position of Waypoint 2
19: Single (4 byte) - Y position of Waypoint 2
20: Single (4 byte) - Z Position of Waypoint 2 -- Unused ?, actor drops to floor
21: Single (4 byte) - X position of Waypoint 3
22: Single (4 byte) - Y position of Waypoint 3
23: Single (4 byte) - Z Position of Waypoint 3 -- Unused ?, actor drops to floor
24: Single (4 byte) - X position of Waypoint 4 (End Position)
25: Single (4 byte) - Y position of Waypoint 4 (End Position)
26: Single (4 byte) - Z Position of Waypoint 4 (End Position) -- Unused ?, actor drops to floor
27: Single (4 byte) - Duration (Not used during Tweening)
28: Int32 (4 byte) - TextElement Index that Actor will perform.
Must be a 'walk' animation unless using Tweening, see next.
29: Int32 (4 byte) - [0 or 1] Flag for Tweening. Will travel from Start to End while pointing at Waypoints.
Duration of transition is default length of TextElement Animation
30: Int32 (4 byte) - Reference to another Type's SectionID.
31: Int32 (4 byte) - Unknown. [0,1,-1]
32: Int32 (4 byte) - Unknown. [Usually 200] Can range up to 1000

Oversize1
Value of Loc 8 = 2 there is a section of following data:
Int32 (4 byte) - Reference to another Type's SectionID.
Int32 (4 byte) - [0,1]
Int32 (4 byte) - [200]

Loc 9 controls count of Oversize of the following data:
Int32 (4 byte) - Reference to another Type's SectionID. (Always Type 7. Camera track Start?)

Loc 10 controls count of Oversize of the following data:
Int32 (4 byte) - Reference to another Type's SectionID. (Always Type 7. Camera track End?)





* Type 3, Varying size. 76 bytes static, followed by 12-byte structures, then singles. Seems to be branching for viewing scene from Lot view or actual Movie ?
* The ending Singles count is controlled by location 16. For the most part, they also seem to all add up to 1. So if there are two singles, both are .5. Three singles, 0.3333333. Four singles, .25, etc. Though this is not a rule

0: Int32 (4 byte) - Type of this section. [3]
1: Int32 (4 byte) - Size of this section. [104-380]
2: Int32 (4 Byte) - SectionID. A unique ID for this section.
3: Int32 (4 byte) - Subtype
4: Single (4 byte) - Lot X position
5: Single (4 byte) - Lot Y position
6: Single (4 byte) - Lot Z position
7: Single (4 byte) - Lot Z Angle
8: Byte(1 byte) - [1-6] Path Set Count ( + 3 bytes padding)

9: Int32 (4 byte) - Link1 Count
10: Int32 (4 byte) - Link2 Count
11: Int32 (4 byte) - [Always 0]
12: Int32 (4 byte) - [Always 0]
13: Int32 (4 byte) - SyncBitflag
14: Int32 (4 byte) - [Always 0]
15: Int32 (4 byte) - Branch name TextElement Index (-1, -2, and -3 are special cases... maybe random choices?)
16: Byte (1 byte) - Branch Count [1-10]
17: Byte (1 byte) - [Always 1]
18: Byte (1 byte) - [Always 0]
19: Byte (1 byte) - [Always 0]
20: Byte (1 byte) - Unknown. [0-255]
21: Byte (1 byte) - Unknown. [0-255] *
22: Byte (1 byte) - Unknown. [0-255]
23: Byte (1 byte) - Unknown. [0-255] *
24: Byte (1 byte) - Unknown. [0-255]
25: Byte (1 byte) - Unknown. [0-255] *
26: Byte (1 byte) - Unknown. [0-255]
27: Byte (1 byte) - Unknown. [0-255] *
*Often, these values are the same

TotalPaths = ((Path Set Count) x (Branch Count)) + (Path Set Count)
There seems to be an extra 'default' path set, as well as each branch choice. Perhaps to offer a straight linked-list path through a timeline

To read the next sections, you have to loop in the following manner
for j = 0 to Branch Count
for k = 0 to Path Set Count -1
Int32 (4 byte) - NextItem
Int32 (4 byte) - Path Index
Int32 (4 byte) - Unknown

for l = 0 to Branch Count -1
Single (4 byte) - Probability value?





* Type 4, 144 bytes. Unknown control

0: Int32 (4 byte) - Type of this section. [4]
1: Int32 (4 byte) - Size of this section. [144, 148,152]
2: Int32 (4 Byte) - SectionID. A unique ID for this section.
3: Int32 (4 byte) - Unknown [0,2]
4: Single (4 byte) - X position
5: Single (4 byte) - Y position
6: Single (4 byte) - Z position
7: Single (4 byte) - Rotation ?
8: Int32 (4 byte) - [Always 1]
9: Int32 (4 byte) - Unknown [0,1,2]
10: Int32 (4 byte) - Unknown [0,1,2]
11: Int32 (4 byte) - [Always 0]
12: Int32 (4 byte) - [Always 0]
13: Int32 (4 byte) - [Always 0]
14: Int32 (4 byte) - [Always 0]
15: Byte (1 byte) - [0,1]
16: Byte (1 byte) - [0,1]
17: Byte (1 byte) - [Always 0]
18: Byte (1 byte) - [Always 0]
19: Int32 (4 byte) - [Always 0]
20: Int32 (4 byte) - [-1,0-19, 22, 23, 24, 26]
21: Int32 (4 byte) - [-1, 0-6]
22: Int32 (4 byte) - [Always 1]
23: Int32 (4 byte) - [-1,0]
24: Int32 (4 byte) - [-1, 0] [0 only in _crew_ flms, _sunset, 017_cowboy dismount, 017_pow_escape]
25: Int16 (2 byte) - [-1, 0-33, 53]
26: Int16 (2 byte) - [0,1,2]
27: Single (4 byte) - [Range 0-1]
28: Int32 (4 byte) - Ref to another Type's SectionID or 0
29: Int32 (4 byte) - [0 - 99990, usually multiples of 10 or 100]
30: Single (4 byte) - X Position ?
31: Single (4 byte) - Y Position ?
32: Single (4 byte) - Z Position ?
33: Int16 (2 byte) - [0,1,2,3]
34: Int16 (2 byte) - [0-18,20,22,23,25-27...200,2000]
35: Int32 (4 byte) - [-1,0,1,2,8,96,512,1024]
36: Int32 (4 byte) - [-1, 0]
37: Byte (1 byte) - [0-255]
38: Byte (1 byte) - [0,1,2,3,4,8,12,16,32,63,127,192,255]
39: Byte (1 byte) - [0,32,64,255]
40: Byte (1 byte) - [0,4,8,255]
41: Int32 (4 byte) - [0,1]
42: Int32 (4 byte) - Ref to another Type's SectionID
43: Int32 (4 byte) - [-1, 0,1,2]
44: Int32 (4 byte) - [Always 120]

If size is over 144, Oversize is the following:
Ovr: Int32 (4 byte) - Ref to another SectionID





* Type 5, Refers to props placement, primarily for lot view, before actor utilizes it.

0: Int32 (4 byte) - Type of this section. [5]
1: Int32 (4 byte) - Size of this section. [64,80]
2: Int32 (4 Byte) - SectionID. A unique ID for this section.
3: Int32 (4 byte) - [Always 4]
4: Int32 (4 byte) - [0,1,2,3,4,5,255]
5: Int32 (4 byte) - Reference to another Type's ID
6: Int32 (4 byte) - TextElement Index for Prop
7: Int32 (4 byte) - [Always 0]
8: Int16 (2 byte) - Controls oversize state. [3,19] 3 = 64 bytes, 19 = 80 bytes
9: Int16 (2 byte) - [0,1]
10: Single (4 byte) - X ?
11: Single (4 byte) - Y ?
12: Single (4 byte) - Z ?
13: Single (4 byte) - X Rotation ?
14: Single (4 byte) - Y Rotation ?
15: Single (4 byte) - Z Rotation ?
16: Int32 (4 byte) - [Always 255]

Oversize
17: Single (4 byte) - X ?
18: Single (4 byte) - Y ?
19: Single (4 byte) - Z ?
20: Single (4 byte) - Rot ?





* Type 6. Costumes.

0: Int32 (4 byte) - Type of this section. [6]
1: Int32 (4 byte) - Size of this section. [64, 80, 84...]
2: Int32 (4 Byte) - SectionID. A unique ID for this section.
3: Int32 (4 byte) - Unknown.
4: Int32 (4 byte) - Unknown.
5: Int32 (4 byte) - Reference to Next Type's SectionID.
6: Int32 (4 byte) - Costume TextElement ID [or -1]
7: Byte - Unknown. [0-15,23,25,27,29-31,63-64,79,87,101,103,109-111,126-127,230-231]
8: Byte - Unknown. [0,1,2] 1 & 2 only appear in Crew flms
9: Byte - [Always 0]
10: Byte - [Always 0]
11: Byte - [Usually 3] [2,3,10,19,22,26]
12: Byte - [Always 0]
13: Byte - Oversize has 4 singles after 64 Bytes [0,1]
14: Byte - # of Oversize Int32's after 64 Bytes
15: Single (4 byte) - X Position ? [0 or -15.418 in 018_fire.flm]
16: Single (4 byte) - Y Position ? [0 or -7.689 in 018_fire.flm]
17: Single (4 byte) - Z Position ? [Always 0]
18: Single (4 byte) - Angle ? [Always 0]
19: Int32 (4 byte) - [Always 0]
20: Int32 (4 byte) - [Always 0]
21: Int32 (4 byte) - [Always 255]

If Loc 13, data is as follows:
Single (4 byte) - X Location where actor changes in Lot View
Single (4 byte) - Y Location where actor changes in Lot View
Single (4 byte) - Z Location where actor changes in Lot View
Single (4 byte) - Rotation where actor changes in Lot View

If Loc 14 above is set, # of Int32s follow:
Int32 (4 byte) - Reference to Other Type's SectionID





* Type 7, Refers to Camera position.

0: Int32 (4 byte) - Type of this section. [7]
1: Int32 (4 byte) - Size of this section. [116, 120, 124, 148]
2: Int32 (4 Byte) - SectionID. A unique ID for this section.
3: Int32 (4 byte) - [Always 0]
4: Int32 (4 byte) - [Always 0]
5: Int32 (4 byte) - [Always 0]
6: Int32 (4 byte) - [Always 0]
7: Int32 (4 byte) - [Always 0]
8: Int32 (4 byte) - [Always 1]
9: Int32 (4 byte) - Controls count of Oversize1 Int32's [0,1,2,3,8]
10: Int32 (4 byte) - Controls Count of of Oversize2 [0,1,2]
11: Int32 (4 byte) - Duration in .1 second. So 50 = 5 seconds. [or -1] Unknown result at -1
12: Int32 (4 byte) - Unknown. [0-18,20,22,23-25,30,32,34-37,40,42,45,50,53,83]
13: Int32 (4 byte) - Unknown. [1,2,4,8,16,32,64]
14: Int32 (4 byte) - [Always 0]
15: Int32 (4 byte) - [Always 0]
16: Single (4 byte) - Camera X position.
17: Single (4 byte) - Camera Y position.
18: Single (4 byte) - Camera Z position.
19: Single (4 byte) - CameraTarget X position. &~ What the camera points at.
20: Single (4 byte) - CameraTartget Y position.
21: Single (4 byte) - CameraTarget Z position.
22: Single (4 byte) - Field of View ?
23: Single (4 byte) - Zoom.
24: Single (4 byte) - Rotation amount per second [0, 3.1415926 (pi)]
25: Byte - Flag for motion shot ? [0,1]
26: Byte - Flag for static shot ? [0,1]
27: Byte - x .1 seconds before transition with next (or previous ?) camera position
28: Byte - Flag. [0,1]
29: Int32 (4 byte) - Reference to another Type's SectionID.
30: Int32 (4 byte) - Unknown. [-1, 0, 2]
31: Int32 (4 byte) - Unknown. [200]

Oversize1 Loc 9 controls count
Int32 (4 byte) - Reference to another Type's SectionID.
Oversize2 Loc 10 controls count
Int32 (4 byte) - Reference to another Type's SectionID.





* Type 8, Usually 80 bytes. Unknown control. There are no Type 8's in ai_ flms

0: Int32 (4 byte) - Type of this section. [8]
1: Int32 (4 byte) - Size of this section. [80]
2: Int32 (4 Byte) - SectionID. A unique ID for this section.
3: Int32 (4 byte) - [Always 7]
4: Int32 (4 byte) - [0,255]
5: Byte (1 byte) - [0-255]
6: Byte (1 byte) - [0-255]
7: Byte (1 byte) - [0-13,15-17,19,20-22,24-26,38,41,56,255]
8: Byte (1 byte) - [0,255]
9: Int32 (4 byte) - [Always -1]
10: Int32 (4 byte) - [0,1-7,9-14,18-19,28,29,30,60,70]
11: Int16 (2 byte) - [Always 19]
12: Int16 (2 byte) - [0,1]
13: Int32 (4 byte) - [Always 0]
14: Int32 (4 byte) - [Always 0]
15: Int32 (4 byte) - [Always 0]
16: Int32 (4 byte) - [Always 0]
16: Int32 (4 byte) - [Always 0]
17: Int32 (4 byte) - [Always 0]
18: Int32 (4 byte) - [Always 0]
19: Int32 (4 byte) - [Always 255]
20: Int32 (4 byte) - [Always 0]
21: Int32 (4 byte) - [Always 0]
22: Single (4 byte) - Unknown
23: Int32 (4 byte) - [Always 0]





* Type 9, refers to Facial Expressions

0: Int32 (4 byte) - Type of this section. [9]
1: Int32 (4 byte) - Size of this section. [124, 128]
2: Int32 (4 Byte) - SectionID. A unique ID for this section.
3: Int32 (4 byte) - [0,2]
4: Single (4 byte) - X ?
5: Single (4 byte) - Y ?
6: Single (4 byte) - Z ?
7: Single (4 byte) - Rotation or Scale ?
8: Int32 (4 byte) - [Always 1]
9: Int32 (4 byte) - [0,1]
10: Int32 (4 byte) - Controls Oversize [0,1]
11: Int32 (4 byte) - [Always 0]
12: Int32 (4 byte) - [Always 0]
13: Int32 (4 byte) - [Always 0]
14: Int32 (4 byte) - [Always 0]
15: Single (4 byte) - Unknown. [-1.9 - 2, 5, 20]
16: Single (4 byte) -
17: Int32 (4 byte) - [10,11]
18: Int32 (4 byte) - TE Index of 'fclexp' entry
19: Int32 (4 byte) - fan file Control ID
20: Int32 (4 byte) - [0-30,32-38, 40-56, 58-60, 62, 65-72, 75,80 ... 165]
21: Int32 (4 byte) - [0 - 99999999999] Multiples of 10 or 100
22: Single (4 byte) - [0 - 1]
23: Int32 (4 byte) - [-1, 7-101,103-104, 110-169, 171-172]
24: Int32 (4 byte) - [-1, 7-101, 103-104, 110-169, 171-172]
25: Int32 (4 byte) - [-1, 11-16, 19-65, 67-68, 70,76,79,81 ... 168,170]
26: Int32 (4 byte) - [0-26, 28-33,35-38,40-43 ... 110,115]
27: Int32 (4 byte) - [Always 0]
28: Int32 (4 byte) - Reference to another Type's ID
29: Int32 (4 byte) - [-1,0,1,2,3]
30: Int32 (4 byte) - [Always 120]

Loc 9 controls Oversize
31: Int32 (4 byte) - Reference to another Type's ID

Categories

CategoryFlmFormat
 Comments [Hide comments/form]
Valid XHTML 1.0 Transitional Valid CSS Powered by Wikka Wakka Wiki 1.1.6.2
Page was generated in 0.1096 seconds