-
-
Notifications
You must be signed in to change notification settings - Fork 23
mdlpp: add animation, sequence, flex, and IK support #85
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
Tested against all models from HL2, TF2, CS:GO, Portal 2, and L4D2. 30,456 succeeded, 38 failed. The failures are 2 corrupted TF2 files, 2 CS:GO hash mismatches, and 34 L4D2 models that seem to use a different vtx strip group format. |
|
oh wow L4D2 parses? I didn't expect it to have the same format |
|
with 10x as many errors comparably :), I thought I'd give it a shot anyways... it would require some more work to actually be fully 'supporting' the format |
|
does it work with HL2X |
craftablescience
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Don't worry too much about fixing these, I will get around to it eventually
|
Should be good now :) Not entirely confident about the Math.h change, I think it's what you wanted. |
535d9c4 to
ba32ce6
Compare
| //int32_t meshesOffset; | ||
| std::vector<Mesh> meshes; | ||
|
|
||
| // These do not map to raw memory |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we can probably remove this comment here and at #R459 ...
unless its something specific you care about, the whole header is a parsed representation
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
animBlock == 0)animIndexIndex,weightListIndex,poseKeyIndex,cyclePoseIndex