Пример ключевого кадра three.js с сглаживанием (кубическая интерполяция)
Я искал некоторую ясность в том, как реализовать сглаживание (или кубическую интерполяцию) для анимации Three.js KeyframeTrack. Из моего тестирования недостаточно разбора метода интерполяции в конструкторе KeyframeTrack.
var position = new THREE.VectorKeyframeTrack(
'.position',
[0, 1],
[
plane.position.x,
plane.position.y,
plane.position.z,
1.25 * plane.position.x,
1.25 * plane.position.y,
1.25 * plane.position.z
],
THREE.InterpolateSmooth
);
position.createInterpolant();
var clip = new THREE.AnimationClip('Action', 3, [
position
]);
that.mixer = new THREE.AnimationMixer(plane);
var action = that.mixer.clipAction(clip);
action.setLoop(THREE.LoopOnce);
action.startAt(0); // delay in seconds
action.clampWhenFinished = true;
action.play();