Example: Archive.zip <– not a fully valid file, but demonstrates the issue nicely.
In order to avoid the (previously automatic) changes made by
keyframe.optimize() GLTFLoader passes
InterpolateSmooth into the constructor for animation tracks using CUBICSPLINE interpolation, before overriding that later. See:
However, QuaternionKeyframeTrack does not implement InterpolantFactoryMethodSmooth, and logs a bunch of warnings about it when we do this. Because
keyframe.optimize() is no longer invoked automatically, we can probably work around this differently. We also make copies of the track data, to avoid optimization overwrites, which is no longer necessary either.