Creación de modelos de juegos en 3D para los pobres: Indie Way

¿Alguna vez te has preguntado cómo funciona un pequeño estudio independiente de desarrollo de videojuegos?

Puedes crear juegos con un presupuesto muy pequeño, pero esto requiere ingenio, mucho trabajo y aún más amor por tu trabajo.

Somos un pequeño equipo de Polonia. Solo somos tres, pero solo dos personas participan en un proyecto a tiempo completo.


Hoy hablaremos sobre el proceso de creación de personajes para nuestro juego "El fin del sol". Tenga en cuenta que las capturas de pantalla que se muestran en el artículo provienen de un proyecto que aún está en desarrollo.

Este texto está dedicado solo a los elementos estáticos de los personajes: le diremos cómo escaneamos un personaje y ropa, cómo se crearon elementos adicionales y también cómo configuramos el motor de Unity para obtener tales capturas de pantalla:







Pero comencemos desde el principio. Antes de comenzar, preparamos una lista de propiedades que nuestros personajes necesitan:

  1. El 80% de los elementos de nuestro juego se escanean mediante fotogrametría . Además, queríamos darle a nuestros héroes una apariencia humana, por lo que decidimos escanear los rostros de las personas.
  2. Hermoso cabello compatible con el motor de juego Unity.
  3. En nuestro juego será posible conocer al mismo personaje en diferentes períodos de su vida . ¿Qué significa esto? Tuvimos que crear hasta cuatro versiones de los personajes para cada período (niño, adolescente, adulto, anciano). Por lo tanto, era importante para nosotros encontrar una manera de crear versiones antiguas de personajes lo más rápido posible.
  4. Para enfatizar la apariencia eslava de los personajes, típica de los lugares donde vivimos, también se escanearon las ropas tradicionales .
  5. Algunos de los elementos que no existen en el mundo real o que no se pueden escanear, los creamos manualmente de la manera estándar (modelado 3D).
  6. Cada elemento de personaje se puede activar o desactivar . ¿Qué significa esto? Por ejemplo, podemos reemplazar la falda del personaje, quitarnos el sombrero si no es necesario. Esto brinda una amplia oportunidad para crear una nueva apariencia: en una escena, el héroe puede estar sin camisa, en la segunda, completamente vestido.
  7. Nuestros personajes no son interactivos, es decir, el jugador no puede controlarlos (al menos directamente). Pero este es un juego sobre su historia, por lo que es muy importante para nosotros poder controlar a todo el personaje con el movimiento de los músculos faciales (esto se discutirá con más detalle en otra publicación).


En el artículo hablaremos de un solo personaje en un estado joven y viejo, porque en nuestro juego la trama es muy importante y no queremos estropear el placer de los jugadores.

Entonces, haciendo una lista, puede comenzar a trabajar en gráficos.

1. Fotogrametría de la cara y preparación de un cuerpo tridimensional.



Actriz en proceso de fotogrametría.

Fotogra ... ¿qué?

Comenzamos escaneando las caras de nuestro modelo usando el método de fotogrametría . Este es un tema para una publicación separada, pero puedes aprender un poco más al respecto en nuestro canal de YouTube .

Vaya a Wikipedia:

La fotogrametría es una disciplina científica y técnica involucrada en la determinación de la forma, el tamaño, la posición y otras características de los objetos a partir de sus imágenes fotográficas.

En otras palabras: la fotogrametría es una forma de restaurar la profundidad 3D de varias fotografías (o varias imágenes) para crear un modelo virtual tridimensional que se parece a un objeto en el mundo real.

Un gran estudio AAA con un gran presupuesto utiliza muchas cámaras para escanear un personaje. Están ubicados alrededor del actor y toman muchas fotos al mismo tiempo ...

... Pero, ¿y si solo tenemos una cámara?

Sí, aquí surge un problema y ¿cómo lo solucionamos? Los escaneos creados de esta manera serán peores que cuando se trabaja con muchas cámaras, pero esto es suficiente para que podamos crear una forma de cara básica y una textura de alta calidad horneada. Esta es la "forma independiente" de crear fotogrametría.


Hicimos muchos intentos, así que aquí hay algunos consejos para crear instantáneas con una sola cámara:

Un actor o actriz no debe moverse hasta que termine de tomar fotos de su rostro. Ni siquiera pueden parpadear y respirar. (Disparar generalmente toma alrededor de 10-20 segundos, pero aún es difícil de lograr)

Tuvimos que tomar fotos muy rápidamente de diferentes lados de la actriz. Para hacer esto, utilizamos el modo ráfaga. A veces había problemas para enfocar, pero tomar fotos de la manera más rápida para que la actriz permaneciera inmóvil.

Es mejor poner al actor en una silla con reposabrazos, es más fácil quedarse quieto.

Tomamos fotos solo desde el frente de la actriz. En las capturas de pantalla puedes ver fotos desde la parte posterior, pero en el escaneo final no las usamos. En general, para crear un escaneo solo necesita entre 8 y 10 buenas fotos al frente .

También es bueno usar un filtro polarizador con la cámara, ya que reduce la luz en la piel, lo que mejora la forma del modelo y la textura.

Para tal esquema, use al menos cuatro softboxes para mejorar la textura y reducir el procesamiento posterior.

Use la velocidad de obturación más alta posible para evitar el desenfoque de movimiento, así como la apertura más pequeña posible (me refiero a f.5 y superior) para obtener un amplio rango de enfoque en las fotos. Para esto, se necesitan al menos cuatro softboxes muy potentes. Por supuesto, el ISO debe mantenerse lo más bajo posible para evitar el ruido.

Para analizar fotos y crear un modelo, utilizamos el software Photoscan 3D . Así es como se ve la nube de puntos después de procesar fotos:


Visualización de nube de puntos y diseño de fotos.

Como puede ver, hay fotos en la parte superior e inferior del personaje, pero ahora puedo decir que no recomendamos tomarlas. Es mucho mejor tomar alrededor de 8-12 buenas fotografías de la parte frontal de la cara (arcos desde la oreja izquierda a la derecha). Esto da resultados mucho mejores para la textura y el modelo. El único inconveniente es que el cuello del modelo debe crearse manualmente, pero este es un pequeño problema.

Después de crear una nube de puntos, la procesamos en un modelo tridimensional de alta poli :


Ya se ve mejor, ¿verdad? Pero el modelo 3D muestra mucho ruido:



Ocurre por las siguientes razones:

- Desenfoque de movimiento con instantáneas muy rápidas

- La micromovimiento de nuestra actriz (sí, incluso mover la cara 1 milímetro conduce a un ruido similar)

La mayoría de ustedes probablemente piensan que esto se ve horrible, y tienen razón. Por eso hemos dado algunos pasos más.

Ahora puede hacer una operación llamada "retopología" . Esta es una técnica para crear un modelo 3D de una forma más simple y óptima basada en un modelo de alta poli.

Así es como se ve en la práctica:


Carácter de retopología.

Esto se debe a que el modelo que se muestra arriba contiene más de un millón de triángulos . Una computadora normal con una velocidad de cuadro de 30-60 fps puede manejar 5-6 millones. (Esta información se proporciona simplemente para una comprensión general, de hecho, muchos otros aspectos afectan el rendimiento). Es decir, el juego puede mostrar solo unos pocos modelos con tantos triángulos.

Otro aspecto importante de la retopología es la creación de un modelo de rostro liso , listo para la animación facial. Para la retopología, utilizamos el software Topogun 2.

Aquí está nuestro modelo de rostro después de la retopología (lo puliremos más tarde, después de texturizar):


Luego horneamos (en la jerga de los gráficos en 3D, simplemente significa preparación / creación) la textura de la cara usando nuestras fotos. Esta operación se realiza casi automáticamente. Es por eso que decidimos usar la fotogrametría: el modelo de la cara y la buena textura hacen que nuestro personaje sea natural.


Hmm, todavía hay mucho por hacer, como puedes ver, hay pequeños errores en la textura. Otro problema menor es la falta de una parte posterior de la cabeza y los ojos.

Por lo tanto, el siguiente paso será la creación de elementos sin escanear y elementos que no se pueden escanear, como pestañas, cabello, ojos. Así que veamos cómo se hace esto. Utilizamos otro paquete de software llamado Cinema 4D. En este software, podemos crear el resto del modelo y mejorar su textura.



Genial, se ve mucho mejor. Antes de comenzar a trabajar en la textura, necesitamos crear un cuerpo con huesos para la animación . (Esta será una publicación separada en nuestro blog).

Para nuestro primer personaje, creamos todo el cuerpo manualmente, pero fue una pérdida de tiempo completamente innecesaria, especialmente teniendo en cuenta que cuando lo vestimos, las partes desnudas del cuerpo solo eran visibles en raros momentos del juego.

Después de un poco de búsqueda, encontramos una excelente manera de crear cuerpos en 3D para nuestras caras escaneadas. Usamos Make human software gratis para uso comercial para esta tarea. Con este software puedes crear un cuerpo completo, incluso con una cara y un esqueleto. Simplemente mueva los controles deslizantes hasta obtener el resultado deseado, además, tendrá un esqueleto compatible con el motor Unity 3d.


Por lo tanto, en solo unos minutos tenemos un cuerpo completo con una excelente topología e incluso pesas, ¡listo para la animación! (Si no comprende de lo que estoy hablando, lea la segunda publicación sobre animación de personajes, que se lanzará pronto). Este es un software muy útil.

El único problema es que necesitamos destruir parte del modelo cortando la cabeza del cuerpo (suena aterrador). Necesitamos hacer esto para reemplazarlo con un modelo escaneado.

Lo más importante aquí es que, gracias al software Make human, tenemos pesas óseas preparadas para la animación.


Solo necesitamos agregar huesos faciales para poder animar las emociones faciales o sincronizar los movimientos de los labios con los diálogos. Pero más sobre esto pronto será la próxima publicación en nuestro blog.

Puede tomar todo un día crear el sistema correcto de huesos faciales (sí, lo sé, no hay huesos en la cara, sino músculos, pero así se llaman en 3D).


Por supuesto, para crear hermosas texturas, también necesitas mucho trabajo. Utilizamos la técnica de separación de frecuencia en Photoshop para eliminar el resplandor y el retoque de la piel. Esto crea un flujo de trabajo que es muy adecuado para eliminar la iluminación innecesaria de las texturas (incluso cuando se trata de un modelo escaneado de una piedra, no de un rostro humano). También deberías probar este proceso. (Hay mucha información en Internet sobre la separación de frecuencias).

La textura final de Albedo se ve así : (lo siento, pero antes del lanzamiento del juego no queremos diseñar una textura de alta resolución)


Textura albedo

Y aquí hay un modelo con una textura de albedo ya aplicada.



Ahora agregamos dientes, lengua y ojos:


Así es como se ve un modelo terminado de una cara y un cuerpo escaneados unidos con una textura terminada (censura impuesta para que pueda compartir la imagen en las redes sociales).


El aspecto final del cuerpo y la cara en 3D.


2. Creación en tiempo real de cuero cabelludo y pestañas.


Escribí este capítulo porque crear un cabello que funcione y se vea bien en un videojuego es un tema bastante amplio. Probablemente algunos de los cabellos más hermosos que puedas ver en los juegos AAA. Somos indies, por lo que no podemos pasar tanto tiempo en un aspecto de nuestros personajes como las grandes empresas.

Por lo tanto, creamos cabello a partir de polígonos con una textura superpuesta sobre ellos con transparencia.

Como funciona Primero, modelamos polígonos en forma de cabello, y luego los colocamos en la cabeza del personaje y los movemos / distribuimos usando herramientas de modelado 3D. (En nuestro caso, Cinema 4D.) También puede hacer esto en el generador de splines: cree una spline con una malla dinámica a lo largo, luego se simplificará la manipulación del cabello.

Entonces, todos los peinados fueron creados a partir de tales partes:


El cabello sin material se ve así:



Aquí hay un peinado con una textura terminada aplicada:



Y aquí está el peinado de las capturas de pantalla, que se muestra al comienzo de la publicación.

Como puede ver, podemos cambiar los peinados, por lo que no hay problema , por ejemplo, en agregar un personaje mayor a un peinado.



Por supuesto, cuando creamos cabello, usamos Photoshop y BodyPaint 3d para dibujar rayas en el cabello y elementos de diferentes formas. Puede usar cualquier otro software, pero sería genial si tuviera un modo de visualización de transparencia alfa en tiempo real. Entonces definitivamente verás lo que estás haciendo (y no solo las rayas grises en la cabeza del personaje).

La textura del cabello es la siguiente:


Textura de cabello albedo con transparencia

Para darle al cabello un comportamiento natural, intentamos usar un componente de tela Unity 3D en la malla del cabello para agregar un ligero efecto de viento o gravedad, pero más en eso en otra publicación.


3. Crear versiones anteriores de personajes



"Chica, pronto serás mujer"

Como dije anteriormente. en nuestro juego puedes conocer personajes en diferentes etapas de su vida. Esto agrega interés a los jugadores y también nos obliga a realizar un trabajo interesante adicional.

Mostraré cómo hicimos a una hermosa niña mucho mayor. Vimos muchos videos, fotos y páginas web sobre cómo envejece el cuerpo humano.

No se trata solo de arrugas; toda la cara de una persona cambia de forma. Puedes leer más sobre esto aquí .

En el artículo hablaré sobre el aspecto técnico del problema. Entonces, primero completamos el modelo 3D del personaje joven con todos los huesos. Esto es muy importante, porque lleva mucho tiempo preparar el esqueleto y agregar pesas. Después de eso, simplemente lo copiamos y comenzamos a trabajar con una copia del modelo. Gracias a este flujo de trabajo, no necesitamos volver a participar en la manipulación de la versión anterior del personaje, ya que utiliza el mismo sistema de esqueleto. Esto es mucho más importante en el motor. Tal sistema acelera la carga y descarga de recursos, porque cargamos / descargamos solo lo que necesitamos.

Entonces, primero modificamos la malla base y bajamos algunas partes de la cara al suelo, como lo hace la gravedad materna al envejecer. Nariz, mejillas, cejas, orejas. Pero no estamos demasiado interesados ​​en ello, porque la modelo tiene los mismos huesos faciales que la modelo del personaje joven. (Es decir, cambiar demasiado la malla de la base puede causar problemas).


Solo deformación de malla

Luego aplicamos grandes arrugas y detalles con algún software de escultura. Por ejemplo, puede usar el Scupltris gratuito. Luego los horneamos en una textura llamada mapa normal. Por qué Porque nos da el resultado que se muestra a continuación sin agregar triángulos adicionales al modelo. (Para que su PC pueda manejar su procesamiento). También creamos un mapa normal de algunos detalles en función de la textura de la piel, y luego los mezclamos.


Malla más mapa normal

Finalmente, agregamos arrugas a la textura del albedo (textura con un color base). Tomamos fotos de varias personas mayores y luego agregamos arrugas al modelo mediante la combinación en Photoshop.


Malla más mapa de normales de partes grandes y textura albedo de cuero viejo

Entonces, como resultado, la piel de nuestro modelo de un personaje anciano usa un mapa normal de detalles y una textura de albedo. También preparamos la textura de dispersión subsuperficial (efecto de dispersión subsuperficial, el efecto de la luz que brilla a través de la piel) y el mapa especular, pero en lo que ve en la pantalla, solo se usan el albedo y el mapa normal (mezclados en un mapa de parte normal de partes grandes + mapa de parte normal) .

Aquí podemos ver las siguientes partes:

1. Albedo-tarjeta.

2. El mapa normal de piezas grandes, basado en los detalles moldeados del modelo.

3. El mapa normal de partes grandes mezcladas con detalles de piel creados a partir de textura de albedo.




Un personaje antiguo se ve mucho mejor en el motor Unity 3D, donde usamos los sombreadores apropiados:



Pero dos versiones del personaje conectadas en Photoshop (colocadas en el motor en un solo lugar)


imagen

4. Busque personajes con ropa real.


Entonces, llegamos casi al final, pero para lograr la apariencia final del personaje, queda mucho por hacer.

Escaneamos muchas prendas diferentes. La técnica de escaneo es similar a escanear una cara u otros objetos, pero ahora se puede hacer lentamente, generalmente la ropa no se mueve (el viento o los gatos que pasan pueden ser muy molestos, especialmente cuando incluso un ligero movimiento puede arruinar las horas de trabajo).

No pudimos obtener consejos o soluciones listas para el escaneo adecuado de la ropa, porque estos son nuestros consejos sobre lo que necesita y lo que no puede hacer:

- Lo más importante es arreglar la estructura para que la ropa quede inmóvil; Mejor aún, mantenga su ropa en una pose estable en T. ¿Qué significa esto? Esta es una pose con los brazos bien separados, una posición estándar para los personajes en los juegos a los que se aplica la animación. También en esta posición, es mejor escanear la ropa.

Para esto compramos un maniquí. No pudimos encontrar de inmediato el maniquí en la pose en T, por lo que disparar a mano fue muy difícil, y se requirió aún más trabajo para combinar modelos 3D de la ropa escaneada con las manos hacia abajo a lo largo de los cuerpos de los personajes. Inicialmente, el sistema se veía así:


Nuestro primer maniquí con los brazos hacia abajo.

... así que lo modificamos para levantar las manos. Hicimos nuevas manos con tubos de PVC. Así es como se ve nuestro Tube-Nook en T-pose:


Este maniquí tiene manos hechas de PVC y se coloca en una pose en T


Podemos quitar este tubo para simplificar el vendaje del maniquí.


Bueno, eso está bien, pero ¿por qué en nuestro amigo plástico son estos puntos negros?

Esto se debe a que la superficie es muy brillante, y los guiones para comparar puntos en fotogrametría no les gustan las cosas brillantes, pero adoran los puntos y las características, por lo que ponemos tantos puntos en el marcador.Esto nos permitió comparar mejor las posiciones de las fotografías en el software para obtener mejores escaneos de ropa.

Así es como se ve la ropa, en este caso el pelaje (en la pose en T):


- El segundo aspecto más importante al crear ropa con fotogrametría es recordar tomar fotografías debajo de los brazos y debajo de la ropa. Estas son las fotos que tuvimos que tomar para crear un escaneo lo suficientemente bueno de esta ropa:


Aquí puede ver la nube de puntos de escaneo:


- Algunos tipos de ropa son muy difíciles de escanear, por ejemplo, con pelaje largo o con materiales muy brillantes, por lo que a veces es más fácil no escanearlos, sino crearlos manualmente.

Por ejemplo, para mejorar la apariencia de este pelaje, creamos elementos de pelaje adicionales con un canal de transparencia alfa. Esto es similar a lo que hicimos con el cabello de los personajes.


La parte roja son los elementos del pelaje, creados manualmente con el canal alfa.


Así es como se ve sin textura

: algunos tipos de objetos son más fáciles de escanear, por ejemplo, esta falda mate se ve muy bien porque está hecha de material mate. También aquí usamos imágenes HDR para obtener más información en sombras y reflejos, pero la fotogrametría hdr lleva mucho tiempo. Por quéDebido a que cada toma debe tomarse con un trípode, de lo contrario, las fotografías serán borrosas. Ahora imagine el nivel de molestia cuando, después de una hora de trabajo, uno de nuestros gatos simplemente saltó sobre este pelaje. Tuvimos que comenzar de nuevo.



Se ve bien, ¿verdad? En general, cuanto más tiempo dedique a escanear, mejor obtendrá el resultado y menos procesamiento posterior.

- Otros elementos que se realizan mejor manualmente en lugar de escanear son los cinturones. Los creamos manualmente. Hicimos el bucle de texturas para que, incluso con una baja resolución de texturas, la calidad en el juego fuera alta.



- La corona también se hizo similar al cabello, con transparencia. Todavía no está listo, pero se puede ver en las capturas de pantalla:


Bueno, eso se trata de ropa por ahora.

imagen

5. La conexión de todo en el motor del juego.


Dije anteriormente que usamos el motor Unity 3D. Te diré sobre qué sombreadores y configuraciones usamos para hacer que el modelo se vea en las capturas de pantalla.

Para todos los elementos de los personajes, ahora usamos el Alloy Shader gratuito. Lo elegimos porque tiene todo lo que necesitamos, especialmente la opción de disolución para cada variación de sombreador y muchas otras opciones en los segmentos. Puede usar cualquier otro sombreador, pero nosotros usamos Alloy (además, es gratis).


Las diferentes posiciones de la luz dan efectos interesantes

- Máscara: para esta parte de los personajes usamos un sombreador de piel con el efecto de dispersión del subsuelo y transmisión de luz. ¿Cuál es el efecto de dispersión subsuperficial? Esta es una simulación del paso de la luz a través de la piel. Mira las fotos que tomamos:


Así es como se ve la dispersión subsuperficial en una mano en el mundo real

Como puede ver, la luz (si es lo suficientemente fuerte) atraviesa la piel.

Esto le da un aspecto muy natural, especialmente con poca luz. Puede ver cómo se comporta este efecto en The End of the Sun usando el ejemplo de este gif y las capturas de pantalla que se muestran arriba. (Tenga en cuenta que si bien el modelo ni siquiera tiene una textura especular y un mapa del subsuelo, se verá un poco mejor en la etapa final).


- Ojos : como sabes, los ojos son un espejo del alma. Y es cierto: es muy difícil darle a un personaje un aspecto natural sin hacer que sus ojos sean perfectos. El ojo no es solo una esfera. Es plano donde se encuentra el iris, y la pupila es aún más baja. Por eso utilizamos el sombreador Parallax. Esta es una superficie que crea la ilusión de que hay algo más profundo, ¡y da muy buenos resultados!



Ojos con esfera transparente extra grande para reflejos lejanos


Ojos sin esta esfera.

Además, ahora podemos controlar la expansión de las pupilas, y en escenas de corte esto crea un aspecto muy natural (un poco aterrador cuando la pupila está dilatada al máximo, pero para fines de fantasía este efecto sigue siendo útil).


- Y la última: dado que usamos un esqueleto para todas las versiones de ropa y cuerpos, podemos convertir fácilmente a un personaje joven en uno más viejo o cambiar su ropa. Esto crea excelentes oportunidades para crear escenas cinematográficas y también optimiza notablemente el juego.


Así es como podemos mezclar los elementos del personaje creado de esta manera.
- Para la ropa, utilizamos un sombreador de doble cara para que pueda verlo desde ambos lados.


- Para el cabello, utilizamos un sombreador especial de doble cara con bordes transparentes lisos.


6. Resultados finales


Debajo del corte hay una galería completa de cómo se ve la versión final del personaje en el motor Unity 3D: (pero todavía está en desarrollo)

Galeria













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


All Articles