In version 1.0, BoneTransform has a code that avoid unnecessary update
using 'oldFrame' variable
public void setCurrentFrame(int frame) {
if (oldFrame == frame) {
return;
}
oldFrame = frame;
if (bone != null) {
bone.getLocalRotation().set(rotations[frame]);
bone.getLocalTranslation().set(translations[frame]);
bone.propogateBoneChange(true);
}
}
But now there is no code like this in version 2.
Even if animation(No interpolation) is updated with time '0.0',
(In other words, no animation frame is changed)
BoneTransform.setFrame() is called => Bone.boneChanged = true
(by propagateBoneChange() )
Now,
Bone.updateWorldVectors() can call Bone.fireBoneChange() => SkinNode.needsRefresh = true
(by SkinNode.boneChanged() )
Finally, SkinNode.updateSkin() is called.
I think that the updateSkin() consumes CPU time intensively,
If so, This may be a hint to the performace.
Thanks for the reading. XD