我正在尝试使用verold为脚本中的3d模型制作动画。但是,我无法理解verold API组件的正确使用。
我将一个模型加载到我的场景中,并附加一个脚本作为该模型的属性。我还有一个关键帧动画属性,设置为不自动播放。
我的目标是能够在用户点击按钮时启动特定动画。当我使用以下代码时,我可以看到模型对象
PlayAnimation.prototype.init = function() {
// this.veroldEntity is available here but the Three.JS data isn't loaded yet
cObject = this.veroldEntity;
};
但我不确定如何使用playanimation(loop,startTime,save,fn)函数。
所以我的问题是: 1.这是在脚本中启动动画的正确方法吗? 2.如果是这样,有人可以告诉我使用它的正确方法,即save和fn参数是什么?
提前致谢...
答案 0 :(得分:2)
首先,您需要获取要通过脚本控制的Keyframe Animation组件的引用。您可以使用getComponentsByScriptName()
来获取附加到实体的关键帧动画组件:
PlayAnimation.prototype.init = function() {
var animationsById = this.getEntity().getComponentsByScriptName("Keyframe Animation");
this.animations = [];
for (var id in animationsById) {
this.animations.push(animationsById[id]);
}
};
如果单个关键帧动画组件附加到实体,则this.animations[0]
将引用它。接下来,您可以播放动画:
this.animations[0].play();
答案 1 :(得分:0)
有两种方法可以从组件中触发动画。您可以使用动画API,也可以在UI中设置EventHandler。
EventHandler是一种简单的方法:
http://www.verold.com/learn/articles/using-the-verold-loader-73
事实上,如果有一篇文章你应该看看Verold是如何运作的,我会说看看那个。它总结了使用Verold API的最常见方式。在HTML / CSS中构建界面,并将应用程序中的事件激发到Verold中。然后使用我们的内置组件和编辑器尽可能多地做。 Verold API还有很多其他内容,更不用说通过获取下面的Three.js渲染器的句柄可以做什么,但是你可以使用事件实现很多。
我会让Ian回答如何使用动画API。如果您想要驱动更复杂的交互性,请直接使用API,例如,如果您想要自定义动画混合。