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)