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 | | | 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)
- MosesOfEgypt (Tag structure research)