The model tag contains the render model and shader_model references for objects such as vehicles, scenery, and weapons among others. It is not collideable nor animated on its own, and objects may reference additional model_collision_geometry and model_animations tags.
This tag is specific to Halo 1 for Xbox, while the gbxmodel tag is the equivalent for the PC port and its derivatives like MCC. Unlike a Gearbox model, this tag's compressed vertices are copied into the map rather than uncompressed vertices. Note that compressed vertices can only address up to 42 nodes.
Field |
Type |
Comments |
|
bitfield
|
Flag |
Mask |
Comments |
|
0x1 |
On map compilation, vertices with the same positions have their normals linearly averaged. |
|
0x2 |
|
|
0x4 |
|
|
|
int32
|
|
float
|
|
float
|
|
float
|
|
float
|
|
float
|
|
uint16
|
|
uint16
|
|
uint16
|
|
uint16
|
|
uint16
|
|
float
|
|
float
|
|
Block
|
Field |
Type |
Comments |
|
TagString
|
|
int16
|
|
Block
|
Field |
Type |
Comments |
|
uint8
|
|
uint8
|
|
uint8
|
|
Point3D
|
Field |
Type |
Comments |
|
float
|
|
float
|
|
float
|
|
|
Quaternion
|
Field |
Type |
Comments |
|
float
|
|
float
|
|
float
|
|
float
|
|
|
|
|
Block
|
Field |
Type |
Comments |
|
TagString
|
|
uint16 →
|
|
uint16 →
|
|
uint16 →
|
|
Point3D ?
|
|
Quaternion ?
|
|
float
|
|
float
|
|
Matrix
|
Field |
Type |
Comments |
|
float[9]
|
|
|
Point3D ?
|
|
|
Block
|
Field |
Type |
Comments |
|
TagString
|
|
Block
|
Field |
Type |
Comments |
|
TagString
|
|
bitfield
|
|
|
uint16
|
|
uint16 →
|
|
uint16 →
|
|
uint16 →
|
|
uint16 →
|
|
uint16 →
|
|
Block
|
Field |
Type |
Comments |
|
TagString
|
|
uint16 →
|
|
Quaternion ?
|
|
Point3D ?
|
|
|
|
|
Block
|
Field |
Type |
Comments |
|
bitfield
|
|
|
Block
|
Field |
Type |
Comments |
|
bitfield
|
Flag |
Mask |
Comments |
|
0x1 |
|
|
0x2 |
|
|
|
uint16 →
|
|
uint8
|
|
uint8
|
|
uint16
|
|
uint16
|
|
float
|
|
float
|
|
Point3D ?
|
|
Block
|
Field |
Type |
Comments |
|
Point3D ?
|
|
Vector3D
|
Field |
Type |
Comments |
|
float
|
|
float
|
|
float
|
|
|
Vector3D ?
|
|
Vector3D ?
|
|
Point2D
|
Field |
Type |
Comments |
|
float
|
|
float
|
|
|
uint16
|
|
uint16
|
|
float
|
|
float
|
|
|
Block
|
Field |
Type |
Comments |
|
Point3D ?
|
|
uint32
|
|
uint32
|
|
uint32
|
|
int16
|
|
int16
|
|
int8
|
|
int8
|
|
uint16
|
|
|
Block
|
Field |
Type |
Comments |
|
uint16
|
|
uint16
|
|
uint16
|
|
|
uint32
|
|
uint32
|
|
uint32
|
|
uint32
|
|
|
|
Block
|
Field |
Type |
Comments |
|
TagDependency : shader
|
|
uint16
|
|
Thanks to the following individuals for their research or contributions to this topic:
- Kavawuvi (Invader tag definitions; Differences from gbxmodel)
- MosesOfEgypt (Tag structure research)