Gracias Gracias:  2
Resultados 1 al 3 de 3

Tema: Esqueletos avanzados y aNL

  1. #1
    Administrador y fundador. Avatar de 3dpoder
    Fecha de ingreso
    Apr 2002
    Mensajes
    15,455

    Esqueletos Avanzados y ANL

    Esqueletos Avanzados y ANL
    Por: Carlos Gonzalez Morcillo





    La animación de personajes digitales requiere definir un esqueleto interno al que aplicaremos Cinemática Inversa para calcular la posición de todas las articulaciones. Éstas generaran unas deformaciones que habrá que trasladar a la malla del modelo 3D. Por último se aplicara un movimiento al esqueleto, construyendo una secuencia de animación.

    Así pues, en esta sesión identificamos dos objetivos; en primer lugar, construir un esqueleto para nuestro personaje, que asociaremos a una malla. Indicaremos a Blender qué vértices de la malla tendrá que deformar junto al esqueleto. En segundo lugar, construiremos una secuencia de animación para el esqueleto. Podremos realizar esta secuencia mediante la técnica de animación lineal empleada en sesiones anteriores; definiendo la posición de todos los puntos finales (IK Solver) en cada frame clave, o bien definiendo acciones en el módulo de Animación No Lineal. Utilizaremos esta segunda alternativa, mucho más cómoda para construir animaciones complejas.

    Primera parte: Construcción del esqueleto.
    Antes de definir el esqueleto del modelo creado en la practica anterior, veamos cómo asociar un Armature a una malla de polígonos, y la convención de nombrado que utiliza Blender. Comencemos con un ejemplo sencillo; arrancamos blender, eliminamos el plano por defecto e insertamos un cubo. Extrusionamos la cara lateral y, activando las superficies de subdivisión, construimos una malla como la mostrada en la figura 1.



    Añadimos un Armature formado por 3 huesos principales (hueso1, hueso2, hueso3) y un cuarto hueso pequeño que utilizaremos para resolver la cinemática inversa (huesonull). Con el esqueleto todavía en modo de edición de huesos (color rosa oscuro, accedemos con Tab), añadiremos un quinto hueso (independiente de los anteriores, aunque forma parte del esqueleto), que utilizaremos para calcular la cinemática inversa (huesoik). Obtendremos una configuración similar a la figura 2.



    Es importante que todos los huesos formen parte de un único objeto Armature. Por tanto, cuando añadamos nuevos huesos al esqueleto, lo haremos siempre desde el modo de edición del objeto. Podemos activar la representación del nombre de cada hueso pinchando en el botón Draw Names de los Botones de Edición (F9). Nombraremos los huesos como se explicó en la practica 7, y añadiremos una restricción (en modo pose del esqueleto; Control + Tab) de tipo IkSolver al huesonull con objetivo en huesoik. Ahora podemos mover (en modo pose) huesoik, y el resto del esqueleto se calculara de forma automática mediante cinemática inversa.



    Falta por indicar a blender cómo deformar la malla. Para ello, crearemos grupos de vértices con el mismo nombre que los huesos del esqueleto. Asociaremos a cada conjunto de vértices un hueso de los anteriores. Entramos en modo de edición de vértices del objeto y seleccionamos el grupo de vértices que están situados sobre el hueso1 (ver figura 3).



    En los botones de edición (F9), crearemos un nuevo grupo de vértices (pinchamos en new). Tecleamos el nombre del primer hueso y, con los vértices del primer hueso seleccionados, pinchamos en Assign. Si nos equivocamos al asignar vértices, podemos quitar los erróneos con Remove. El botón Select sirve para mostrar los vértices seleccionados de un grupo y Deselect para deseleccionar los vértices del grupo. Creamos un grupo para cada hueso y asignaremos los vértices que se muestran en la figura 3. Si nos fijamos, hay vértices que pertenecen a dos grupos. Es buena practica que los vértices situados en la zona de unión de dos huesos, pertenezcan a los dos grupos de vértices asociados. Blender calculara cómo deformarlos para que el resultado final en la malla sea suave. Hecho esto, haremos la malla hija del esqueleto (Control + P) Use Armature. Entramos en modo de pose para el esqueleto y movemos el hueso huesoik. Si todo ha ido bien, se debera aplicar la deformación en el modelo (ver figura 4).



    Vamos a aplicar el mismo método al fichero p10modelo.blend. Comenzaremos por el esqueleto de las piernas. Los huesos que tengan simétricos en el otro lado del cuerpo, como por ejemplo las piernas y los brazos, los nombraremos acabando en .R (los huesos de la derecha) y en .L (los de la izquierda). Esto nos servirá para “copiar” y “pegar” posiciones simétricas en la segunda parte de la practica. De momento nos ocuparemos de mantener la notación exacta y consistente.

    Añadimos como primer Armature Fémur.R, Tibia.R y PiernaNull.R. Después, y recordemos que tenemos como objetivo tener un único Armature con todos los huesos, sin salir del modo de edición, añadimos una nueva cadena de huesos: Pie.R y Pie- Null.R. Finalmente, añadimos como cadenas de un único hueso: DedosPie.R, IkDedos- Pie.R, IkTobillo.R e IkPie.R (ver Figura 5).



    Hecho esto, emparentamos (Botones de edición F9, modo de edición - Tab - con todos los huesos seleccionados, elegimos en el botón desplegable el nombre del padre en el campo child of; ver figura 6)



    los dos huesos IK pequeños; IkDedosPie.R e IkTobillo.R con el controlador principal del pie: IkPie.R. Al hueso DedosPie.R añadimos una restricción “copy location” hacia el hueso IkDedosPie. R. Al hueso PieNull.R un IkSolver hacia IkDedosPie.R. Al hueso Pie.R un “copy location” hacia PiernaNull.R. Finalmente a PiernaNull.R un IkSolver hacia IkTobillo.R. Si todo ha ido bien, tendremos un comportamiento como se ve en la Fig 7.




    Crearemos grupos de vértices como se explicó con el primer ejemplo de la practica, nombrando los grupos igual que los huesos que los deformaran: Fémur.R, Tibia.R, Pie.R y DedosPie.R. Al terminar, podemos emparentar la malla con el esqueleto de la pierna. La deformación debe verse en este punto. A partir de ahora, todos los huesos que añadamos al esqueleto y grupos de vértices en la malla tendrán resultado directo en el modo de animación “pose”.

    En la figura 8 puede verse una captura de la jerarquía que tenemos que construir.



    La figura 9 muestra los nombres exactos de los huesos y sus relaciones de parentesco. Añadiremos una cadena de huesos para formar la columna vertebral (Estomago, Pecho y ColumnaNull). Para limitar el inicio y el fin de la columna, insertamos 2 nuevos huesos (Ik- Caderas e IkHombros). Añadimos una restricción de tipo CopyLocation a Estomago, respecto de IkCaderas. A ColumnaNull un IkSolver sobre IkHombros. De ese punto sacaremos dos cadenas de huesos (una para cada lado): Hombro.R y HombroNull.R. Hombro.R tendrá un CopyLocation de IkHombros y HombroNull.R servirá de origen para el CopyLocation de Humero.R. De forma similar se definiran los huesos y restricciones para el lado izquierdo.



    Contruiremos los brazos como una cadena de 3 elementos: Humero.R, Cubito.R y Mano.R. Añadiremos un IkSolver (IkMano) sobre Mano.R. Añadiremos nuevas cadenas de huesos para los dedos. Índice, Corazón y Anular tendrán 3 huesos (el dedo pulgar sólo 2) más un cuarto hueso (*null) que servirá como origen del IkSolver. Añadiremos un hueso independiente para cada dedo, que servirá como destino del IkSolver.

    Además, emparentaremos el origen de cada cadena de huesos con Mano.R. Una captura del esqueleto de esta parte puede verse en la figura 10.



    Finalmente podemos ocultar algunos huesos para que, cuando estemos en modo de edición de pose, sólo nos aparezcan los que vayamos a utilizar. En la figura 9 aparece el conjunto de huesos que serían de utilidad a la hora de animar el personaje (básicamente los IKSolver de todas las cadenas de huesos): IKPie.*, IKDedosPie.*, IKTobillo.*, IKCaderas, IKHombros, IKCabeza, IKMano.*, IKPulgar.*, IKIndice.*, IKCorazon.* e IKAnular.*

    Puede resultar de utilidad tener el esqueleto en una capa distinta del resto de elementos. Esto nos permitira ocultarlo cuando no estemos trabajando directamente con él. Después de ocultar un subconjunto de los huesos del esqueleto, obtenemos una configuración como la mostrada en la figura 11.



    Segunda parte: Animación No Lineal.

    Abrimos dos ventanas nuevas en blender. Una que contendra “acciones” y otra de tipo NLA . En animación no lineal, definiremos las acciones como conjuntos de posiciones clave de un subconjunto de huesos. Así, en el movimiento de “andar”, definiremos la acción de “mover las piernas” y la acción de “mover los brazos”. De la combinación de ambas acciones en el compositor de NLA (Non Linear Animation) obtendremos el movimiento de caminar.



    Vamos a añadir el movimiento de mover las piernas al caminar. En la ventana de acciones, crearemos una nueva pinchando en el icono y seleccionando (ADD NEW). Cambiaremos el nombre por “caminar piernas”. Nos situamos en el frame 1 y movemos IKPie.R e IKPie.L hasta obtener una posición similar a la figura 12.





    Hecho esto, añadimos un frame clave (sólo con esos dos huesos seleccionados, únicamente intervienen dos manejadores en la acción) sobre LocRot. En la ventana 3D, al lado del icono de pose , aparecen 3 iconos que nos permiten copiar , pegar y pegar invertida la pose actual. Es en el pegado invertido donde entra en juego la notación especial de Blender. Podemos “pegar” la posición de las piernas invertida siempre que hayamos seguido la notación .R y .L para huesos simétricos. De esta forma, pinchamos en copiar la posición actual y nos desplazamos al frame 14. Pegamos la posición invertida e insertamos frame clave. Nos vamos al frame 28 y pegamos la posición normal . Insertamos de nuevo un frame clave. Si reproducimos la acción, tendremos un movimiento parecido a andar, pero sin levantar los pies del suelo. Bastara con que nos situemos en los frames intermedios (7 y 21) y añadamos nuevos frames clave con la pierna que corresponda levantada. Finalmente, obtendremos una acción en la ventana de acciones como se muestra en la figura 13.





    En la ventana NLA aparecerán una serie de cuadritos indicando los frames clave (ver figura 13, abajo). Nos interesa convertir estos frames a franjas NLA; que son barritas amarillas que podemos escalar, suavizar y componer. Para ello, en la ventana NLA seleccionamos todos los cuadros clave y pulsamos Control + A Action to NLA Strip. Hecho esto, podemos “estirar” la duración de la acción de caminar al número de frames que queramos (con la tecla S, como cualquier objeto), o desplazarlo en la línea de tiempo (tecla G). Crearemos nuevas acciones (como la de mover los brazos, taparse la cara, girar la cabeza...) de forma similar. Cuando hayamos creado la barrita NLA, podemos eliminar la acción de la ventana NLA para crear nuevas, pero no antes!. Si eliminamos los frames clave antes de pasar la acción a NLAStrip, estaremos eliminando la propia acción. Podemos añadir acciones ya creadas a la ventana NLA pulsando Shift + A.



    Podemos ver cómo quedó la composición de acciones de esta practica en la figura 14.





    La parte inferior, que tiene frames clave directamente sobre el objeto Lamp.004, se corresponde con el efecto del foco que ilumina la cara del muñeco al comenzar la animación. A continuación analizaremos algunas opciones de composición.

    ¿Cómo hacer que el personaje siga un camino? Necesitamos añadir un elemento de tipo Curve / Path. Ajustamos los puntos de control y en los botones de animación (F7), indicamos los parámetros que se muestran en la figura 15.



    En PathLen indicaremos la longitud en frames del Path. Activaremos los botones de CurvePath y CurveFollow. Hecho esto, hacemos al Esqueleto hijo del Path. En la ventana NLA, seleccionamos la acción “caminar piernas” y pulsamos la tecla N. Con esto, accedemos a las propiedes específicas de la acción (ver figura16).



    Las propiedades de Strip Start y Strip End indican el momento en el que la acción comienza y termina en la planificación NLA actual. Action Range hace mención a la duración (en frames) de la acción (independiente de dónde empiece). Blendin y Blendout son el número de frames que damos para mezclar la acción con las siguientes. Es un factor de suavizado que aplica Blender en la interpolación entre acciones. Repeat indica el número de veces que vamos a repetir la acción. Stride es un parámetro muy importante si estamos utilizando caminos (paths), como en nuestro caso. Indica a Blender el número de unidades que avanza el modelo en cada ciclo. Debemos ajustar este parámetro para evitar que el modelo “patine” sobre el suelo. Es útil pinchar en el botón PrintLen (ver figura 15), que nos da la longitud de un camino para calcular el valor de Stride. Si activamos UsePath, la acción se va a sincronizar con el avance del path. En nuestro ejemplo, activaremos este botón únicamente en las acciones que tengan que ver directamente con el acto de caminar; es decir, “caminar piernas” y “caminar brazos”. El botón de Hold, si esta activo, nos conserva la última posición alcanzada por una acción. Por último, el parámetro Add indica que el movimiento final resultara de la composición de esta acción con el resto (sus efectos se suman). Por lo general, este parámetro tendrá que estar siempre activo para todas las acciones. Por último, recordaremos que Blender permite trabajar hasta el mínimo nivel de detalle mediante curvas IPO. Podemos, por ejemplo, variar la velocidad del personaje que sigue sobre el path accediendo a la curva IPO asociada al camino (ver figura 17).






    Por: Carlos Gonzalez Morcillo
    Si vas a subir un trabajo al foro, hazlo adjuntando la imagen, archivo, vídeo o lo que sea, no publicando enlaces de otros sitios. http://www.foro3d.com/f45/forma-correcta-de-insertar-imagenes-y-archivos-en-nuestro-mensaje-98930.html

    |Agradecer cuando alguien te ayuda es de ser agradecido|

  2. #2
    Miembro Nuevo
    Fecha de ingreso
    Jun 2009
    Mensajes
    2

    Respuesta: Esqueletos Avanzados y ANL

    tengo muchas dudas, yo uso el 2.49 y sobre eso de IKsolver todavía no entiendo muy bien del todo, hago lo que dice el tutorial pero no pasa como debe pasar gracias espero tu respuesta

  3. #3
    Miembro Nuevo
    Fecha de ingreso
    Sep 2009
    Mensajes
    3

    Respuesta: Esqueletos Avanzados y ANL

    Gracias este apartado siempre se me ha atragantado

Temas similares

  1. 3ds Max Materiales avanzados
    Por Freemind en el foro 3DStudio Max
    Respuestas: 0
    Último mensaje: 25-05-2012, 13:42
  2. Blender Huesos y Esqueletos
    Por 3dpoder en el foro Un Enfoque práctico a Blender
    Respuestas: 0
    Último mensaje: 09-09-2009, 00:53
  3. los esqueletos
    Por leonardoflores1976 en el foro Ilustración y 2D
    Respuestas: 1
    Último mensaje: 02-07-2008, 22:30
  4. tutoriales avanzados de RF
    Por arnaldo diaz en el foro Plugins
    Respuestas: 5
    Último mensaje: 24-12-2006, 05:45
  5. avanzados De Vue 5
    Por arnaldo diaz en el foro Plugins
    Respuestas: 0
    Último mensaje: 15-12-2006, 02:34

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •