Inicio >1. Introduccion2. Modelado3. Materiales e Iluminacion4. Animacion5. Render y Postproduccion
Práctica 8. Animación Básica con curvas IPO

Práctica 9. Animación Jerárquica y Esqueletos

Ficheros asociados:
Fichero base Práctica 9 (100KB)

En esta práctica animaremos un brazo robótico para que cambie de opsición un objeto. Será necesario utilizar gran parte de la funcionalidad estudiada en esta sesión, por lo que resulta conveniente repasar lo referente a restricciones y esqueletos antes de realizar esta práctica.

Añadir un esqueleto

Situamos el puntero 3D en el punto donde comienza el primer motor del robot ayudándonos de diferentes vistas   Video: 00:05 - 00:15. Ahí comenzará la cadena de huesos, que añadimos en   Video: 00:18. Seleccionamos la cabeza del hueso añadido y mediante extrusiones E generamos dos huesos adicionales   Video: 00:25 - 00:36. Activamos X-Ray y Names en las propiedades de visualización del esqueleto para facilitar su selección   Video: 00:45, incluso cuando el modelo del robot esté sombreado.

Emparentamos el esqueleto completo (en modo objeto) con el primer motor del robot (Motor1)   Video: 01:04 para que, cuando rote la base, el esqueleto también lo haga   Video: 01:08 - 01:11. A continuación cambiamos el esqueleto a modo pose   Video: 01:15 y emparentamos cada pieza del robot con su correspondiente hueso (mediante Control P)   Video: 01:16 - 02:02. Las pinzas del robot se emparentan con la pieza MunAPin   Video: 02:10 - 02:18, aunque se podrían haber emparentado igualmente con el hueso del robot. El resultado sería el mismo.

Uso de cinemática inversa

Ayudándonos de las vistas ortogonales, situamos un Empty en el extremo del robot   Video: 02:50. Este Empty lo utilizaremos como objetivo del IKSolver. Renombramos el Empty a EmptyIK   Video: 03:01. Seleccionamos el último hueso del esqueleto (en modo pose)   Video: 03:08 y añadimos una restricción IKSolver sobre EmptyIK   Video: 03:19.

Restricciones

Comprobamos que, a pesar de haber añadido cinemática inversa, la animación del brazo robótico no es muy realista   Video: 03:30 - 04:00. Resolveremos los problemas en varias etapas. Primero añadiremos una restricción de tipo LockedTrack a la base   Video: 04:14, para que apunte siempre a la posición del EmptyIK, pero manteniendo fijo su eje de rotación. Vemos en   Video: 04:30 que el eje correspondiente al objeto es el -Y y lo seleccionamos en la restricción   Video: 04:35. En   Video: 05:00 - 05:18 vemos que, pese a que el objeto de la base apunta correctamente al Empty, el movimiento del brazo no es del todo realista. Vamos a añadir restricciones de rotación a cada hueso de la cadena. En   Video: 05:25 - 05:35 asignamos restricciones de rotación sobre el eje X e Y de cada hueso (dejando libre la rotación en Z) comprobando, como es lógico, que el resultado no es correcto   Video: 05:40 - 06:35. A continuación probamos a dejar libre el eje de rotación Y con resultados igualmente erróneos   Video: 06:45 - 07:20. Finalmente dejamos libre el eje de rotación X y comprobamos que el resultado es el esperado   Video: 07:25 - 08:30.

Uso de curvas de animación IPO

Para hacer que el robot cambie de posición el cilindro, primero nos centraremos en animar el desplazamiento del brazo y el movimiento de las pinzas. Cuando esta parte esté definida, añadiremos una restricción de tipo CopyLocation sobre el cilindro.

La animación del robot ahora es muy sencilla, basta con añadir frames clave al Empty para situarlo en diferentes puntos del espacio   Video: 08:30 - 14:00. Añadimos igualmente frames clave sobre las pinzas del robot (que desplazamos sobre su eje local) para simular el movimiento de apertura y cierre   Video: 10:14 - 10:36.

Cambio de posición del objeto

Utilizamos un Empty auxiliar sobre el que aplicaremos una restricción de CopyLocation. Añadimos el Empty (EmptyPinza) en el medio de la pinza y lo emparentamos   Video: 14:20 - 14:57. Añadimos una restricción de tipo CopyLocation sobre el cilindro   Video: 15:26, indicando en OB: el nuevo EmptyPinza   Video: 15:32. La restricción por defecto está activa (Influencia = 1) en toda la animación   Video: 15:38 - 15:52. Tenemos que añadir una curva IPO a la restricción indicando el intervalo de frames en el que Influence valdrá 1, y en los que valdrá 0. Utilizamos el botón Key para añadir frames clave respecto de la restricción   Video: 16:32 - 16:42. Hasta el momento en el que las pinzas se cierran, el valor de Influence debe ser 0, por lo que añadimos en el frame 60 una clave   Video: 16:32. En el siguiente frame (en el 61), ya debe copiar el movimiento de la pinza, por lo que añadimos una clave con valor de influencia 1   Video: 16:42. Desde el frame 61 hasta el 120 seguirá a la pinza (de nuevo, clave con influencia 1)   Video: 17:02 y en el frame 121 estará de nuevo libre (influencia 0)   Video: 17:11.

Cuando la restricción CopyLocation deja de actuar, el objeto vuelve a su posición original. Para evitarlo, añadiremos frames clave para cambiar la posición del objeto mientras está actuando la restricción (es decir, entre el frame 61 y el 121 deberemos dar el cambiazo). Para situar el objeto exactamente en la posición final emplearemos el puntero 3D, como vimos en la segunda sesión del curso.

Cambiamos la curvas IPO a tipo Object   Video: 17:38. En el frame 68 (uno de los frames donde está actuando la restricción CopyLocation, añadimos una clave respecto de la localización   Video: 17:47. Avanzamos hasta el frame 120 que es el que nos define la posición final exacta del cilindro. Situamos el puntero 3D en ese punto del espacio (con el cilindro seleccionado, Shift S Cursor -> Selection)   Video: 18:02. Ahora nos situamos en el frame 121 y añadimos un frame clave posicionando el objeto donde está el cursor 3D. Utilizamos de nuevo Shift S pero ahora elegimos Selection -> Cursor y añadimos una clave respecto de la localización   Video: 18:23. La animación está completa y el objeto cambia de posición como queríamos.

Player
Player
Arriba: Resultado del ejemplo.
Izqda: VideoTutorial.

Práctica 9. Ejemplo de uso de esqueletos, restricciones y cinemática inversa.

Práctica 8. Animación Básica con curvas IPO