three.js关键帧动画在循环的开始和结束之间暂停

时间:2020-03-10 06:21:46

标签: javascript three.js blender

我想使用关键帧为3d对象(风扇在无限模式下在一个轴上绕360度旋转)设置动画。 我使用Blender 2.78创建了3D模型和动画,并使用gltf expoter将其导出。

您可以从此处检查或下载.glb或.blend文件 all resources in github repository

怎么了?

动画模型各端之间的

暂停片刻。我真的不知道怎么回事我是在Blender方面做错了还是在代码中缺少设置的属性?

1-我还试图将.glb模型上传到glTF Viewer,并且在动画结束时也可见此“跳转”(如果您减少播放动画,则更好地了解发生了什么。)

2-我也在尝试设置不同的旋转组合kayframe:

1帧:风扇组旋转0-|-10帧:风扇组旋转324(我在这里跳得很奇怪)

1帧:风扇设置旋转0-|-10帧:风扇设置旋转360(此处风扇暂停了一段时间)

3-我还试图将外推模式设置为线性,但它不会影响extrapolation blender image

4-导出glft设置(始终选中示例动画)image glft settings

这是我用来制作动画的代码的一部分

loader.load("animation.glb", gltf => {
    this.mixer = new THREE.AnimationMixer(gltf.scene);
    //this.mixer.timeScale = 0.6;

    let action = this.mixer.clipAction(gltf.animations[0]);
    action.play();

    scene.add(gltf.scene);
)};

startAnimationLoop = () => {
    this.delta = this.clock.getDelta();
    if (this.mixer) this.mixer.update(this.delta);

    //[...] rest o code
};

我开始认为缺少某种插值属性...

注意

我想用模型中的动画来做到这一点,而不是通过添加mesh.rotation.x + = 1来旋转网格。在动画循环中

编辑解决方案

好的,抱歉,我是自己找到的...在搅拌机动画方面这是错误的。我实际上是在“第一个”关键帧上将旋转0设置为非零,而不是在“零”上生成暂停(不知道搅拌器中关键帧中的动画从0开始计数...)

0 个答案:

没有答案