El
Rigging Mecánico es utilizado principalmente para animar piezas móviles como engranajes, bielas, brazos robóticos o cualquier otra pieza que afecte o tenga relación directa con otra pieza, esta técnica básicamente consiste en utilizar expresiones matemáticas como razones trigonométricas para llevar a cabo el proceso de animación, en Blender podemos realizar este proceso mediante código y/o drivers.
El rigging mecánico es ampliamente utilizado en el desarrollo de videojuegos, ya que permite interacciones en tiempo real y resultados precisos.
Para animar este ejemplo de un brazo robótico he utilizado razones trigonométricas para determinar los giros de las articulaciones del brazo robótico, sin embargo existe más de una forma de obtener el mismo resultado gracias al uso de técnicas como la cinemática inversa, tal como nos señala la Wikipedia.
En Robótica, la Cinemática inversa (IK) es la técnica que permite determinar el movimiento de una cadena de articulaciones para lograr que un actuador final se ubique en una posición concreta. El cálculo de la cinemática inversa es un problema complejo que consiste en la resolución de una serie de ecuaciones cuya solución normalmente no es única.
https://es.wikipedia.org/wiki/Cinem%C3%A1tica_inversa
Ángulo de Giro de la base en el eje Z obtenido de la resolución del triángulo rectángulo
Para obtener el giro de la base simplemente aplicamos la fórmula ya que conocemos los valores del CA, CO y lógicamente la Hipotenusa de acuerdo al teorema de Pitágoras.
Ángulos de rotación de los brazos obtenidos por la resolución del triángulo oblicuángulo
Cualquier triángulo puede resolverse (resolución de triángulos) si se conocen tres de sus elementos, donde, como mínimo, uno de ellos debe de ser un lado.
En este punto obviamente conocemos los valores de dos de los lados del triángulo oblicuángulo que son el largo de los brazos respectivamente, además obtenemos el valor de la hipotenusa resolviendo el triángulo rectángulo que se genera de manera natural dada la distancia y elevación del objetivo.
Fragmento de códigos donde se expresan las fórmulas