Multiples animaciones compariendo Mesh [D3D]

Estoy desarrollando un pequeño motor gráfico como PFC y en estos momentos estoy enfrascado con la maldita animación por bones de los archivos .x. La cosa es que no quiero hacerlo en la GPU (como el ejemplo de Multianimación que viene en el SDK), y según tengo entendido lo único que necesito hacer es crear una copia de la jerarquía, clonar el AnimationController y enlazarle al clon de este último la copia de la jerarquía. El caso es que todo esto lo hago sin problemas y, en principio, todo esta bien, pero al crear varias instancias resulta que todas ellas reproducen la misma animación. Ya he revisado los puntos donde yo creo que podría estar el fallo y me he asegurado de estar dibujando la copia local de la jerarquía de cada instancia y de utilizar siempre el controlador de animación clonado para cada instancia. ¿Me estoy saltando algo? ¿A alguien se le ocurre que es lo que podría estar haciendo mal?
Pero como que al crear instancias?, no entiendo muy bien lo que dices, pero al instanciar sea lo que sea lo que haces es una copia que mantiene los cambios que le hagas al original, pero vamos esque no te e entendido muy bien, a ver tu has creado una animacion con bones? y luego has clonado esa animacion instanciandola? y las clonadas tienen la misma animacion que la original? osea tu quieres solo clonar la jerarquia? un saludo
Con instanciar me refería a crear "algo" en la escena con ese modelo. Es decir, yo cargo el modelo desde el fichero con su jerarquía de bones y su animation controller, pero no los uso nunca para reproducir nada, solo los uso para clonarlos cada vez que quiero introducir en la escena un nodo de escena que utilice ese modelo. El problema es que todas las copias comparten animación aunque lo único que tienen en común es el la fuente de la cual han sido clonadas, cosa que no entiendo y que estoy seguro que en algún sitio estoy metiendo la gamba.

Mañana por la mañana pienso modificar el ejemplo de SkinnedMesh del SDK (que trae código para animar los modelos tanto en la GPU como en la CPU, el ejemplo de Multianimation lo hace todo por GPU) haber si así consigo ver algo mas claro cual es mi problema.

EDIT: Ya he encontrado el fallo, y es que la jerarquía no se clona bien. Lo único que se clona es un puñado de punteros que al final apuntan todos a los mismos datos. Eso me pasa por copiar&pegar métodos de internet sin ni siquiera analizarlo en profundidad.
2 respuestas