Creando la cara de un personaje para el juego "OnAir"

Buenas tardes Mi nombre es Daria, soy artista 3d en el estudio de producción RainStyle. Actualmente estamos desarrollando un juego de terror de ciencia ficción llamado "On Air" .

imagen

El juego cuenta sobre misteriosos eventos que ocurrieron con el personaje principal, que accidentalmente se hospedó en el hotel estadounidense Algol. Este incidente cambiará completamente su vida y lo hará enfrentar lo desconocido.

Este es nuestro primer proyecto de juego y en él tratamos de lograr el máximo realismo de los personajes, transmitir sus emociones y carácter. Por lo tanto, para crearlos, se decidió utilizar la tecnología de escaneo facial. Como parte de los objetivos del proyecto, necesitamos dos grados de detalle para los personajes: para renderizar, para cinemática y low poly, para usar en el juego en sí.

El juego On Air se está desarrollando en Unreal Engine 4. Planeamos escribir varios artículos en los que describiremos en detalle las etapas de preparación del personaje.

Por el momento, estamos creando una versión demo del juego, que pronto aparecerá en Steam. En este artículo hablaré sobre la etapa inicial de crear la cara del personaje principal de nuestro juego.

imagen

Parte 1


La imagen a continuación muestra algunas de las emociones que recibimos después de procesar los escaneos.

imagen

Básicamente son exagerados y no parecen realistas. Esto se hizo a propósito. El hecho es que la base de este método para crear una cara es el principio de mezclar las formas de "Formar formas". Es decir, cada una de estas emociones se aplicará no de forma "pura", sino en combinación con otras. Hablaré más sobre esto al final del artículo. Primero, debe averiguar qué hacer con el cabezal escaneado y cómo podemos usarlo. Obviamente, la topología del escaneo no permite usarlo como modelo, pero al hornear el mapa normal obtenemos las características principales de la cara, arrugas, poros, golpes o cicatrices. También del escaneo podemos extraer la textura del color base.

imagen

El programa Wrap 3.3 nos ayudará con esto. Es ampliamente utilizado para procesar modelos escaneados. Con su ayuda, proyectaremos nuestro futuro modelo de cabeza en escaneos.

Parte 2


Primero necesitas crear la llamada malla base. Es decir, una expresión facial neutral que subyacerá a todas las emociones. Nuestro escaneo neutral de emociones se ve así:

imagen

El programa Wrap 3.3 tiene un sistema de nodos, es decir, todas las funciones se presentan en forma de nodos (nodos) que están conectados entre sí por una cadena.

La selección de nodos se realiza con la tecla Tab. Usando los nodos LoadGeom y LoadImage, se carga un escaneo con una emoción neutral y su textura correspondiente. Para hacer esto, especifique la ruta en la ventana Nombres de archivo. En la configuración del nodo "LoadGeom", puede elegir varios modos de mostrar la geometría (la función de estructura alámbrica está desactivada en la imagen a continuación). Aquí también puede cambiar el color de la geometría (no funciona si la textura está conectada), las coordenadas y la escala.

imagen

A continuación, debe cargar la malla base, que se proyectará en este escaneo. Puede encontrarlo en la pestaña "Galería". Aquí hay muchas emociones preparadas. En este caso, elijo Basemesh.

imagen

Basemesh debe coincidir aproximadamente con un escaneo. Para hacer esto, puede usar el eje de coordenadas.

Para proyectar la malla base en el escaneo, utilizo el nodo Wrapping. Cuando pasa el mouse sobre los nodos del nodo, se muestra una información sobre herramientas: el primer nodo, geometría flotante, para la geometría proyectada, el segundo nodo, geometría Fixet, para el objeto fijo sobre el cual se proyectará la geometría (en nuestro caso, es un escaneo con una emoción neutral).

imagen

Para comenzar el cálculo, es necesario marcar los puntos en ambos modelos que se corresponderán entre sí. Para esto, se utiliza el nodo Seleccionar puntos, que está conectado a los nodos correspondientes de los modelos. Después de seleccionar este nodo, vaya a la pestaña Editor visual. La función Sync views incluida le permite sincronizar cámaras para las ventanas izquierda y derecha.

imagen

Si el modelo proyectado contiene polígonos que deben permanecer en su lugar, debe seleccionarlos utilizando la función Seleccionar polígonos. De lo contrario, pueden surgir artefactos asociados con los detalles internos de la malla.

imagen

Para usar el nodo Seleccionar polígonos, use la pestaña Editor visual. Aquí puede seleccionar los polígonos que los Modelos de la galería están divididos en poligrupos, esto simplifica la tarea: se pueden seleccionar o deseleccionar en el panel superior.

Destaco las partes internas de la garganta, las fosas nasales, los párpados extremos y la parte inferior del cuello.

imagen

imagen

Después de eso, el modelo se proyectará correctamente.

imagen

Además, para una mayor granularidad, puede usar el nodo Subdivide. Se conecta a la malla base y todos los nodos a continuación están conectados a su nodo inferior (Salida).

imagen

Luego, hornee la textura del escaneo a la malla base. Para esto, se utiliza el nodo Transferir textura. El nodo de geometría de origen se conecta al modelo con el que se horneará la textura. En nuestro caso, este es un escaneo. El nodo de geometría Target está conectado a la malla base, pero no al nodo LoadGeom, sino al nodo Wrapping, ya que usaremos la geometría proyectada ya modificada.

imagen

En la configuración de este nodo, puede seleccionar la calidad de la textura horneada. Después de eso, vale la pena agregar el nodo Extrapolar imagen para completar los lugares transparentes y guardar la textura resultante usando el nodo Guardar imagen y presionando el botón Calcular marco actual. La geometría se guarda de la misma manera usando el nodo Guardar Geom.

imagen

Parte 3


Después de obtener una emoción y textura neutrales, podemos pasar a obtener geometría para otras emociones. Para hacer esto, cargue el modelo de escaneo y Basemesh con texturas.

imagen

A continuación, debe alinear Basemesh de acuerdo con el escaneo. Para empezar, puede comparar modelos aproximadamente utilizando ejes de coordenadas.

imagen

Un nodo que le permite alinear con mayor precisión los modelos entre sí: alineación rígida. El nodo de geometría flotante conecta la geometría que debe alinearse. En el nodo Geometría fija, respectivamente, habrá geometría estática (en nuestro caso, esto es un escaneo).

imagen

Cuando use el nodo Alineación rígida, debe usar el nodo Seleccionar puntos:

imagen

Mi modelo tiene marcadores de control que simplifican la tarea de seleccionar puntos. Para alinear los modelos uno con respecto al otro, se deben colocar puntos en aquellas partes de la cara que cambian ligeramente al representar una emoción particular. En el caso de esta emoción, esta es la frente, la parte superior de la nariz, el cuello, etc. Además, es aconsejable colocar puntos en todos los lados del modelo (es decir, no solo en la cara, sino también en la parte posterior de la cabeza y las orejas).

imagen

Como resultado, obtenemos modelos alineados entre sí:

imagen

En la configuración del nodo Alineación rígida, hay una función de "coincidencia de skale". Se usa si los modelos necesitan ser escalados también.

Después de eso, puede comenzar a proyectar la malla base en el escaneo. Para esto, usaremos el nodo Optical Flow Wrapping. Le permite alinear la geometría de acuerdo con la textura del escaneo. Al mismo tiempo, la textura resultante de las emociones coincidirá completamente con la textura de la malla base, con la excepción de las arrugas, arrugas y otros cambios. Todas las irregularidades de la piel y los poros al usar este método permanecen en su lugar.

imagen

Antes de usar la corriente óptica, como en el primer caso, se usa el nodo Seleccionar polígonos:

imagen

Por lo tanto, las partes fijas de la cabeza permanecerán en su lugar.

También puede usar el nodo Seleccionar puntos. Aquí están los puntos en las partes móviles de la cara:

imagen

A continuación, vaya a la configuración del flujo óptico. Las cámaras que se pueden ajustar aparecieron en la ventana del Editor visual alrededor del modelo.

imagen

En la parte superior hay un menú desplegable con el que puede ir a la vista desde la cámara. Hay 13 por defecto. Debe configurarlos para que la cara encaje completamente en el marco.

imagen

Por recomendación de los desarrolladores, dejo casi todas las configuraciones de forma predeterminada con la excepción de los parámetros finales Resolución final y Flujo óptico final:

imagen

Después de eso, puede hacer clic en Calcular y ver el resultado:

imagen

Después de que la malla se proyecta exactamente sobre el escaneo, debe hornear la textura. Esto se hace de acuerdo con el mismo principio que en la primera parte del artículo:

imagen

Como resultado, si combina la textura resultante con la textura de la malla base, se agregarán algunos detalles, pero al mismo tiempo, los puntos de control coincidirán:

imagen

Después de eso, la textura y la geometría resultante se pueden guardar.

imagen

Como resultado, obtuvimos una malla de una nueva emoción con una textura.

Parte 4


El método de formas de mezcla le permite "mezclar emociones". Para hacer esto, cargue las mallas ya recibidas en el nodo Formas de fusión.

imagen

Cargué una emoción neutral en el primer nudo. Al mover los controles deslizantes en la configuración del nodo, puede elegir qué tan fuerte se expresará esta o aquella emoción. Para que este método funcione, los modelos deben tener la misma topología.

imagen

imagen

Resultado


El proceso anterior es solo una pequeña parte de un trabajo muy voluminoso. Después de recibir los modelos de cabeza LowPoly, fue necesario crear mapas normales, aspereza, subsuperficie, etc., así como configurar el sombreador (en nuestro caso, configuramos el sombreador para el renderizado y el motor). Los ojos, la ropa y el cabello también se crearon por separado. También vale la pena señalar que solo tres personas realizaron esta tarea. Esta fue nuestra primera experiencia en la creación de un personaje muy detallado. Quedamos satisfechos con el resultado, pero nos esforzaremos por obtener más.

imagen

Source: https://habr.com/ru/post/471288/


All Articles