Skip to content

Conversation

@cueki
Copy link

@cueki cueki commented Oct 16, 2025

put head in wood chipper for 1 week see what comes out

New

Added support for bone animation data with compressed quaternions/vectors and RLE decompression, animation descriptors with frame count/fps/flags, IK rules/chains/links and error data, and movement/velocity data.

Sequence parsing now includes descriptors with blending and timing, animation events, auto layers, IK locks, activity names/weights, keyvalue strings, and pose parameters.

Flex/facial system includes eyeball movement parameters, vertex animations, flex controllers/UI config/rules/operators (all flex operation types), mesh flex controllers, and mouth bone references.

Also added all 21 bone flags, attachment points on bones, external model and animation block references, and basic Header2 parsing.

Tested with the included v44, v47,and v49 MDL files and my own v48s (TF2 Heavy and Bot Heavy models).

WIP

  • External animation files not yet supported (only embedded animations with animBlock == 0)
  • Some animation features not parsed: local hierarchy, animation sections, zero frame data
  • Some sequence offset fields read but arrays not parsed: animIndexIndex, weightListIndex, poseKeyIndex, cyclePoseIndex
  • Header2 arrays for source bone transforms, linear bone table, and bone flex drivers not fully parsed
  • Untested: local node transitions, model-local attachments, global IK autoplay locks (didn't have in models)

@craftablescience craftablescience added the enhancement New feature or request label Oct 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants