public static void mergeAnimation(Object3D model){ ArrayList<Integer> sub = new ArrayList<Integer>(); Animation anim = model.getAnimationSequence(); int count = anim.getSequenceCount(); int s=0; boolean firstFrame = false; for(int i = 1; i <= count; i++){ //0 is all animations. if(anim.getName(i).toLowerCase().startsWith("wb")){ if(!firstFrame){ s = anim.getSequenceBorders(i)[0]; firstFrame = true; } sub.add(anim.getSequenceBorders(i)[1]); } } Mesh[] meshs=anim.getKeyFrames(); Animation re=new Animation(sub.get(sub.size()-1)); re.createSubSequence("walk"); for (int i=0; i<sub.size(); i++){ for (int p=s; p<=sub.get(i); p++) { re.addKeyFrame(meshs[p]); } s=sub.get(i)+1; } model.setAnimationSequence(re); }