AnimationAction.setEffectiveTimeScale() 是Three.js中一个用于设置动画时间比例的方法。它可以使用一个 timeScale 参数来改变动画的播放速度。
animationAction.setEffectiveTimeScale(timeScale);
timeScale:一个数字,表示相对于动画原始速度的播放速度比例。如果 timeScale 为 2,则表示动画将以双倍速度播放;如果为 0.5,则表示动画将以半个原始速度播放。const mixer = new THREE.AnimationMixer( mesh );
const clip = THREE.AnimationClip.CreateFromMorphTargetSequence( 'morph', geometry.morphAttributes.position, 30 );
const animationAction = mixer.clipAction( clip );
// 播放动画
animationAction.play();
// 将动画速度设置为原来的 2 倍
animationAction.setEffectiveTimeScale( 2 );
在这个示例中,通过 animationAction.play() 方法可以播放动画。然后使用 animationAction.setEffectiveTimeScale() 方法将动画速度设置为原来的 2 倍。
setEffectiveTimeScale() 方法只能在动画播放之前或者播放过程中设置,在动画停止后设置没有效果。setEffectiveTimeScale() 方法设置了时间比例,还可以使用 AnimationMixer.timeScale 属性来全局控制时间比例。当这两者都设置时,AnimationAction.setEffectiveTimeScale() 的优先级更高,会覆盖 AnimationMixer.timeScale 的值。