Parece que no puedo encontrar ninguna información sobre cuerpos rígidos conectados por una articulación. ¿Alguien puede explicarme los conceptos básicos? Estoy tratando de investigar un poco para descubrir qué tan factible sería implementar la física del muñeco de trapo en 3D para mi juego de disparos en primera persona.
Probablemente demasiado tarde para el OP, pero por el bien de las próximas generaciones o cualquiera que busque algo relacionado con este tema, dejo este enlace:
http://www.gamasutra.com/resource_guide/20030121/jacobson_01.shtml
En realidad, este artículo contiene todo lo que necesita saber sobre la programación del genial motor de física ragdoll. ¡Ejemplos de código incluidos!
Este artículo es en realidad uno de los puntos de inflexión en mi vida, ¿será el tuyo también? :)
Descargo de responsabilidad : el artículo aquí es desde el punto de vista de la robótica y no es específico del desarrollo de juegos. Para los juegos, es mucho más simple considerar figuras de palitos de masas puntuales, en lugar de dinámicas de cuerpo rígido en 3D completas (que se muestran a continuación).
Una muñeca de trapo se conecta principalmente con rótulas, que restringen la posición de un punto del cuerpo rígido y permiten los tres grados de libertad. No hay respuestas fáciles, aunque las ecuaciones necesarias se pueden encontrar en un libro de dinámica de nivel universitario.
Cada articulación compleja se modela como una secuencia de articulaciones 1DOF más simples, cada una con su propia posición (o ángulo), velocidad y aceleración de la articulación.
Los conceptos básicos para tratar con sistemas justos son resolver primero la cinemática (cómo se relacionan entre sí todos los movimientos individuales de cada cuerpo), aplicar las leyes de Newton para relacionar cómo se relacionan entre sí todas las fuerzas individuales y, finalmente, usar juntas. relaciones de poder para resolverlo todo. Como mencioné, no hay respuestas fáciles.
Considere el siguiente ejemplo simple (?!?), Con dos cuerpos conectados a través de una articulación de bisagra.
Ejemplo : el cuerpo 1 se considera el cuerpo principal y el cuerpo 2, el cuerpo secundario. Así la posición del cuerpo 2, es función de la posición del cuerpo 1, así como el ángulo de articulación . El eje de la bisagra es un vector unitario descrito en coordenadas mundiales a continuación.
Cinemática de posición : por lo general, este es uno de los pasos más complejos, pero al usar la geometría y la orientación de los cuerpos, describe la posición de la articulación. desde la posición como y la matriz de orientación (rotación) de 3 × 3 del cuerpo 1. Entonces la orientación del cuerpo 2 se describe recursivamente
Cinemática de velocidad : este es el paso menos complejo, ya que involucra ecuaciones bastante intuitivas, que son el resultado de diferenciar las expresiones anteriores.
Cinemática de aceleración : diferenciar las velocidades usando la regla de la cadena produce las aceleraciones y esto es más complejo porque hay muchos términos involucrados.
Dinámica : aquí es donde confiamos en los diagramas de cuerpo libre para equilibrar las fuerzas y los momentos. Considere solo la gravedad presente, y la articulación generando algún vector de fuerza y momento que se aplica en igual y opuesta medida a cada cuerpo. Pero primero, necesitamos encontrar el momento de masa del tensor de inercia (matriz 3×3) usando las matrices de orientación. Usar para el cuerpo 1 y para el cuerpo 2, donde es el momento de masa del tensor de inercia en las coordenadas de conducción del cuerpo (una matriz constante).
Fuerza conjunta : la última parte para resolver el problema es imponer que las fuerzas y los momentos conjuntos no agreguen potencia al sistema (solo fuerzas de restricción). Para la simulación de muñeca de trapo, todas las articulaciones tienen libertad de movimiento y, por lo tanto, deben obedecer la ley de entrada de energía igual a salida de energía. Para una junta de pasador, lo anterior se simplifica a lo siguiente
Tenemos 6 movimientos desconocidos para cada cuerpo (traslación y rotación) más el movimiento de la articulación para resolver. Además, hay 6 componentes desconocidos de fuerzas/momentos conjuntos. Esto nos da un total de 6*2+1+6=19
incógnitas en el problema anterior.
También tenemos 2 ecuaciones vectoriales de cinemática, 4 ecuaciones vectoriales de dinámica más 1 ecuación de potencia escalar. Esto nos da un total de 2*3+4*3+1=19
ecuaciones para resolver el sistema, por lo que el sistema es solucionable .
dmckee --- gatito ex-moderador
Tobias Kienzler