Adversarially-verified audit (18 agents) against the task #46-#56 landings: MP/current-state understatements, superseded punch readings, retired env gates, dead paths, line-cite drift; env-gate hub table completed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
55 lines
3.3 KiB
Markdown
55 lines
3.3 KiB
Markdown
---
|
|
id: asset-formats
|
|
title: "Asset Formats — MOD/SKL/ANI/BMF/BSL/textures/gauges/collision"
|
|
status: established
|
|
source_sections: "PROGRESS_LOG.md §5; docs/ASSET_PIPELINE.md; docs/BGF_FORMAT.md"
|
|
related_topics: [bgf-format, rendering, locomotion, combat-damage, gauges-hud]
|
|
key_terms: [MOD, SKL, ANI, BMF, BSL, VTX, SLD, DZM, PCC, GIM, material-ramp]
|
|
---
|
|
|
|
# Asset Formats
|
|
|
|
All reverse-engineered. Geometry (BGF) has its own topic ([[bgf-format]]); the full pixel/material
|
|
spec is `docs/ASSET_PIPELINE.md`. Full list: `docs/PROGRESS_LOG.md §5`.
|
|
|
|
## Definition / skeleton / animation
|
|
- **`.MOD`** — INI mech/object definition: skeleton, skins, collision, gauges, physics, animations,
|
|
class. The `.MOD` physics (MoverMass/drag/MaxAcceleration) governed thrust VEHICLES + collisions,
|
|
NOT walk gait ([[locomotion]]). [T1]
|
|
- **`.SKL`** — INI joint skeleton. `[joint] parent=, Type=(hingex/y/z|ball|balltranslate),
|
|
Object=part.bgf, dzone=, tranx/y/z, pitch/yaw/roll`. Build a **DCS tree**; neutral pose ≈
|
|
translations (pyr≈0). [T1]
|
|
- **`.ANI`** — INI keyframe animation. `[HEADER] framecount/framerate(30)/skeletonfile`; `[frameN]`
|
|
joint→`rx ry rz` radians (balltranslate→translate); `[RootTranslation]` per-keyframe `x y z`
|
|
where **`.z` = forward root SPEED** (units/s). Walk anims have no baked root translation — forward
|
|
motion is animation-driven from `.z` ([[locomotion]]). [T1]
|
|
|
|
## Materials / textures
|
|
- **`.BMF`** — `DIV-BIZ2` (FILETYPE=1) material+texture LIBRARY (no pixels). Material → DIFFUSE color
|
|
+ `MATERIAL_TEXTURE`→texture→`TEXTURE_MAP` image basename. Tags: `0x18 BITSLICE` (BSL slice select),
|
|
`0x28` ramp ref, `0x26` emissive, `0x30/0x31` ramp def. [T1]
|
|
- **Texture pixels:** `.tga` (Truevision), `.vtx` (`DIV-VTX2`, trailing RGB), and **`.bsl`**
|
|
(`DIV-BSL2` — a BIT-SLICED container: w*h 32-bit texel words holding SIX independent 4-bit
|
|
GRAYSCALE sub-images (nibble pair-swapped, byte 0 pad) OR RGB444/RGBA4444 (sliceType 7/8). The BMF
|
|
`0x18 BITSLICE` tag picks the slice, absent=0). Decoding BSL as RGB = the "rainbow/graffiti mech"
|
|
bug. Reference reader: `DivLoader/VGCDivLoader.cpp:323-410`; archive-only — in-repo reimplementation: `engine/MUNGA_L4/image.cpp`. [T2]
|
|
- **`.VMF`** — `DIV-VIZ2` material SOURCE. Carries the `SCROLL` animation + `MAP{}` image binding for
|
|
effects (beams/muzzle/smoke/sky). THE key effects asset ([[rendering]]). [T2]
|
|
- **[[material-ramp]]** — the IG board colours no-normal geometry by a 2-endpoint RAMP; details in
|
|
[[bgf-format]] + [[rendering]]. [T2]
|
|
|
|
## Collision / damage / subsystems
|
|
- **`.SLD`** collision solids (Block/YCyl/Cone/Ramp/Wedge). Terrain is modeled AS collision volumes;
|
|
see [[locomotion]] ground model + [[combat-damage]]. [T1]
|
|
- **`.DZM`** = INI damage-zone→material map (mech skin damage states). **`.DMG`/`.TBL`** damage
|
|
zones/tables, **`.SUB`** subsystems (weapon params — DischargeTime/RechargeRate/WeaponRange),
|
|
**`.CTL`** control maps. [T1]
|
|
|
|
## Cockpit HUD assets ([[gauges-hud]])
|
|
- **`.GIM`** vector MFD/radar line maps + **`.GAT`** color table; **`.PCC`** ZSoft PCX 8-bit gauge
|
|
rasters (fonts helv15/helv42, label strips, dials). [T1]
|
|
|
|
## Key Relationships
|
|
- Geometry detail: [[bgf-format]]; pixel/material spec: `docs/ASSET_PIPELINE.md`.
|
|
- Consumed by: [[rendering]], [[locomotion]] (SKL/ANI), [[combat-damage]] (SLD/DZM/SUB), [[gauges-hud]] (GIM/PCC).
|