2016-11-05 444 views
1

in threeJS:我有一个object3D,并且想用它做简单的关键帧动画:Move,Rotate,Scale。threejs AnimationClip示例需要

这里有一个简单的例子:https://threejs.org/examples/#misc_animation_keys但由于动画已经改变了它不工作了完全动画旋转切换在threeJS四元数前一段时间。

我正在寻找一个非常简单的例子,但使用新的动画系统,我已经GOOGLE了它,并没有发现任何东西。这三个页面上没有任何文档。

使用Blender或Collada创建动画不是一个选项,因为我已经从步骤文件中导入了模型,两者都不支持。

编辑我已经解决了与示例中的问题,但我仍然有问题,因为我想动画嵌套Object3d,但只有根Object3d,所以我指定的键只有根对象不整层次结构。但是它会引发错误,导致动画键层次结构与根Object3d层次结构的结构不同。但这是另一个问题,需要另一个问题

回答

2

该示例的问题在于,动画键中的旋转现在指定为四元数,而不是像示例中的欧拉旋转。因此,向旋转参数添加第四个值(1)使其工作。

0

我只有这一个发现:

https://github.com/mrdoob/three.js/blob/master/examples/webgl_animation_scene.html

而且,能够写一个自己:

//Let's create a mesh 
this.mesh = new THREE.Mesh(geometry, material); 

this.clock = new THREE.Clock(); 

//Save this mixer somewhere 
this.mixer = new THREE.AnimationMixer(this.mesh); 
       let animation = THREE.AnimationClipCreator.CreateRotationAnimation(100, "y"); 
       this.mixer.clipAction(animation).play(); 

//In the animation block of your scene: 

var delta = 0.75 * clock.getDelta(); 
this.mixer.update(delta); 

这将绕Y轴的给定网格。