Yes, it’s a really great method, and no intermediate conversions are needed, thank you!
However, I noticed that in some models, several bones move forward along the Y-axis (I suspect this happens when the model consists of several meshes). In general, you can quickly identify these bones by exporting the animation to SMD and then running a script that tracks which bone numbers move forward along the Y-axis during the move animation. After that, you can remove the animation keys for these bones in 3ds Max.
Although, I recently tried to fix the move animation for a swordsman this way, and in his case, this method didn’t work. Four bones move: 1 - Sword_joint, 2 - Shield_joint, 3 - SpeedLineSword, and 9 - Hip. They ultimately move the same distance, but their frame-by-frame shifts don’t match. If you try to simply remove the forward movement for these bones, the sword and shield won’t move along the Y-axis, and because of this, in some frames, the sword and shield start to fall out of the swordsman’s hands.
If you have the ability to create a separate death model, I would do it this way:
Use a regular model for the death animation.
For combat, make the sword and shield attached to the hands.
Added 7 minutes later
Perhaps initially, the weapon and armor were two different models; they were combined into a “global” group, and when loaded, they merged into what we have.
There is no direct evidence yet, but there may be soon.
But there is indirect evidence – in the Knight, many bones have complex names like Global|Hip|Chest. This is an import bug that occurs when the skeleton has bones with non-unique names. For example, the horse has a Hip bone, and the rider also has a Hip bone – the names of the previous bones are added to them until the name becomes unique