Wie werden 3D-Modelle in Videospielen erstellt?

15

Wie werden 3D-Modelle in Spielen entworfen und angezeigt? Ist das alles Code? Auf Papier gezeichnet, dann auf einer 3D-Grafiksoftware, dann ... was?

Natürlich Spiel Programmierer wird jede Ecke in jeder Form nicht definieren (/ Objekt) sie gezeichnet werden soll, alle in Code (ob in Direct3D oder OpenGL.) Also, die Spiel - Designer haben die Werkzeuge zu verwenden, wie Maya oder so etwas wie proprietäre 3D-Grafiksoftware; sie „ziehen“ , um das Modell in dieser Software, exportieren sie in dem Format ausgegeben , dann Programmierer es über Code analysieren und automatisch die decodierten / geparsten rohen Eckpunkte des Objekts / Modell eingeben?

Ich habe viel gegoogelt, aber ich konnte nichts Festes finden, um zu erklären, wie dieser Aspekt von professionellen Videospielen bearbeitet wird.

MMag
quelle
2
Hier ist eine ziemlich realistische Dokumentation des Kunstprozesses: salvationprophecy.com/forum/viewtopic.php?f=4&t=413
Blue Wizard
Hmm ... dies könnte als zu umfassend angesehen werden, um beantwortet zu werden, oder nicht als konstruktiv. Aber gleichzeitig klingt es vernünftig, nach jemandem zu fragen, der sich nie an gamedev gewandt hat und mit dem Lernen beginnen möchte, und es könnte eine gute Antwort gegeben werden. Also nicht sicher, ob dies geschlossen werden sollte oder nicht.
Laurent Couvidou
1
Normalerweise werden die Leute, die die Modelle machen, Künstler genannt , nicht Designer : Charakterkünstler, Umgebungskünstler, Trickfilmzeichner ... Beim Game Designer geht es mehr darum, das eigentliche Spiel, seine Regeln usw. zu entwerfen .
Laurent Couvidou 19.06.13

Antworten:

16

In all den Spielen, an denen ich gearbeitet habe, sieht die Asset Creation-Pipeline ungefähr so ​​aus:

  1. Der Konzeptkünstler (für Levels / Hintergründe / Levelmodelle) oder der Charakterkünstler (für Modelle) erstellt Skizzen für Charaktere / Levels / etc. In der Regel hat der Creative Director / Lead Art mehrere Optionen, um zu entscheiden, welche ihm am besten gefällt.
  2. Die genehmigte Konzept- / Charakterkunst wird einem Modellbauer als Referenz übergeben. Manchmal wird vom Zeichner ein zusätzliches Profil / eine zusätzliche Front für die Kunst erstellt, um einen saubereren Rahmen oder eine Referenz für den Modellierungsprozess bereitzustellen. Ich habe schon so manchen Modeler gesehen, bei dem die Concept Art als direkte Referenz in 3d max / maya / etc steckt.
  3. Die Modellierer generieren in der Regel auch die Basistexturen für das Modell, in der Regel mit den richtigen Shader-Materialien für die Laufzeit. Shader werden verwendet, um das Modell im Spiel zu rendern, und es können bestimmte Textur- / UV- / usw.-Anforderungen bestehen, die vom Modellierer oder vom zugewiesenen Texturkünstler bereitgestellt werden müssen.
  4. Es ist die Aufgabe des Level-Designers, die Assets zusammenzusetzen, um das Level selbst zu "bauen".

    Es ist ungewöhnlich, ein ganzes Level als ein einzelnes Stück Geometrie zu bauen. Die meisten Levels bestehen aus Teilen oder Abschnitten. (zB: berüchtigt verwendet eine Reihe von Hexagon „Kacheln“ http://www.gamasutra.com/php-bin/news_index.php?story=118581 und Skyrim (und viele andere) verwenden , um einen lego Stil Ansatz Stück zusammen Ebenen http : //www.gamasutra.com/blogs/JoelBurgess/20130501/191514/ )

    Es gibt normalerweise einen Level-Editor mit einer Beschreibung, der in diesen Prozess involviert ist, obwohl viele Spiele 3D-Modellierer als "Level-Editoren" verwendet haben, um zuvor erstellte Assets zu instanziieren.

  5. Sobald dies erledigt ist, werden die Assets in der Regel von der Toolchain verarbeitet, die die 3D Modeler-freundlichen Dateien in spielbereite Daten umwandelt, die direkt in die Runtime geladen werden können.

    Toolchains (das Bit, das die Rohdaten aufnimmt und in spielbereite Daten umwandelt) gehören häufig zu den kompliziertesten Konstruktionselementen in der Spieleentwicklung. Sie müssen mit vielen verschiedenen Anwendungen kommunizieren, viele verschiedene Dateiformate verstehen und auch wissen, wie Daten in ein effizienteres und sofort verwendbares Format umgewandelt werden können. Toolchains führen in der Regel auch Beleuchtungsvorgänge, Scheitelpunktschweißen, LOD-Generierung usw. durch. Oft dauert das Erstellen des gesamten Datensatzes für ein großes AAA-Spiel sehr lange, häufig länger als 8 Stunden, um eine vollständige Neuerstellung durchzuführen. Daher enthalten Toolchains in der Regel auch eine verteilte Verarbeitung, um die Last auf alle PCs im gesamten Studio zu verteilen.

    Die Runtime ist das Spiel selbst. Die ausführbare Datei, die auf Ihrem PC oder Ihrer Konsole ausgeführt wird. Innerhalb der Runtime gibt es ein System namens Resource Manager. Es ist die Aufgabe des Ressourcenmanagers, die von anderen Systemen im Spiel angeforderten Assets zu laden.

    Beispiel: Wenn Sie die Spielauslastung eines Levels mitteilen, werden die Metadaten des Levels dem Ressourcenmanager eine Liste der Assets bereitstellen, die geladen werden müssen, um das Level anzuzeigen. Ebenso enthält jedes Asset eine Liste aller Texturen, Materialien oder Unter-Assets, die geladen werden müssen.

  6. Sobald alles tatsächlich in den Speicher geladen ist. Das Spiel sendet Dinge, die für den Renderer sichtbar sind, und interagiert dann mit der API, die zum tatsächlichen Zeichnen von Dingen auf dem Bildschirm verwendet wird.

Programmierer können (und können) Scheitelpunktinformationen von Hand erzeugen. Dies wird normalerweise als "Sofortmodus-Rendering" bezeichnet. Es ist nicht sehr effizient und wird nur in Situationen verwendet, in denen es nicht möglich ist, vorgenerierte oder Shader-manipulierte Vertex-Daten zu verwenden. ZB: UI-Rendering, Vollbild-Quads.

In der Regel sind 99% der Objekte auf dem Bildschirm vorgenerierte Scheitelpunktinformationen, die im Modus "Beibehalten" gerendert werden, wobei Shader alle erforderlichen Manipulationen durchführen. ZB: Skinned Animation

Matt D
quelle
7

Hier ist eine einfache Antwort: Sie erledigen alles in 3D-Grafikanwendungen wie Maya oder 3DS Max. Zuerst machen sie einige Concept Arts (auf Papier), danach erstellen sie Modelle, Texturen (in Photoshop oder so ähnlich). Einfache Animationen werden auch vollständig in der Software erstellt, komplexere Animationen werden über Motion Capture erstellt und dann Ihrem Modell zugeordnet. Für Animationen verwenden Sie normalerweise die Skeleton-Animation.

Alle diese Daten werden in Dateien gespeichert.

Wenn Ihr Spiel startet, werden alle diese Dateien analysiert und Modelle, Texturen und Animationen geladen. Und wenn es gebraucht wird, werden sie angezeigt.

Zacharmarz
quelle
1
Ich denke, es ist einige Programmierung erforderlich, um eine Animation flüssig in die nächste zu verwandeln. Wenn Sie also mitten in einem Sprung erschossen werden, sieht es nicht sonderbar aus
Thomas,
3
@ Thomas, Bäume mischen. Meiner Ansicht nach. Aber das sind wie "Tweening" -Systeme, die als Erweiterung in einer Game-Engine erstellt werden. Nicht unbedingt in 3D-Modellen erstellt. Sie hijacken im Grunde die Animationsdaten und interpolieren zwischen den Daten mit magischen Kräften.
Sidar
Ja. Sicher. Sie müssen das Modell laden, analysieren und irgendwie darstellen. Zeichne es auch irgendwie auf den Bildschirm. Also definitiv - Sie müssen zwischen Animation mischen. Normalerweise verwenden Sie auch einige inverse Kinematiken, dies sind jedoch spezifischere Probleme.
Zacharmarz
2
Wenn nur Mischbäume und Animations-Morphing so einfach wären wie "Tweening". Es gibt mehrere teure High-End-Middleware-Lösungen, die sich nur mit dieser einen bestimmten Problemdomäne befassen.
Sean Middleditch
4

Die Programmierer tatsächlich kann jede Ecke einzeln definieren , wenn sie wollen. Dies ist natürlich nie der Fall, es sei denn, sie machen eine Art grundlegende Cube-Demo. Normalerweise entspricht das, was in den Modelldateien gespeichert wird, einer Liste von Scheitelpunkten, die der Programmierer mühelos in seinen Modellzeichnungscode einfügen kann. Es steckt offensichtlich mehr dahinter, aber im Grunde geben Modellformate indirekte "Anweisungen" zum Zeichnen eines bestimmten Modells.

In vielen Fällen und für viele Modelldateiformate wurde die Codierungsseite für Sie erledigt. Es gibt sogar einige textbasierte Modellformate mit zugehörigem Zeichnungscode, die es einem älteren Codierer ziemlich einfach machen, zu verfolgen, wie das Modell in Code übersetzt wird.

Ich war jedoch noch nie die Person, die diesen Code geschrieben hat, daher ist es möglich, dass einige Details meiner Erklärung nicht zutreffen.

Katana314
quelle
2

Ich habe alleine gearbeitet, um ein Spiel zusammenzustellen. Ich kann Ihnen eine einfache Liste der von mir verwendeten Programme geben.

Modellierung: 3D Coat, Modo

Takelage: Modo

Texturen: GIMP, Inkscape

Game Engine: Einheit

Dies ist natürlich eine kleine Liste von Anwendungen, aber für mich funktionieren sie und sind für Hobby- und Indie-Entwickler erschwinglich.

Kale Z. Raglius
quelle
2
-1 Das Angeben einer Liste der verwendeten Anwendungen beschreibt den Vorgang nicht. Diese Frage ist nicht über spezifische Software, es geht darum , wie sie gemacht, nicht nur , was sie gemacht mit.
MichaelHouse