有这个想法是因为公司美工用的3Dmax的md2插件存在漏洞,不能对关键帧进行命名,所有的关键帧名称都一样。
这就导致程序无法对模型进行自动分组,所以画了点时间来实现现有模型动画的重新分组。
核心代码如下:
Object3D obj;
Object3D cube = Loader.loadMD2(getAssets().open("xuan.md2"), 0.8);
/***
* 实现已有对象动画的重新分组,用于弥补3DS插件无法命名的异常
*/
private void regrouping() {
obj = new Object3D(cube);
Animation srcAnim = obj.getAnimationSequence();
Mesh[] srcMash = srcAnim.getKeyFrames();
int keyframeCount = srcMash.length;
Animation tarAnim = new Animation(keyframeCount);
for(int i=0; i<keyframeCount; i++){
if(i%5==0){
tarAnim.createSubSequence("sequence"+(i/5));
}
tarAnim.addKeyFrame(srcMash[i]);
}
obj.setAnimationSequence(tarAnim);
}
我的测试代码是每5帧分为一组,这个按个人的具体需要进行分组。