MS3D model 的Frame count
通常在载入ms3d动画序列后, 无法播放动画或动得极缓慢,调用IAnimatedMesh::getFrameCount()取得的FrameCount也比MilkShape里的FrameCount大很多, 这是为什么呢? 请看"niko"的原话:The reason why the frame number is multiplied is because using only 300 frames, your animation would not be smooth at all. By multiplying the frame number with (for example here 40), it is getting smoother. By the factor 40, in this case. I should add a comment on this in the documentation.
float fFactor = getFrameCount()/effective number of frames of your animation;
所以在setFrameLoop时必须在1*fFactor~RealFrameCounts*fFactor之间, 要不然就有各种怪异的现象.
所以在setFrameLoop时必须在1*fFactor~RealFrameCounts*fFactor之间, 要不然就有各种怪异的现象.
e.g.
If get total numbers of frames with getFrameCount (ex : 12000)
divide the getFrameCount by the effective number of frames of your animation (ex : 12000/300 = 40)
multiply this factor (40) by the number of the frame you want to display (in your example : 40*1 and 40*31) and you'll get :
Code:
If get total numbers of frames with getFrameCount (ex : 12000)
divide the getFrameCount by the effective number of frames of your animation (ex : 12000/300 = 40)
multiply this factor (40) by the number of the frame you want to display (in your example : 40*1 and 40*31) and you'll get :
Code:
model1->setFrameLoop(40,1240);
That's all...
That's all...