Reading Chameleon engine meshes: .meb/.imb and .vhf (.bml/.sgb/.sgx) from NFS Shift 2
Field notes from building/repairing Blender importers for Slightly Mad Studios' Chameleon engine meshes. `.meb`/`.imb` are binary meshes; `.vhf` is an XML transform file; `.bml` (cars) and `.sgb`/`.sgx` (tracks) are containers the original 3ds Max importer also reads. The Blender addons import meshes and transforms, but the container formats themselves…
8 gotchas recorded
- Vprop stream turns to garbage after the first property.
- Tag numbers are off by a factor.
- LE files decode to nonsense per-primitive fields.
- Material paths go missing.
- Skeleton-only / truncated files crash the importer.
- Face loop overshoots into the next primitive.
- .vhf transforms don't find their meshes.
- Imported model faces the wrong way.