Diferencias entre Rig para Cine o Videojuegos

Artículo de Arte Digital realizado por Carlos Bolaños, Lead Animator y Rigger en Mercury Steam.

Introducción:

Hola a todos, me llamo Carlos Bolaños y soy animador y rigger en “Mercury Steam”. En el siguiente artículo os voy a explicar varias de las diferencias entre Rig para Cine o Videojuegos que existen cuando creamos el rig/skin de un personaje y sus respectivas animaciones.

También tocaremos temas como la exportación al motor, tanto del modelo con su rig como de sus animaciones, scripting y varios trucos para ahorrar en rendimiento.

Lo mencionado en este artículo es la metodología de trabajo utilizada en el desarrollo del Castlevania Lords of Shadow: Mirror of Fate de Nintendo 3DS, ya que cada estudio tendrá la suya propia, aunque en su mayoría suele ser muy parecida.

1. POR QUÉ HAY DIFERENCIAS

Empezaremos explicando el por qué hay diferencias entre Rig para cine y videojuegos.

Existen diferencias ya que en el proceso de creación de un personaje, el rig para cine y el skin no tienen ninguna limitación. Podemos crear ese rig con un número ilimitado de huesos, controladores, constraints, etc; al no ser render en tiempo real, no nos impondrá limitaciones en ese aspecto.

Pero en videojuegos sí tenemos render en tiempo real, es decir, que el motor de juego (game engine) crea esas imágenes en tiempo real, unas 30 – 60 veces por segundo. Esto es necesario para crear en el usuario la ilusión de que el personaje reacciona inmediatamente a sus mandos, permitiéndole interactuar en el entorno de juego que le rodea de forma realista. A mayor complejidad de los elementos del juego (numero de polígonos y tamaño de texturas de personajes y escenarios) obtendremos mayor realismo y mejor experiencia de juego, pero exigirá que la consola sobre la que se ejecute el juego deba ser de gran potencia. Cuanto menor sea la potencia de la consola destino, más deberemos reducir la complejidad de los elementos del juego, a con el fin que la frecuencia de render en tiempo real nunca llegue a bajar de las mencionadas 30 imágenes por segundo.

Es muy importante para un rigger entender la naturaleza del render en tiempo real, y así innovar con nuevas soluciones para los problemas ya existentes en este mundo tan limitado. De modo que, para cada nuevo proyecto, será necesario conocer de primera hora para qué consola se va a desarrollar, y tener bien definidas sus limitaciones de rendimiento.

2. CREANDO UN RIG

Lo primero que debemos saber cuando empezamos una producción de un videojuego, es hasta dónde podemos llegar en complejidad con nuestro rig, y el número de huesos permitido. Esto dependerá de la consola final para la que estemos desarrollando, del motor de render, y claro está del personaje a riggear (no es lo mismo hacer un rig para un personaje principal que para un secundario).

2.1 Nomenclatura

En trabajos tan complejos como el de un rigger, en el que se manejan multitud de elementos dentro de una misma escena, es fundamental el nombrar correctamente los objetos siguiendo una lógica prestablecida (la nomenclatura). Una buena nomenclatura nos hará el día a día más fácil, porque todos los elementos podrán ser fácilmente identificados, y en entornos colaborativos, permitirá que otros compañeros (p.e. un animador) participen en el proyecto sin que se tengan que volver locos intentando entender qué tienen por delante. Cada hueso, controlador y ayudante del rig, se nombraran como marque el proyecto, debido a lo siguiente:

Todo lo que creemos en nuestro software 3D de trabajo (p.e. Autodesk 3D Studio MAX) debe ser exportado al motor del juego. En videojuegos se utilizan herramientas de exportación que crean archivos xml con los datos del trabajo realizado, y que una vez importados en el motor del juego, éste pueda procesarlos y representarlos. Y es aquí donde entra la importancia de la nomenclatura, ya que ese archivo xml creado por nuestro exportador tiene la información de cada nodo de nuestro personaje, de nuestro rig. Contiene toda la información de la jerarquía creada y de los pesos de la malla al rig.

Así cuando el animador cree/exporte su clip de animación, el cual contiene información de transformación en el tiempo de cada hueso animado, y el motor del juego unirá esos dos archivos. La correcta nomenclatura permite al motor aplicar adecuadamente (mapear) la información del nodo de animación sobre el nodo del rig.

En resumen, si los nodos utilizados por el animador no coinciden con los nodos creados por el rigger, el motor no encontrará la información a mapear y nuestro personaje seguirá en su pose de T….eternamente ;)

2.2 Número de huesos

Bueno, aquí empieza nuestra dura negociación con los programadores sobre el número de huesos que pondremos en cada personaje.

Para los programadores siempre será el mismo, el mínimo posible, y para ti, lógicamente, miles y miles. Hay que asumir una realidad, el programador será quien tiene la responsabilidad de que el resultado final del juego sea fluido, y él marcará el límite (normalmente un número mucho más bajo del que un rigger desearía).

El número de huesos viene supeditado por la plataforma en la cual se está desarrollando. Aquí os voy a exponer una imagen del rig de un personaje del videojuego Castlevania Lords of Shadow: Mirror of Fate de Nintendo 3DS.

diferencias-entre-rig-para-cine-o-videojuegos

Como podéis ver, la cantidad de huesos comparado a un personaje para cine es minúscula, para esta producción de Nintendo 3DS estamos hablando de un total de 20-30 huesos para personaje secundario, y de 30-45 para principales.

2.3 Controladores

Si vamos a crear controladores en nuestro rig, debemos cerciorarnos de que están debidamente configurados: una vez creados estos controladores, hay que asegurarse de que están al final de una cadena de huesos (y no en medio), y de que su nomenclatura es la correcta. Con estos dos pasos bien hechos, nuestros controladores estarán listos para usarse.

Los controladores, a poder ser, no deben pertenecer a la jerarquía. Para ello lo mejor es siempre utilizar constraints. En caso de fuerza mayor y tener que meterlos dentro de nuestra de jerarquía, tendremos que nombrarlo de forma especial, añadiendo al principio o al final del nombre con unas siglas especiales que el motor identificará y descartará del personaje, ya que lo único a tener en cuenta por el motor es la información del hueso que el controlador tenía asignado.

2.3 Jerarquía

La jerarquía es el punto más importante en nuestro rig, será la que nos marque un antes y un después de nuestro trabajo.

Todo nodo utilizado en nuestro rig deberá estar correctamente jerarquizado, factor a tener en cuenta será que todo nodo en medio de una jerarquía no podrá tener ninguna sigla de descarte, ya que el motor la detectará y cortará por ese punto la jerarquía, quedándose fuera los huesos por debajo de ese nodo descartado.
Aquí tenéis una screenshot de una jerarquía con su bake (en el siguiente punto explico que es un bake de un rig).

Los nodos marcados en amarillo son la malla del modelo y los marcados en rojo son los huesos descartados por nomenclatura a la hora de exportar.

Diferencias entre Rig para Cine o Videojuegos

2.4 Bake de un rig

Primero vamos a explicar que es el término “Bake” (hornear) en nuestra jerga ;)
En 3D nos referimos a hornear cuando queremos fijar las características de un sistema complejo en otro más simple. El objetivo es reducir lo máximo posible los recursos para hacer funcionar el sistema, intentando conservar los beneficios del sistema complejo.

En rigging haremos “bake” de un rig complejo sobre otro más simple (en huesos y controladores), para que el rig simple herede los movimientos del rig más complejo.

Autodesk 3D Studio Max es uno de los software más utilizados por empresas del sector para desarrollar videojuegos, ya que esta herramienta posee el famoso pluging Biped. Biped (de Character Studio®) es un autorig que facilita la creación de rigs bipedos o cuadrúpedos. Posee varias herramientas que hacen que la labor del animador sea más fácil, tales como copiar poses y pegárselas a otro bípedo, o salvar la animación de un biped en un archivo para poder aplicársela más tarde a otro biped.

Creamos un rig con Biped

Pero Biped no es todo gloria, ya que su rig automático no nos deja descartar algunos huesos que en ciertas ocasiones no necesitaremos (p.e. cuello, clavículas, pelvis, piernas, etc.). Imaginaros que tenéis un personaje que tiene tan unida la cabeza al cuerpo que no necesita cuello. Pero por defecto, cuando creamos un rig con Biped el programa nos crea obligatoriamente un hueso para el cuello. Aquí es donde recurrimos a “Bakear”. Primero crearemos un rig sencillo, formado por los 20 – 30 huesos que nos pide el programador por cada personaje. Estos huesos están simplemente jerarquizados entre sí. El “bakeo” consiste en aplicar a cada hueso del rig sencillo un constraint de posición y de rotación, configurándolos para que sigan a cada hueso del rig de Biped. Con esto conseguimos un segundo rig, por encima de biped, que solo contiene los huesos que nos interesan. Este rig sencillo será el que usemos para la exportación.

Por tanto, el rig de Biped tan solo lo utilizaremos como controlador para animar. El rig sencillo (bake) contendrá una jerarquía válida para ser exportada para el motor, que además se ajusta a las limitaciones de nº de huesos indicadas. Os dejo una screenshot de un ejemplo de “Bake”. En él podéis ver un rig de biped (los huesos están representados por cajas de color verde y azul), y un rig sencillo formado por una sencilla jerarquía de huesos (amarillos), sobre el que haremos el bake. El Biped tiene 25 nodos, mientras que el rig sencillo 20: hemos ahorrado los huesos del cuello, clavículas y punta de los pies. Para bakear simplemente aplicaremos a cada hueso amarillo constraints de posición y rotación para que sigan a los huesos del biped.

diferencias-entre-rig-para-cine-o-videojuegos

2.5 LOD (Niveles de detalle)

Los LOD (level of detail) son versiones simplificadas de nuestros personajes: con menos polígonos, huesos y calidad de texturas que los utilizados en la versión de alta (la inicial que hemos creado). Por cada personaje podemos tener una versión alta, una reducida, y otra superreducida. Estas versiones simplificadas son usadas por el motor del juego cuando nuestros personajes son vistos a mucha distancia, por lo que no se van a apreciar detalles innecesarios y obtener así mejor rendimiento.

La jerarquía de las versiones simplificadas tienen que ser prácticamente idéntica a la versión normal, para poder aplicar a estos rigs el mismo clip de animación que usamos para la versión normal (los cilps de animación son únicos, no se exportan por duplicado). Por eso a la hora de crear rigs de menor LOD, tan solo descartaremos huesos que estén al final de las cadenas, por ejemplo, los dedos de una mano.

Los huesos que no son menos apreciables desde lejos, y que se suelen eliminar son los dedos, pelo y las faciales.

3.DIFERENCIAS UTILIZANDO SKIN

diferencias-entre-rig-para-cine-o-videojuegosTrabajando con el skin existe solo una diferencia respecto al cine: cada vértice solo puede tener influencia de 3 huesos.

3.1 Influencia de huesos a un vértice

A la izquierda tenéis un screenshot del parámetro que nos permite configurar este límite en 3DS MAX.

Hay que tener en cuenta que si se nos ha olvidado tener en cuenta este límite al crear tu skin, al importar el rig el motor del juego hará caso omiso a partir de la información del cuarto peso que tenga un vértice.

4. PROCESO DE EXPORTACIÓN

Bueno aquí viene la parte que ha todo artista se le hace cuesta arriba, entender y saber exportar tu trabajo.

El proceso de exportación se realiza mediante utilidades creadas por el TD o el programador de tools, las cuales engloban parámetros a tener en cuenta por el motor. Estas utilidades recogen información del trabajo realizado por el artista y lo plasman en un archivo, el cual pasa a programación para introducirlo en el motor.
El rigger exporta su trabajo (que contiene la malla del personaje) en un archivo, cuya extensión es un código identificativo. El animador exporta su clip de animación en otro archivo, usando como extensión el mísmo código identificativo. Así al introducirlos al motor, este enlazará cada archivo y crea nuestro personaje con su animación.

diferencias-entre-rig-para-cine-o-videojuegos

5. EL RETO DE TENER LIMITACIONES

Para terminar, me gustaría contaros cómo convivo como rigger con las limitaciones propias de una producción para realtime.

Es cierto que limitan nuestro trabajo, y las prestaciones que puede tener un personaje. Pero también hacen posible que juegos impresionantes se puedan ejecutar en máquinas con hardware muy limitado, y eso es un auténtico reto del que sentirse orgulloso. Ten en cuenta que en esta industria se valora muy positivamente qué eres capaz de hacer pese a las limitaciones, así que tu creatividad y tu aportación de valor serán ingredientes básicos para avanzar en tu carrera profesional.

No olvides ponerte las pilas con el script. Es una programación a nivel básico, que hará que tus rigs sean mucho más precisos y fáciles de usar. El scripting en videojuegos no solo se usa para crear  rigs, sino para generar herramientas que sean compatibles con tus trabajos diarios, tales como la exportación, creación de “bakes” automáticos, etc.

Espero que os haya servido de ayuda ;)

Carlos Bolaños
Lead Animator y Rigger en Mercury Steam

*Todas las imágenes están cedidas por Mercury Steam

Curso Online Avanzado Rigging Personajes 3D
En 3DSMAX o en MAYA
Convocatoria próxima: 10 de abril 2017

Plazas limitadas

Deja un comentario

Tu dirección de correo electrónico no será publicada.