¿Cómo se crean los modelos 3D en los videojuegos?


15

¿Cómo se diseñan y muestran los modelos 3D en los juegos? ¿Es todo código? Dibujado en papel, luego en un software de gráficos 3D, entonces ... ¿qué?

Por supuesto, los programadores de juegos no definirán cada vértice de cada forma (/ objeto) que quieran dibujar, todo en código (ya sea en Direct3D o OpenGL). Entonces, ¿los diseñadores de juegos tienen herramientas para usar, como Maya o algo parecido a los softwares de gráficos 3D patentados que existen; ¿"dibujan" el modelo en ese software, lo exportan en cualquier formato, luego los programadores lo analizan mediante código e ingresan automáticamente los vértices sin procesar decodificados / analizados del objeto / modelo?

He buscado mucho en Google, pero no pude encontrar algo sólido para explicar cómo se trabaja este aspecto de los videojuegos profesionales.


2
Aquí hay una documentación bastante realista del proceso de arte: Salvationprophecy.com/forum/viewtopic.php?f=4&t=413
Blue Wizard

Hmm ... esto podría considerarse demasiado amplio para ser respondido, o no constructivo. Pero, al mismo tiempo, parece razonable preguntar por alguien que nunca se acercó a gamedev y quiere comenzar a aprender, y se le podría dar una buena respuesta. Por lo tanto, no estoy seguro de si esto debería cerrarse o no.
Laurent Couvidou

1
Por lo general, las personas que hacen los modelos se llaman artistas , no diseñadores : artista de personajes, artista ambiental, animador ... El diseñador de juegos trata más sobre diseñar el juego real , sus reglas, etc.
Laurent Couvidou

Respuestas:


16

En todos los juegos en los que he trabajado, el Canal de creación de activos es algo así:

  1. el artista conceptual (para niveles / fondos / modelos de nivel) o el artista de personajes (para modelos) generará bocetos para personajes / niveles / etc. por lo general, se dan varias opciones al director creativo / al líder artístico para decidir cuál le gusta más.
  2. El arte del concepto / personaje que ha sido aprobado se entrega a un modelador para que lo use como referencia. A veces, el artista del personaje realiza un perfil / frente adicional en el arte para proporcionar un marco o referencia más limpio para el proceso de modelado. He visto muchos modeladores con el arte conceptual atrapado en 3d max / maya / etc. como referencia directa.
  3. Los modeladores suelen generar también las texturas base para el modelo, generalmente con los materiales de sombreado correctos para el tiempo de ejecución. los sombreadores se usan para representar el modelo en el juego y pueden tener requisitos específicos de textura / uv / etc. que el modelador o el artista de textura asignado deben proporcionar.
  4. Será el trabajo del diseñador de niveles juntar los activos para "construir" el nivel mismo.

    Es inusual que todo un nivel se construya como una sola pieza de geometría. La mayoría de los niveles están construidos de piezas o secciones. (por ejemplo: infame usó un conjunto de "mosaicos" hexagonales http://www.gamasutra.com/php-bin/news_index.php?story=118581 y skyrim (y muchos otros) usan un enfoque de estilo lego para reconstruir niveles http : //www.gamasutra.com/blogs/JoelBurgess/20130501/191514/ )

    Por lo general, hay un editor de niveles de alguna descripción involucrado en este proceso, aunque muchos juegos han utilizado modeladores 3D como "editores de niveles" para crear instancias de activos creados previamente.

  5. Una vez hecho todo esto, los activos son procesados ​​típicamente por Toolchain, que convierte los archivos amigables del Modelador 3D en datos listos para el juego que se pueden cargar directamente en el Runtime.

    Las cadenas de herramientas (el bit que toma los recursos en bruto y los transforma en datos listos para el juego) son a menudo algunas de las piezas de ingeniería más complicadas en el desarrollo de juegos. Necesitan hablar con muchas aplicaciones diferentes, comprender muchos formatos de archivo diferentes y también comprender cómo transformar los datos en un formato más eficiente e instantáneamente utilizable. Las cadenas de herramientas también suelen realizar pasadas de iluminación, soldadura de vértices, generación de LOD, etc. A menudo, construir todo el conjunto de datos para un gran juego AAA llevará mucho tiempo, a menudo más de 8 horas para una reconstrucción completa. Por lo tanto, las Cadenas de herramientas también suelen contener procesamiento distribuido para distribuir la carga en todas las PC en todo el estudio.

    El tiempo de ejecución es el juego en sí. El ejecutable que se ejecuta en su PC o consola. Dentro del tiempo de ejecución habrá un sistema llamado Administrador de recursos. Es el trabajo del Administrador de recursos cargar los activos solicitados por otros sistemas dentro del juego.

    Por ejemplo: cuando le dice a la carga del juego en un Nivel, los metadatos del Nivel le proporcionarán al Administrador de recursos una lista de los activos que deben cargarse para mostrar el nivel. Del mismo modo, cada activo contendrá una lista de las texturas, materiales o activos secundarios que se deben cargar.

  6. Una vez que todo está realmente cargado en la memoria. El juego enviará cosas que son visibles para el Renderer que luego interactuará con la API utilizada para dibujar cosas en la pantalla.

Los programadores pueden (y lo hacen) generar información de vértices a mano. Esto normalmente se denomina "Representación en modo inmediato". No es muy eficiente, y solo se usa para situaciones en las que no es posible usar datos de vértices pregenerados o manipulados por sombreadores. Por ejemplo: UI Rendering, Quads de pantalla completa.

Por lo general, el 99% de los objetos en pantalla serán información de vértice pregenerada representada en modo "Retenido", con los sombreadores realizando cualquier manipulación requerida. Por ejemplo: animación de piel


7

Aquí hay una respuesta simple: lo hacen todo en aplicaciones de gráficos 3D como Maya o 3DS Max. Primero hacen algunas artes conceptuales (en papel), según ellos crean modelos, texturas (en Photoshop o algo así). Las animaciones simples también se realizan completas en el software, las animaciones más complejas se realizan a través de Motion Capture y luego se asignan a su modelo. Para la animación, usualmente usas la animación Esqueleto.

Todos estos datos se guardan en archivos.

Cuando comienza el juego, analiza todos estos archivos y carga modelos, texturas y animaciones. Y cuando es necesario, los muestra.


1
Creo que se requiere algo de programación para transformar una animación de manera fluida en la siguiente, por lo que cuando te disparan en medio de un salto no parece extraño
Thomas

3
@Thomas, mezclar árboles. Yo creo que. Pero esos son como sistemas de "interpolación" que se construyen como una extensión en un motor de juego. No necesariamente creado dentro de los modelos 3D. Básicamente secuestran los datos de animación e interpolan entre los datos con poderes mágicos.
Sidar

Si. Seguro. Necesita cargar, analizar y de alguna manera representar el modelo. También de alguna manera dibujalo en la pantalla. Definitivamente, tienes que mezclar entre animación. Por lo general, también utiliza algunas cinemáticas inversas, pero son problemas más específicos.
zacharmarz

2
Si solo mezclaran árboles y la animación, la transformación fuera tan simple como "interpolación". Existen múltiples soluciones de middleware costosas de alta gama para tratar este dominio específico de problemas.
Sean Middleditch

4

Los programadores en realidad pueden definir cada vértice individualmente si lo desean. Este, por supuesto, nunca es el caso a menos que estén haciendo algún tipo de demostración básica de cubos. Normalmente, lo que se guarda en los archivos del modelo es algo similar a una lista de vértices que el programador puede conectar fácilmente a su código de dibujo del modelo. Obviamente, hay más que eso, pero básicamente los formatos de modelo están dando "instrucciones" indirectas sobre cómo dibujar un determinado modelo.

En muchos casos, y para muchos formatos de archivo de modelo, el lado de la codificación se ha hecho por usted. Incluso hay algunos formatos de modelo basados ​​en texto, con el código de dibujo que lo acompaña, que hacen que sea bastante fácil para un codificador aficionado seguir cómo se está traduciendo el modelo al código.

Sin embargo, nunca he sido la persona que realmente escribió este código, por lo que es posible que algunos detalles de mi explicación estén desactivados.


2

He estado trabajando por mi cuenta para intentar armar un juego. Puedo darte una lista simple de los programas que uso.

Modelado: 3D Coat, modo

Aparejo: modo

Texturas: GIMP, Inkscape

Game Engine: Unity

Obviamente, esta es una pequeña lista de aplicaciones, pero para mí funcionan y son asequibles para desarrolladores aficionados e independientes.


2
-1 Dar una lista de aplicaciones utilizadas no describe el proceso. Esta pregunta no se trata de un software específico, se trata de cómo están hechos, no solo con qué están hechos.
MichaelHouse
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.