-1

我正在使用 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 秒时暂停和跳跃?

更新:我相信问题现在已经解决了 - 请在下面查看我的解决方案。

4

2 回答 2

0

我相信现在问题已经解决了。

我忘记将动画剪辑添加到 DAE 的动画中:

myDAE.animation.addClip(clip[0]);
myDAE.animation.addClip(clip[1]);

等等。

这意味着在添加这些行之前,它使用的是剪辑“全部”——整个动画——并且变得混乱。

我现在可以播放正确的剪辑(假 = 不循环):

myDAE.play(clip[0], false);
于 2013-10-09T09:45:27.673 回答
0

当我在 3DsMax 中为 3D 模型设置动画时遇到类似的问题,然后将其导出为单独的 .png 帧,然后将这些图像导入时间轴,使其循环。例如,请参阅http://www.gamersnet.nl/?skin=oranje2013。这是中间的小皇冠。我无法完全消除暂停,但除非您知道/正在寻找它,否则它会变得更糟且不明显。

问题是,在进行任何类型的动画时,您都设置了开始和结束位置。在这种情况下,开始和结束位置相同。这意味着动画的第一帧和动画的最后一帧是相同的。所以为了让过渡更平滑,我删除了最后一帧,这样就没有相同的帧了。

我不确定您的问题是否也是这种情况(我从未使用过 Papervision3D),但问题似乎与我遇到的问题相似。所以也许解决方案是一样的:)

于 2013-10-08T21:10:20.343 回答