Resultados 1 al 1 de 1

Tema: Crear esqueleto y animar personaje 3D

  1. #1
    Administrador y fundador. Avatar de 3dpoder
    Fecha de ingreso
    14 abr, 02
    Mensajes
    12,073
    Dar las gracias
    701

    Le han agradecido 1,738 veces

    en 1,072 Mensajes

    Crear esqueleto y animar personaje 3D

    Crear esqueleto y animar personaje 3D
    por David “IPKnightly” Lettier



    Introducción

    Dotar de movimiento los elementos de tu juego es indispensable para lograr una inmersión total. Algunos objetos como rocas, vegetación, edificios, etc. pueden y deben ser estaticos, sin embargo, tu personaje principal y los personajes no-jugadores(1) que lo acompañan (entre otros elementos artísticos que forman parte del juego) necesitan poder moverse de forma realista para atrapar la mente del jugador y sumergirlo dentro del mundo virtual que estas creando.

    Para ayudar a tus personajes a moverse, primero debes familiarizarte con la terminología o “jerga” implícita. Animación, ya sea 2D o 3D, consiste en crear una secuencia de cuadros o imagenes que cambian sutilmente a medida que se avanza en la cuenta del número de cuadros o imagenes. Mostrando estas imagenes en rapida sucesión creamos la ilusión de animación o movimiento. Se denomina Cuadros Clave (Keyframes) a aquellas imagenes particulares que definen una posición o punto en el espacio y de las cuales partiran las interpolaciones. En otras palabras, los Cuadros Clave representan un cambio sutil o abrupto en el movimiento de nuestra animación. Pongamos como ejemplo que estas animando una bola que rebota. Para ésto necesitaras crear tres cuadros clave: uno en el aire, uno cuando la bola golpea el suelo y otro en el aire nuevamente pero ligeramente mas abajo que antes. Sin embargo nos faltarían imagenes entre cada Cuadro Clave(2); lo que solucionamos mediante la interpolación. Interpolación es “el método mediante el cual se construyen nuevos datos a partir de un discreto número de datos conocidos”. En el ejemplo de la bola, definimos la posición/posiciones/cuadros en los que la bola necesita estar basados en los cuadros clave de inicio y fin. Mediante el uso de interpolaciones, no necesitamos definir/crear cada cuadro de la animación como la haríamos en animación 2D. La animación vértice por vértice (o animación de transformación de objetivo) se usa para dotar de movimiento a las mallas (y similares) de los personajes.

    Moviendo los vértices individuales de la malla en cada Cuadro Clave, se puede lograr movimiento realista interpolando cada vértice entre Cuadros Clave. Skeletal animation (animación mediante esqueleto) usa huesos o sistemas de armadura con cada hueso asignado a un grupo de vértices. Éste proceso de asignación de huesos a grupos de vértices se denomina “skinning” ya que consiste en colocarle a los huesos la piel (skin) que es en este caso nuestra malla. De manera que al mover los huesos, movemos también los grupos de vértices que les hayamos asignado. Definiendo la posición de los huesos para cada Cuadro Clave, los huesos y sus grupos de vértices son interpolados entre Cuadros Clave.

    Una desventaja importante de la “animación es quelética” es la pérdida de control preciso sobre la posición de los vértices en cada Cuadro Clave. También la malla no siempre se deforma correctamente, como por ejemplo en la contracción de un bíceps al mover el hueso del antebrazo. Por otra parte, la animación “per-vertex” consume mucho tiempo ya que se debe definir la posición de cada vértice individualmente, sin embargo ofrece un control mas completo. Para este tutorial usaremos animación es quelética.

    Comencemos por abrir Blender, presiona la tecla [A] luego [X] y finalmente haz clic en “OK>> erase selected object(s)?” para eliminar la camara, lampara y cubo suministrados por defecto. Presiona [1 del teclado numérico] para cambiar a la vista frontal. [Shift-F1] para añadir a tu actual archivo Blender el archivo suministrado junto a este tutorial. Encuentra el directorio donde colocaste el archivo suministrado. Haz clic en el archivo .blend y busca la sección Object. Cliquea Object, luego Joe y luego “Load Library”. Tu pantalla debería ser parecida a la de abajo.



    Como siguiente paso asegúrate de que el cursor esté centrado en el area pélvica de “Joe” desde las vistas frontal y lateral. [Barra espaciadora] Add>>Armature. Ésto creara una nueva armadura o sistema de huesos para nuestra malla “Joe”. Deberías tener algo muy similar a la imagen siguiente.



    Ahora comenzaremos a construir un sistema de esqueleto muy similar a la siguiente imagen.



    Para hacerlo, con la herramienta extruir presionamos la tecla [E] OK?>> Extruiremos segmentos de huesos (empezando por el hueso de la pelvis) para crear un hueso para el pecho, el cuello y la cabeza. Ahora coloca el cursor en el area del hombro y presiona [Barra Espaciadora] Add>>Bone y comienza a extrudir huesos para crear los tres correspondientes al antebrazo, el brazo y la mano. Duplica ésto para cada brazo (dos en total). Recuerda guiarte por tu imagen de referencia. Una vez finalizado con ésto, coloca el cursor sobre el area mas alta del muslo en la malla para crear el hueso del muslo, luego el de la espinilla y el pie de la misma forma que lo hiciste con los brazos. Ahora coloca el cursor (observando el modelo desde la vista lateral, [Tecla 3 del teclado numérico]) y agrega un nuevo hueso para los dedos de los pies. Asegúrate de agregar uno para cada pie.

    Ok, ahora que la disposición básica de nuestro sistema de esqueleto esta completa es el momento de “emparentar” y “nombrar” ciertos huesos entre si para crear una jerarquía. Estando aún en modo de edición para los huesos presiona [F9] para que aparezcan los botónes del modo edición (en caso de que no estuvieran ya ahí). Busca Armature Bones>> Selected Bones en la ventana de botónes. Asegúrate de seleccionar todos los huesos con [A]. Para hacer la explicación mas sencilla haz coincidir el nombre de tus huesos (bones) y padres (parents) con los de la imagen siguiente. Observa, que es una típica convención de notación agregar “_R” o “_L” para cada hueso derecho (Right) o izquierdo (Left ) respectivamente.



    Recapitulando hasta este punto, hemos añadido nuestro objeto “Joe” a la escena, hemos creado una disposición básica para nuestro sistema de armadura humanoide, y hemos asignado el nombre y el ancestro (o padre) de nuestros huesos. A continuación asignaremos grupos de vértices al sistema de armadura por medio del proceso denominado pintura de pesos “weight panting” en inglés. (ver cuadro).

    “Weight painting” o pintura de pesos en Blender, es el proceso por el cual pintamos los vértices de nuestra malla para asociarlos con sus respectivos huesos asignandoles al mismo tiempo un valor o influencia. El color de la pintura que utilicemos sobre los vértices servira para indicarnos el valor de peso o influencia que el hueso tiene sobre el vértice; siendo el peso o valor del color azul 0.0 o ninguna influencia, mientras el rojo indica total influencia (peso 1.0). Ver la imagen de abajo.



    Ensayo y error sera la técnica elegida hasta que te familiarices con las mallas y la pintura de pesos en general. Teniendo seleccionada la malla [Botón Derecho del ratón] selecciona la armadura que creaste, con la tecla [Mayúscula] mas [Botón Derecho del ratón]. La malla debería verse rosa obscuro mientras la armadura rosa claro. Ahora con ambas seleccionadas, presiona [Ctrl+P] Make Parent to>> Armature y entonces Create Vertex Groupsí>> Create From Closest Bones. Con los huesos emparentados a la malla, selecciona sólo la malla y entra en el modo de pintura de pesos (Weight painting mode). Deberías ver algo similar a ésto:



    Seran raras las ocaciones en las que no debas cambiar los vértices seleccionados automaticamente por la opción “Create From Closest Bones” (crear a partir de los huesos mas cercanos). En la mayoría de los casos tendras que al menos seleccionar o remover algunos vértices de los grupos de vértices. Algunas veces es incluso mejor borrar todos los huesos seleccionados pintando sobre los vértices con un peso de cero y opacidad maxima. Como dijimos antes, la pintura de pesos puede ser considerada un poco como un arte. Escoger cuales vértices pertenecen y cuales no a cada hueso puede ser algunas veces un trabajo duro. Selecciona el hueso con el que te gustaría comenzar la pintura de pesos en el panel Links and Materials>>Vertex Groups en la ventana de botónes. Para pintar la influencia o valor de peso, [Botón izquierdo del ratón] sobre la malla en en la vista 3D. Mientras pintas sobre la malla notaras que los vértices son coloreados bien sea de rojo, verde, azul; o un color de aquellos basados en el valor de peso indicado en “Paint” en nuestra ventana de botónes. Los colores nos indican la influencia que tiene el hueso sobre los vértices. Para la mayoría de las aplicaciones pintar en rojo parece ser suficiente, sin embargo podrías encontrar excepciones. Finalmente en lo que concierne a la pintura de pesos (o grupos de vértices en general), podrías encontrarte con lo que se conoce como “pellizcado” (pinching), areas donde muchos vértices estan asignados a varios huesos creando deformaciones exageradas. Ver imagen de abajo.

    Para corregir ésto, remueve los vértices que no deberían moverse con el hueso que estas rotando. Nuevamente ésto debería ser principalmente cuestión de ensayo y error.



    Finalmente llegamos a la parte divertida, el modo de pose o la verdadera fase de animación. Selecciona la armadura [Botón Derecho del ratón] y entra en el “Modo Pose” (Pose Mode) seleccionandola del mismo menú desplegable donde se encuentran el modo de edición y el modo objeto. Tu pantalla debería verse como ésta.



    Antes de comenzar, selecciona el hueso raíz o hueso de la pelvis [Botón Derecho del ratón] y rótalo con [R]. Ésto rota toda la malla/armadura. Si ves que uno o varios vértices no se desplazan con la rotación de la malla tendras que seleccionar la malla y regresar al modo de pintura de pesos para asignar estos vértices a sus apropiados grupos de vértices. Ver la imagen siguiente.



    Si en algún momento deseas regresar la armadura y consecuentemente la malla a sus posiciones originales presiona [Alt+R] para eliminar los valores de rotación aplicados en el modo pose. Observa que también puedes seleccionar Rest Pos para retornar a la posición original, sin embargo ésta no permite aplicar ninguna transformación y no es permanente. Mientras se anima es de mucha ayuda pararse frente a un espejo y representar uno mismo los movimientos si es posible (o puedes pedirle a alguien mas que lo haga por ti y grabarlo para referencia futura). Para facilitar la explicación haremos una animación ridículamente facil. Comenzaremos seleccionando el hueso del cuello con [Botón Derecho del ratón] para luego presionar la tecla [I], selecciona entonces la opción Insert Key>> LocRot. Veras aparecer un cuadro clave para el hueso del cuello en el editor de acciones. Ahora adelanta 10 cuadros presionando la tecla [flecha hacia la derecha del teclado numérico].

    Rota el hueso del cuello unos 30 grados (haciéndolo mirar hacia arriba) e inserta otro cuadro clave como hiciste antes. Regresa al cuadro número 1 presionando la tecla [flecha hacia la izquierda del teclado numérico] y presiona [Alt-A] en la vista 3D. Si lo hiciste todo correctamente, deberías ver la malla mirando arriba hacia el cielo. Ver la imagen.



    Ahora vayamos a los botónes del motor de juego o Logic [F4] buttons. Crea exactamente lo que ves aquí. (observa que la accion o AC se llama “look_up” o mirar hacia arriba en español) . Ver imagen de abajo.



    Una vez hecho ésto y con el cursor sobre la vista 3D, presiona la tecla [P] y después [Enter], ignora el mensaje de error (no correct) de la camara. Si hiciste todo correctamente, deberías poder presionar y sostener la tecla [L] haciendo que el personaje mire hacia arriba. Como practica puedes crear otras animaciones: agitar una mano o un ciclo de marcha.


    Reflexiones finales

    Para juegos de vídeo, la mayoría de las animaciones seran simples y estaticas (sin desplazamiento del personaje). Sólo cuando se traiga la animación al motor de juego se cambiara la posición de la malla mientras se ejecuta la animación para crear la ilusión de caminata.

    Para las cinematicas del juego, animaciones mas complejas seran obviamente requeridas. Recuerda que cuantos mas cuadros tenga tu animación entre cuadros clave mas lenta sera y viceversa. Si mientras animas encuentras que los huesos estan demasiado torcidos o difíciles de trabajar, puedes eliminar la rotación del hueso en ese cuadro y reposicionarlo.

    He hecho todo lo posible para suministrar información correcta, sin embargo, si encuentras algún error por favor contactame. No me considero un experto, por lo tanto si piensas que algo puede hacerse de forma diferente sigue adelante y hazlo de la forma que te sea mas cómoda, yo sólo proveo esta información como ayuda mas que como un dictado.

    *(1) NPCs (non-player character) en el texto original. Son los personajes que no controla el jugador.
    *(2) En animación tradicional se denomina a estos cuadros inbetweens o tweens.


    ENLACES

    Puedes encontrar el archivo .blend en http://www.cgartwork.com/dcl/characteranimation.blend y una película en formato AVI de una animación mas compleja en http://www.cgartwork.com/dcl/characteranimation.avi



    David Lettier es un desarrollador de juegos aficionado, practicando y mejorando sus habilidades desde 2004. Siendo un “lobo solitario” David es un programador, animador y diseñador de sonido autodidacta. Si quieres contactarlo para hacerle un comentario/pregunta/ sugerencia y/o unirte a su causa utiliza la siguiente dirección de correo electrónico: dlettier@gmail.com


    www.blenderart.org

    Equipo de traducción
    Miniaturas adjuntadas -crear-esqueleto-y-animar-personaje-3d-1.jpg   -crear-esqueleto-y-animar-personaje-3d-2.jpg   -crear-esqueleto-y-animar-personaje-3d-3.jpg   -crear-esqueleto-y-animar-personaje-3d-4.jpg  

    -crear-esqueleto-y-animar-personaje-3d-5.jpg   -crear-esqueleto-y-animar-personaje-3d-6.jpg   -crear-esqueleto-y-animar-personaje-3d-7.jpg   -crear-esqueleto-y-animar-personaje-3d-8.jpg  

    -crear-esqueleto-y-animar-personaje-3d-9.jpg   -crear-esqueleto-y-animar-personaje-3d-10.jpg   -crear-esqueleto-y-animar-personaje-3d-11.jpg   -crear-esqueleto-y-animar-personaje-3d-12.jpg  

    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. /// Agradecer cuando alguien te ayuda es de ser agradecido \\\