我正在使用Papervision3D在Actionscript-3中显示Blender模型。
模型有动画,所以我在代码中设置了一些AnimationClip3D动画:
clip[0] = new AnimationClip3D("Clip0", 0.0, 1.0); //first animation
clip[1] = new AnimationClip3D("Clip1", 1.0, 2.0); //second animation
等等。这些是1或2秒长的小动画。数字表示以秒为单位的开始和结束时间。
模型显示正常,并按照预期的顺序正确执行动画,但每15秒左右,动画会暂停并“跳跃”,就好像有延迟一样。
我设置了一个NEXT_FRAME监听器来跟踪每一帧的数据,这是输出,其中time是AnimationEvent时间:
Frame 1 Time 0.389
Frame 2 Time 0.995
...
Frame 25 Time 14.539
Frame 26 Time 15.128
Frame 27 Time 15.707
Frame 28 Time 0.132
Frame 29 Time 0.714
如您所见,AnimationEvent时间在大约16秒时重置为零。
请原谅我的新手问题,但是,是什么导致了这个问题,如何阻止我的动画在16秒内暂停和跳跃?
更新:我认为问题现在已经排序 - 请参阅下面的解决方案。
答案 0 :(得分:0)
当我在3DsMax中为3D模型制作动画时,我遇到了类似的问题,然后将其导出为单独的.png帧,然后将这些图像导入时间轴,使其循环播放。有关示例,请参阅http://www.gamersnet.nl/?skin=oranje2013。它是中间的小皇冠。我无法完全消除暂停,但除非你知道/正在寻找它,否则它会更糟糕,并且不会显得那么明显。
问题在于,在进行任何类型的动画时,您可以设置开始和结束位置。在这种情况下,起始位置和结束位置相同。这意味着动画的第一帧和动画的最后一帧是相同的。因此,为了使转换更平滑,我删除了最后一帧,因此没有相同的帧。
我不确定你的问题是否也是如此(我从未使用过Papervision3D),但问题似乎与我遇到的问题类似。所以也许解决方案是相同的:)
答案 1 :(得分:0)
我认为问题现在已经整理好了。
我忘了将动画片段添加到DAE的动画中:
myDAE.animation.addClip(clip[0]);
myDAE.animation.addClip(clip[1]);
等等。
这意味着在添加这些行之前,它是使用clip" All" - 整个动画 - 并且感到困惑。
我现在可以播放正确的剪辑(假=没有循环):
myDAE.play(clip[0], false);