Comment les modèles 3D sont-ils créés dans les jeux vidéo?

15

Comment les modèles 3D des jeux sont-ils conçus et affichés? Est-ce tout le code? Dessiné sur papier, puis sur un logiciel graphique 3D, puis ... quoi?

Bien sûr, les programmeurs de jeux ne définiront pas tous les sommets de chaque forme (/ objet) qu'ils souhaitent dessiner, tous en code (que ce soit en Direct3D ou OpenGL.) Donc, les concepteurs de jeux ont-ils des outils à utiliser, comme Maya ou quelque chose comme ça de logiciels graphiques 3D propriétaires là-bas; ils "dessinent" le modèle dans ce logiciel, l'exportent dans n'importe quel format, puis les programmeurs l' analysent via le code et saisissent automatiquement les sommets bruts décodés / analysés de l'objet / modèle?

J'ai beaucoup cherché sur Google, mais je n'ai pas pu trouver quelque chose de solide pour expliquer comment cet aspect des jeux vidéo professionnels est travaillé.

MMag
la source
2
Voici une documentation assez réaliste du processus artistique: salvationprophecy.com/forum/viewtopic.php?f=4&t=413
Blue Wizard
Hmm ... cela pourrait être considéré comme trop large pour être répondu, ou pas constructif. Mais en même temps, il semble raisonnable de demander à quelqu'un qui n'a jamais approché gamedev et veut commencer à apprendre, et on pourrait lui donner une bonne réponse. Donc, je ne sais pas si cela devrait se fermer ou non.
Laurent Couvidou
1
Habituellement, les gens qui font les modèles sont appelés des artistes , pas des concepteurs : artiste de personnage, artiste d'environnement, animateur ... Le concepteur de jeu est plus sur la conception du jeu réel , ses règles, etc.
Laurent Couvidou

Réponses:

16

Dans tous les jeux sur lesquels j'ai travaillé, le Pipeline de création d'actifs ressemble à ceci:

  1. l'artiste conceptuel (pour les niveaux / arrière-plans / modèles de niveau) ou l'artiste de personnage (pour les modèles) générera des croquis pour les personnages / niveaux / etc. généralement, plusieurs options sont données au directeur créatif / chef de file pour décider lequel il préfère.
  2. L'art conceptuel / de caractère qui a été approuvé est donné à un modélisateur pour l'utiliser comme référence. Parfois, un profil / une façade supplémentaire sur l'art est fait par l'artiste du personnage pour fournir un cadre ou une référence plus propre pour le processus de modélisation. J'ai vu beaucoup de modélistes avec l'art conceptuel coincé dans 3d max / maya / etc comme référence directe.
  3. Les modélisateurs génèrent généralement également les textures de base pour le modèle, généralement avec les matériaux de shader appropriés pour l'exécution. les shaders sont utilisés pour rendre le modèle dans le jeu, et peuvent avoir des exigences de texture / uv / etc spécifiques qui doivent être fournies par le modélisateur ou l'artiste de texture assigné.
  4. Ce sera le travail du Level Designer de reconstituer les actifs pour "construire" le niveau lui-même.

    Il est inhabituel qu'un niveau entier soit construit comme une seule pièce de géométrie. La plupart des niveaux sont constitués de pièces ou de sections. (par exemple: tristement célèbre a utilisé un ensemble de "tuiles" hexagonales http://www.gamasutra.com/php-bin/news_index.php?story=118581 et skyrim (et beaucoup d'autres) utilisent une approche de style lego pour reconstituer les niveaux http : //www.gamasutra.com/blogs/JoelBurgess/20130501/191514/ )

    Il y a généralement un éditeur de niveau d'une description impliquée dans ce processus, bien que de nombreux jeux aient utilisé des modélisateurs 3D comme «éditeurs de niveau» pour instancier des actifs créés précédemment.

  5. Une fois que tout cela est fait, les ressources sont généralement traitées par la chaîne d'outils qui transforme les fichiers conviviaux du modélisateur 3D en données prêtes pour le jeu qui peuvent être chargées directement dans le runtime.

    Les chaînes d'outils (le morceau qui prend les actifs bruts et les transforme en données prêtes pour le jeu) sont souvent parmi les éléments d'ingénierie les plus compliqués dans le développement de jeux. Ils doivent parler à de nombreuses applications différentes, comprendre de nombreux formats de fichiers différents et comprendre également comment transformer les données en un format plus efficace et utilisable instantanément. Les chaînes d'outils effectuent également généralement des pré-passes d'éclairage, le soudage de sommets, la génération de LOD, etc. Souvent, la construction de l'ensemble de données pour un grand jeu AAA prend beaucoup de temps, souvent plus de 8 heures pour une reconstruction complète. Les chaînes d'outils contiennent donc généralement un traitement distribué pour répartir la charge sur tous les PC de l'ensemble du studio.

    Le Runtime est le jeu lui-même. L'exécutable qui s'exécute sur votre PC ou votre console. À l'intérieur du Runtime, il y aura un système appelé Resource Manager. C'est le travail du gestionnaire de ressources de charger les actifs demandés par d'autres systèmes dans le jeu.

    Par exemple: lorsque vous indiquez la charge de jeu dans un niveau, les métadonnées du niveau fourniront au gestionnaire de ressources une liste des ressources qui doivent être chargées pour afficher le niveau. De même, chaque actif contiendra une liste de toutes les textures, matériaux ou sous-actifs qui doivent être chargés.

  6. Une fois que tout est réellement chargé en mémoire. Le jeu enverra des éléments visibles au Renderer qui interagira ensuite avec l'API utilisée pour réellement dessiner des éléments à l'écran.

Les programmeurs peuvent (et font) générer manuellement des informations sur les sommets. Ceci est généralement appelé "Rendu en mode immédiat". Ce n'est pas très efficace et n'est utilisé que dans les situations où il n'est pas possible d'utiliser des données de vertex pré-générées ou manipulées par un shader. Par exemple: Rendu UI, Quads plein écran.

En règle générale, 99% des objets à l'écran seront des informations de sommet pré-générées rendues en mode «Retenu», les shaders effectuant toute manipulation requise. Par exemple: Animation Skinned

Matt D
la source
7

Voici une réponse simple: ils font tout dans des applications graphiques 3D comme Maya ou 3DS Max. D'abord, ils font des arts conceptuels (sur papier), selon eux, ils créent des modèles, des textures (dans Photoshop ou quelque chose comme ça). Des animations simples sont également effectuées dans le logiciel, des animations plus complexes sont effectuées via Motion Capture, puis mappées à votre modèle. Pour l'animation, vous utilisez généralement l'animation squelette.

Toutes ces données sont enregistrées dans des fichiers.

Lorsque votre jeu démarre, il analyse tous ces fichiers et charge des modèles, textures, animations. Et quand c'est nécessaire, il les affiche.

zacharmarz
la source
1
Je pense qu'il y a une programmation nécessaire pour transformer une animation de manière fluide en la suivante, donc quand vous vous faites tirer au milieu d'un saut, cela n'a pas l'air bizarre
Thomas
3
@Thomas, Mélanger les arbres. Je pense. Mais ce sont comme des systèmes «d'interpolation» qui sont construits comme une extension dans un moteur de jeu. Pas nécessairement créé dans les modèles 3D. Ils détournent essentiellement les données d'animation et interpolent entre les données avec des pouvoirs magiques.
Sidar
Ouais. Sûr. Vous devez charger, analyser et représenter en quelque sorte le modèle. Dessinez-le également à l'écran. Donc, définitivement - vous devez vous fondre entre l'animation. Habituellement, vous utilisez également une cinématique inverse, mais ce sont des problèmes plus spécifiques.
zacharmarz
2
Si seulement mélanger les arbres et le morphing d'animation étaient aussi simples que "l'interpolation". Il existe plusieurs solutions middleware coûteuses haut de gamme juste pour traiter ce domaine spécifique de problèmes.
Sean Middleditch
4

Les programmeurs peuvent en fait définir chaque sommet individuellement s'ils le souhaitent. Ce n'est bien sûr jamais le cas à moins qu'ils ne fassent une sorte de démo de cube de base. Normalement, ce qui est enregistré dans les fichiers de modèle est quelque chose comme une liste de sommets que le programmeur peut facilement connecter facilement à son code de dessin de modèle. Il y a évidemment plus que cela, mais fondamentalement, les formats de modèle donnent des "instructions" indirectes sur la façon de dessiner un certain modèle.

Dans de nombreux cas, et pour de nombreux formats de fichiers modèles, le côté codage a été fait pour vous. Il existe même des formats de modèle basés sur du texte, avec le code de dessin qui l'accompagne, qui permettent assez facilement à un codeur amateur de suivre la façon dont le modèle est traduit en code.

Cependant, je n'ai jamais été la personne à écrire ce code, il est donc possible que certains détails de mon explication soient erronés.

Katana314
la source
2

J'ai travaillé seul pour essayer de monter un jeu. Je peux vous donner une liste simple des programmes que j'utilise.

Modélisation: manteau 3D, modo

Gréement: modo

Textures: GIMP, Inkscape

Moteur de jeu: Unity

Évidemment, il s'agit d'une petite liste d'applications, mais pour moi, elles fonctionnent et sont abordables pour les développeurs amateurs et indépendants.

Kale Z. Raglius
la source
2
-1 La liste des applications utilisées ne décrit pas le processus. Cette question ne porte pas sur un logiciel spécifique, mais sur la façon dont ils sont fabriqués, et pas uniquement avec quoi ils sont créés.
MichaelHouse