from the docs here
.glTF 2.0 Skinning | Babylon.js Documentation
says:
" NOTE: Before Babylon.js 5.0, the glTF loader uses a property overrideMesh that on the skeleton to override the mesh used by the skeleton in order to ignore the parent transform up to the glTF root node which contained the right-hand to left-hand conversion. This method, however, caused all sort of issues that are outside the scope of this document to explain. This property has since been removed from the skeleton class.
using that or not, there were still some changes to the structure of the json.
i only quickly looked at the sumarian host, i didnt see anything that stood out immediately besides accesing the animation group by 0 index. perhaps __root__ is now the 0 index and the animations are at 1. idk, maybe just console log the json and see what’s different, shouldn’t be too difficult to rule a change in shape of the parsed animations. i think if the parsed json is different, it could be the additive animations. i saw many broken playgrounds, but idk about any changes to additive animations first hand.
i opened the playground twice, so i had two tabs open. i played the animations and adjusted some weights and the skeleton was deforming. but i noticed, the skeleton was deforming in the same way from adjusting different animations. the screenshots below show the problem. the first two pictures are from tab1, and the last 3 are from tab2. In the first two, adjusting “head shake” caused her to go cross armed. In tab2, adjusting “agree” caused her to go cross-armed. Finally, i adjusted “head shake” in tab2 just to show it has no effect, while in tab1, it is the cause of the problem. (instructions to reproduce below).
The problem is that the PR is a bit bugged, but the bug makes your use case work…
If you select v5.71.1 in the Playground and apply your steps, it works. Now, if you set 0 in line 228 instead of param.anim.weight, it does not work anymore. That’s because param.anim.weightdoes not exist and return undefined. Because the slider value is set to undefined, the onValueChangedObservable is immediately called with the 0 value, to set a legitimate value. This is done for all the 4 additive animations, which initializes them correctly.
The bug in the PG is that the 4 additive animations should be initialized with a 0 weight. The default one (-1) is invalid for additive animations.
So, here’s a fixed PG, using the AnimationGroup.weight property instead of calling setWeightForAllAnimatables manually:
I changed to param.anim.weight = v; because it’s more logical now that we have a weight property on the AnimationGroup, but calling setWeightForAllAnimatables still work.