I have checked again. The same mesh+skeleton played fine in OgreMax-WinViewer, but strange on phone with .bones(tail stretched). I am not sure how to use .xml instead of .bones, so i don't know if the result are some difference between them. Could you do a test with my .xml? This problem bore me a long time. Thanks!
Here are my codes:
//onSurfaceCreated
AnimatedGroup group = BonesIO.loadGroup(mContext.getAssets().open("dog21.bones"));
mGroup = group;
for(Animated3D a : group)
{
a.setTexture("world");
a.build();
}
mDog = group.get(0);
group.addToWorld(mWorld);
Camera camera = mWorld.getCamera();
camera.setPosition(0, 0, 150);
camera.lookAt(mDog.getTransformedCenter());
camera.rotateCameraZ((float) Math.PI);
mWorld.buildAllObjects();
mFrameBuffer = new FrameBuffer(480, 800);
MemoryHelper.compact();
// onDrawFrame
mDog.setAutoApplyAnimation(false);
mDog.animatePose(time_line, animation_index);
mDog.animateSkin(time_line, animation_index);
mDog.applyAnimation();
time_line += 0.05 * speed;
if(time_line > 1)
time_line = 0.01f;
mFrameBuffer.clear();
mWorld.renderScene(mFrameBuffer);
mWorld.draw(mFrameBuffer);
mFrameBuffer.display();