【发布时间】:2014-05-10 02:02:02
【问题描述】:
如何最好地使用时间序列数据来指导 three.js 场景的动画?
例如:
Time | ObjA(x,y,z) | ObjB(x,y,z) | ...
00:00:00 | 0,9,0 | 1,1,1 | ...
00:00:10 | 0.1,0,0.1 | 1,0.5,1 | ...
00:00:15 | 0.1,0.1,0.1 | 0.9,0.5,1 | ...
数据可能有数百行,甚至数千行。并且对象的数量也可以从数据集到数据集变化。
我已经阅读了有关使用 tween.js 和链接关键帧的内容。但是在初始化过程中创建和链接成千上万的补间并不是正确的答案。
tween.js 是正确的方法吗?还是我错过了可以更好地处理这种情况的延期?有什么类似的用例可以证明有用吗?
更新
所以Director.js 肯定能够给出正确的结果。但看起来它的目的是对场景周围的相机运动进行补间,而不是指导数百个网格的运动。在可能数百个网格上将可能数千个补间链接在一起是实现脚本重放的最佳方式吗?
【问题讨论】:
-
先看看stackoverflow.com/questions/17563076/…。如果基于补间的方法不是您想要的,那么考虑为每个对象创建一个 3D 路径并在每个帧中调用函数
getPointAt( t )。例如,参见threejs.org/examples/webgl_geometry_extrude_splines.html 中的动画。 -
Director.js 脚本当然是一个选项,我已经使用它了。我根本不反对基于补间的方法,但它看起来就像循环遍历数据列表并链接潜在的数千个补间似乎效率低下。播放听起来像是一个例行公事,以至于我想知道我是否错过了一些非常明显的东西。感谢您提供指向 3D 路径的链接。我现在就去看看。
-
也许可以试试 Greensock 的 TimelineLite。 greensock.com/sequence-video。文档:api.greensock.com/js
标签: javascript opengl-es three.js webgl