I was playing around with the bone animation system and i found that if i do a softcopy of an object, than the animation won't play. Looking at the code of sio2ObjectRenderAction I found this:

Code:

if( _SIO2object->_SIO2instance ) { return; }

This won't make the animation play because a softcopy, if I understood well, just makes a reference to the original geometry object with the _SIO2instance member. Unfortunately in my applications there will be many object on screen: hardcopy is not a choice for me. Trying to get the animations work on instances, I commented the lines above and modified this piece of code:

I've done this because an instance doesn't have the geometry data inside it that are needed by the animation system. Doing this way instead i take the geometry from the original object. After this modifications I started my app and seen that the animation is playing correctly on the instance.

I wanted to share this with all of you and ask you if this is a good way for accomplish my need, or if I'm missing something.

The code above works on simulator, but when I put it on the device as soon as the animation starts, the objects disappears. I will try debugging a little bit. Meanwhile I tried the hardcopy way and I think I found a little bug there: when the geometry data gets duplicate for the new object, the vbo is not created causing the animation system to crash. I added the code to create the vbo and all works well, even on device.

Anyway I'm really interested in bone animation on istances, so if there's a solution on the problem I have it would be great!