Skip to content

MediaTracker triangles and key functions

GameBox (Nadeo)AnimationApplies toTMNF

A map’s MediaTracker clips are made of blocks, and some blocks animate by keys: a list of times, and for each time a full set of values. The triangle blocks key the corners of a coloured mesh; the key functions are curves of plain numbers. Inferred · from the classes and their chunks below

Class ID Derives from Confidence
CGameCtnMediaBlockTriangles 0x03029000 Sourced · GBX.NET
CGameCtnMediaBlockTriangles2D 0x0304B000 CGameCtnMediaBlockTriangles Sourced · GBX.NET
CGameCtnMediaBlockTriangles3D 0x0304C000 CGameCtnMediaBlockTriangles Sourced · GBX.NET
CFuncKeys 0x05002000 Sourced · GBX.NET
CFuncKeysReal 0x0501A000 CFuncKeys Sourced · GBX.NET

0x05002000 is CFuncKeys, the base class, not CFuncKeysReal. Sourced · GBX.NET

The 2-D and 3-D triangle blocks carry no triangle chunk of their own: both read chunk 0x03029001 of their base class, in the order below. “Counted” means a 32-bit count followed by that many items. Sourced · GBX.NET

Order Field Type Confidence
1 Key times counted f32 Sourced · GBX.NET
2 Position rows, columns two u32: rows equal the number of keys, columns the number of vertices Sourced · GBX.NET
3 Positions rows × columns vec3 (three f32), row by row: every vertex’s position at the first key, then at the second Sourced · GBX.NET
4 Vertex colours counted vec4 Sourced · GBX.NET
5 Triangles counted triples of i32 vertex indices Sourced · GBX.NET
6 Pick mode i32 Sourced · GBX.NET
7 Pick plane normal, position two vec3 Sourced · GBX.NET

So a triangle block is one mesh whose topology and colours are fixed and whose vertices move from key to key. Inferred · from the layout

A strict reader of this layout and GBX.NET agree on every byte of the 42 Triangles2D and 36 Triangles3D nodes found in the 81 downloaded maps both could read. Observed · 81 maps

CFuncKeys stores the key positions: chunk 0x05002001 holds the X values (counted f32) and chunk 0x05002003 an identifier. CFuncKeysReal reads those and adds chunk 0x0501A001: the Y values (counted f32) and an i32 interpolation mode. Sourced · GBX.NET

Of 100 maps of the 2026 top-downloads list, one holds CFuncKeysReal nodes, three of them, and it reaches them through TMUnlimiter’s version 7 extension data; the map’s ordinary clip graph does not lead to them. Observed · 100 maps

What do the pick fields and interpolation values mean?

The pick mode, the pick plane and the values of the interpolation mode carry GBX.NET’s names only; what the game does with them is not established.

Sources

  • GBX.NET — version 2.5.0; class IDs, chunk lists and the handwritten and generated readers