locked
Rotacion de Joints o huesos en XNA RRS feed

  • Pregunta

  • Saludos, tengo un problema que me ha hecho romperme la cabeza ultimamente, les explico,  estoy siguiendo un libro "Xna 3D Primer" para poder lograr mover los huesos o joints de un modelo 3d en tiempo real y lo he logrado pero la cosa es que a la hora de rotar los joints estos parecen como si se salieran de lugar dando lugar a una deformacion no natural de una mano humana, me urge resolver este problemita pero la verdad es que se muy poco de XNA y ando en un proyecto de verano en el cual queda poco tiempo, espero alguien pueda ayudarme.

    Codigo:http://www.mediafire.com/?je9xc8i8nl652a7
    *controles de mi codigo con el teclado (Q/A = X axis , W/S = Y axis , E/D = Z axis , CAMARA: numpad4,8,6,2,repag, avpag)*

    e-mail: epc_89@hotmail.com

     

    miércoles, 20 de julio de 2011 17:38

Respuestas

  • Buenas Jaz-T,

    He probado tu proyecto y creo que las rotaciones no las aplicabas bien, prueba a ponerlo de esta forma a ver si hace lo que esperabas:

                manoTransforms[manoAni.BoneNames[joint]] =
                    manoTransforms[manoAni.BoneNames[joint]]
                    * Matrix.CreateRotationZ(z)
                    * Matrix.CreateRotationY(y)
                    * Matrix.CreateRotationY(x);
    

     

    De todas formas no se si tienes bien hecho el skinning.

     

    Saludos


    MVP XNA/DirectX

    Blog

    XNACommunity

    • Marcado como respuesta Jaz-T jueves, 21 de julio de 2011 20:06
    miércoles, 20 de julio de 2011 20:49
    Moderador

Todas las respuestas

  • Buenas Jaz-T,

    He probado tu proyecto y creo que las rotaciones no las aplicabas bien, prueba a ponerlo de esta forma a ver si hace lo que esperabas:

                manoTransforms[manoAni.BoneNames[joint]] =
                    manoTransforms[manoAni.BoneNames[joint]]
                    * Matrix.CreateRotationZ(z)
                    * Matrix.CreateRotationY(y)
                    * Matrix.CreateRotationY(x);
    

     

    De todas formas no se si tienes bien hecho el skinning.

     

    Saludos


    MVP XNA/DirectX

    Blog

    XNACommunity

    • Marcado como respuesta Jaz-T jueves, 21 de julio de 2011 20:06
    miércoles, 20 de julio de 2011 20:49
    Moderador
  • jeje por un momento pense ke corregir eso habia solucionado todo el problema pero sigo con el mismo problema en los otros dedos, solo en pulgar1 se arregló, aun así nose bien ke hacer he buscado en varios lados pero esta fue la unica forma que encontre de animar algo en tiempo real con codigo, y como despues lo necesito adaptar a un guante de datos (5dt data glove) ando buscando varias maneras y ésta es en la que llegué mas lejos. Aun asi gracias =D
    jueves, 21 de julio de 2011 15:21