我有一个变形的3D网格,可以使用threejs
进行加载。加载模型后,我可以启动动画剪辑。
但是我不想只运行动画,我想在单击按钮时移动到动画中的特定位置。例如,我有一个1分钟长的动画剪辑。如果用户按下按钮,则我希望以某种方式对几何图形进行变形,以使其在动画剪辑处于30秒时类似于几何图形。
在threejs
中有什么方法可以使用,或者您可以建议其他方法吗?
答案 0 :(得分:1)
在threejs中有什么方法可以做到吗?或者您可以建议其他方法吗?
是的,我认为这应该可行。使用AnimationAction
实例回放动画剪辑时,可以立即将其暂停,然后将time
属性设置为所需的值。代码如下:
const clipAction = mixer.clipAction( clip );
clipAction.play();
clipAction.paused = true;
clipAction.time = 0.5;
此处演示了该方法:https://jsfiddle.net/w6catxfh/1/
答案 1 :(得分:-1)
如果可以对动画进行时间参数化,则可以执行此操作。考虑使立方体向上移动的两种方法。一方面,您可以简单地告诉立方体每个动画循环从其当前位置上移一定量:
var animate = function () {
requestAnimationFrame( animate );
cube.position.y += 0.01;
renderer.render( scene, camera );
};
执行相同动画的另一种方法是将多维数据集的位置描述为时间的函数:
var currentTime = 0;
var animate = function () {
requestAnimationFrame( animate );
cube.position.y = 0.01 * currentTime;
currentTime += 1;
renderer.render( scene, camera );
};
视觉效果是相同的,但是您可以更改currentTime
变量以在动画“时间轴”上跳转。