1 Motivation 2 Der Modeling-Prozess
Transcription
1 Motivation 2 Der Modeling-Prozess
2 DER MODELING-PROZESS 1 Proseminar Game Design - Modeling Game Characters Seite 1 Motivation 1.1 Erfolgreiche Spielecharaktere Jeder kennt erfolgreiche Spielecharaktere wie Super Mario, Lara Croft und Ihresgleichen. Doch was macht ihren Erfolg aus und mit welchen Zielen werden sie erschaffen? Ein zentraler Punkt ist die Identifikation des Spielers mit dem Charakter. Wenn es gelingt, dass der eigentliche Spieler die Figur annimmt und sich mit ihren Eigenschaften identifizieren kann, hat man die Grundlage für einen erfolgreichen Charakter geschaffen. Dies kann durch das gezielte Modellieren bestimmter Eigenschaften erfolgen. Zuerst ist der Name der Spielfigur zu nennen, da dieser das primäre Identifikationsmerkmal darstellt. Im Namen kann man ausserdem schon Hintergrundinformationen des Charakters abbilden. So verbirgt sich im Nachnamen von Max Payne (siehe Abb. 1) schon, wenn auch falsch geschrieben, der Begriff Schmerz, ein Hinweis auf einen womöglich kriminellen oder gewalttätigen Hintergrund. Auch der Name des Comic-Charakters Bugs Bunny ist selbsterklärend. Das Aussehen, die Sprache und Hintergrundinformationen stellen weitere wichtige Eigenschaften dar, deren Beachtung bei der Erschaffung eines erfolgreichen Charakters unumgänglich sind. Diese Ausarbeitung beschränkt sich hauptsächlich auf verschiedene Methoden zur Modellierung des Aussehens von Charakteren. 2 Abb. 1: Max Payne Der Modeling-Prozess Zunächst wird ein allgemeiner Überblick über die Rollen und Prozessschritte bei der Modellierung eines Spiele-Charakters vermittelt. Beteilegt am allgemeinen Prozess sind: • Entwickler Der Entwickler hat eine grobe Vorstellung des Aussehens des Charakters und fertigt auf dieser Grundlage erste Entwurfszeichnungen an. Zusammen mit einer textuellen Beschreibung von weiteren Einzelheiten oder Besonderheiten gehen die Zeichnungen an den Designer. • Designer Der Designer fertigt auf der Grundlage der vom Entwickler zur Verfügung gestellten Unterlagen detaillierte perspektivische Zeichnungen an. Im Idealfall werden Zeichnungen der Vorder- / Rück- und Seitenansicht erstellt, da diese wiederum dem Modellierer für das weitere Vorgehen sehr hilfreich sind (vgl. Abb. 2). • Modellierer Alle bisherigen Prozessschritte erfolgten zum Großteil auf dem Papier. Der Modellierer ist nun für den Transfer der Zeichnungen in die digitale Umgebung zuständig. Er fertigt im Allgemeinen ein Polygonmodell an, wobei er auf verschiedene Modellierungsarten zurückgreift, auf die in Kapitel 3 näher eingegangen wird. Abb. 2: Zeichnung des Designers Über die genannten Aufgaben hinaus existieren noch einige weitere Punkte, die aber nicht eindeutig einer Rolle zugeordnet werden können, sondern für deren Erfüllung teilweise weitere Personen hinzugezogen werden müssen. • Optimierung des Modells In diesem Schritt wird die Polygonanzahl des Modells reduziert, damit es von der Grafik-Engine in Echtzeit gerendert werden kann. Da hier Details verloren gehen können, geht der Schritt mit Optimierungsmethoden (z.B. Bumpmapping und Normalmapping, siehe Kapitel 5) einher. • Texturieren Zur Texturierung gehört das Zeichnen und Erstellen von Texturen und das Mapping auf die Polygonmodelle. Dies wird in Kapitel 4 beschrieben. • Animation Für eine physisch korrekte Animation wird ein Knochenmodell benötigt. Für die Bewegungen des Körpers ist dies völlig ausreichend, für die sehr feinen Animationen des Gesichts einer Figur werden allerdings andere Techniken herangezogen. Lehrstuhl für Computergrafik und Visualisierung Dominic Degel WS 2007/2008 3 MODELING-TECHNIKEN 3 Proseminar Game Design - Modeling Game Characters Seite 2 Modeling-Techniken In diesem Kapitel werden die zwei Modellierungstechniken Polygonal Modeling und Curve/Surface Modeling vorgestellt, wobei ersteres zum Standard in der Echtzeit-Computergrafik avanciert ist. 3.1 Polygonal Modeling Das Polygonal Modeling beruht auf der internen Darstellung von Objekten mittels Polygonen (siehe Abb. 3). Dies ist sehr verbreitet, da die verwendeten Techniken auch für Anfänger leicht verständlich sind und man schnell erste Ergebnisse erzielen kann. Ausserdem rechnet auch die Grafik-Hardware auf Basis von Polygonen. Ein Nachteil dieser Darstellung besteht allerdings darin, dass sie schlecht für gekrümmte Oberflächen geeignet ist. Man behilft sich hier, indem man die Krümmung mit vielen kleinen Polygonen aproximiert, was natürlich in einem höheren Rechenaufwand mündet. Bei der Modellierung gibt es zwei weit verbreitete Techniken, die im Folgenden kurz vorgestellt werden. Abb. 3: Polygonmodell 3.1.1 Subdivision/Box Modeling Der Ausgangspunkt beim Subdivision oder Box Modeling sind primitive Formen, wie Quader und Würfel. Durch das gezielte Einsetzen von Techniken werden die anfangs groben Formen immer detailreicher und genauer gestaltet. Einige der verwendeten Techniken sind: • Skalieren von Faces • Hinzufügen neuer Vertices Hierdurch erreicht man die Unterteilung in kleinere Strukturen, um Details zu modellieren. • Verschieben von Vertices/Edges/Faces • Extrudieren von Faces Die Vorteile, die sich aus dieser Moderllierungstechnik ergeben, sind die Möglichkeit einer guten Annäherung feiner Strukturen, sowie, dass sich alle Techniken mit Standard-Tools verwirklichen lassen. Daher ist das Subdivision/Box Modeling gerade für Anfänger auf diesem Gebiet gut geeignet. Allerdings ist bei dieser Methode die endgültige Polygonanzahl schlecht vorhersehbar, was aber durch die in Kapitel 5 beschriebenen Optimierungsmöglichkeiten nicht weiter schlimm ist. Ausserdem ist es auf diese Art nur umständlich möglich, die Zeichnungen des Designers als Vorlage zu nutzen. Der unterschiedliche Detailreichtum je Entwicklungsstadium ist in Abbildung 4 gezeigt. Abb. 4: Stadien beim SubvisionBox Modeling Lehrstuhl für Computergrafik und Visualisierung Dominic Degel WS 2007/2008 4 TEXTURIERUNG 3.1.2 Proseminar Game Design - Modeling Game Characters Seite 3 Inflation/Extrusion Modeling Beim Inflation/Extrusion Modeling dienen die Entwürfe des Designers als Vorlage für die Modellierung. Die Zeichnungen werden in den Hintergrund des Modellierungsprogramms gelegt und das Modell wird in mehreren Schritten möglichst präzise nachgebildet. Dies wird am Beispiel eines menschlichen Körpers gezeigt. • Erfassen der Konturen Die Seitenansicht des Körpers wird als Vorlage genutzt um unter Verwendung eines Linien-Tools die Konturen zu erfassen. • 3D-Körper erstellen Nun wird in der Frontansicht der Körper und der Kopf auf die Hälfte der beabsichtigeten Größe erweitert. Arm und Bein werden auf die volle Größe erweitert. Dies hat den Hintergrund, dass nur die Hälfte des Körpers modeliert wird, die andere Hälfte wird einfach kopiert. • Anpassen der Arm und Beinform Unter Verwendung aller Ansichten wird die Arm und Beinform an die Zeichnungen des Designers angepasst. Abb. 5: Körper • Glätten des Körpers und Verbinden der Gliedmaßen Jetzt wird die Körperform geglättet und die Gliedmaßen miteinander verbunden (siehe Abb. 5) um zum Schluss eine Kopie des halben Körpers zu spiegeln und mit der andere Hälfte zu verbinden. Hier ist, im Gegensatz zum Subdivision/Box Modeling, eine genaue Einhaltung der Designvorlagen möglich. Dies ist ein großer Vorteil, jedoch ist die bei dieser Technik nötige Erfahrung des Modellierers nicht zu vernachlässigen. Auch nimmt die Erstellung eines Modells weitaus mehr Zeit in Anspruch als dies im zuvor gezeigten Verfahren der Fall war. 3.2 Curve/Surface Modeling Das Curve/Surface Modeling verfolgt einen neuen Ansatz bei der internen Darstellung der Objekte. Im Gegensatz zum Polygonal Modeling, wo die Objekte aus Polygonen aufgebaut sind, werden sie hier durch mathematische Funktionen beschrieben. Diese finden jedoch bei der modellierung von Spiele-Charakteren eher selten Anwendung, da sich Details nur sehr schwierig und verbunden mit hohem Aufwand nachbilden lassen. Ein Beispiel hierfür sind NURBS (siehe Abb. 6). Abb. 6: NURBS 4 Texturierung Unter Texturierung versteht man das Abbilden von 2D-Bildern (Texturen) auf 3D-Meshes, also zum Beispiel Polygonmodelle. Wir möchten eine möglichst gleichmäßige Verteilung der Textur über dem Körper erreichen um unschöne Verzerrungen zu vermeiden und nahtlose Übergänge zu erzeugen. 4.1 Aufbau von Texturen Eine Textur besteht im Grunde nur aus einem 2D-Bild, in dem sich jeder Punkt durch zweidimensionale Koordinaten, den sogenannten uvKoordinaten, referenzieren lässt. Dazu wird über das Bild ein Koordinatensystem gelegt (siehe Abb. 7), welches auf der horizontalen Achse die u-Koordinate (von 0 bis 1) und auf der vertikalen Achse die v-Koordinate (ebenfalls von 0 bis 1) abbildet. In einer so genannten Texturemap kann nun für jeden Vertex des Meshes eine uv-Koordinate hinterlegt werden, die später zur Berechnung des zu verwendenden Texturausschnitts herangezogen wird. Abb. 7: uv-Koordinatensystem Lehrstuhl für Computergrafik und Visualisierung Dominic Degel WS 2007/2008 5 OPTIMIERUNG 4.2 Proseminar Game Design - Modeling Game Characters Seite 4 Projektionsverfahren • Flat Mapping Die Textur wird aus genau einer Richtung auf das Objekt projeziert. Auf den Flächen, für die keine Textur definiert ist, werden die Randpixel der angrenzenden Textur wiederholt. Dies ist gut für ebene Flächen wie Wände geeignet, allerdings schlecht für komplexe Objekte. • Cube Mapping Die Projektion erfolgt aus den sechs Richtungen eines entsprechend um das Objekt gelegten Würfels. Dies ist als unaufwändiges Verfahren für unwichtige kleinere Objekte zu verstehen, allerdings ist es wiederum schlecht für komplexe (zum Beispiel organische) Objekte geeignet. Auch ist kein spezifisches Mapping möglich, wie es für ein Gesicht nötig wäre. • Tube Mapping Beim Tube Mapping wird die Textur zylindrisch um das Modell gelegt. Dies ist gut für zylindrische Objekte wie Arme oder Beine geeignet. Für die nicht definiete Ober- und Unterseite des Objekts werden wiederum die Randpixel wiederholt. • Sphere Mapping Zum Schluss beschreibt das Sphere Mapping eine kugelförmige Projektion der Textur um das Objekt, was natürlich gut geeignet für kugelförmige Objekte ist. Viele 3D-Programme bringen Werkzeuge mit, die die Erstellung von Texturemaps deutlich erleichtern. So lässt sich nach dem manuellen Setzen von Schnittkanten entlang der Polygone eines Objekts automatisch eine Bildvorlage erzeugen, die man anschließend mit dem Bildbearbeitungsprogramm der Wahl bearbeiten kann. Das Texturemapping sollte allerdings nicht unterschätzt werden, da gerade bei komplexen Strukturen, wie sie etwa ein Gesicht birgt, sehr viel Handarbeit nötig ist um alle Bereiche auf exakt die richtigen Polygone zu legen. 5 Optimierung 5.1 Normalmapping Normalerweise stehen beim Shading als Grundlage eine Normale pro Face oder Vertex (je nach Shading-Algorithmus) zur Verfügung. Durch das Phong oder Gouraud Shading sind auf dieser Basis weiche Farbverläufe möglich, allerdings sind detailreiche Strukturen nur mit entsprechend hoher Polygonanzahl zu erreichen. Diese Beschränkung wird durch das Normalmapping aufgehoben, indem eine Normalmap beliebig viele Normalen pro Face definiert. 5.1.1 Aufbau einer Normalmap Eine Normalmap ist im Grunde eine RGB-Bilddatei, die vergleichbar mit dem Texturemapping auf ein Objekt gemapped wird. Allerdings beschreiben die jeweiligen Bildpunkte nicht einen zu verwendenden Farbwert an einer Stelle des Objekts, sondern jeder Pixel definiert durch seine RGB-Werte einen Normalen-Vektor. Die RGB-Werte des Pixels entsprechen also genau den XYZ-Werten der von ihm definierten Normalen. Nun wird beim Shading die eine Normale pro Face durch beliebig viele Normalen ersetzt, die von der Normalmap auf das gleiche Face abgebildet werden. Welche Effekte hierdurch erzielt werden können, zeigt die Abbildung 8. Links der Soldat ohne, rechts das gleiche Modell mit angewandtem Normalmapping. Abb. 8: Normalmapping 5.1.2 Erzeugung von Normalmaps Durch die Verwendung von Normalmaps beim Shading kann man den künstlichen Eindruck von Stuktur erzeugen ohne die tatsächliche Polygonanzahl des Modells zu erhöhen. Nun stellt sich allerdings die Frage, wie eine solche Normalmap erzeugt wird. In der Praxis wird oft ein sehr detailliertes Modell als Referenzmodell über ein gröberes Modell gelegt um daraus eine Normalmap zu errechnen. Das Vorgehen hierfür wird nun beschrieben (siehe Abb. 9). • Eine leere Textur wird auf das gröbere Modell gemapped • Das detaillierte Modell wird als Referenz über das Gröbere gelegt • Für jeden Pixel der Textur wird ein Strahl entlang der Normalen des gröberen Modells geschossen • Es wird die Normale im Schnittpunkt berechnet und als RGB-Wert an der jeweiligen Stelle in der Textur gespeichert Lehrstuhl für Computergrafik und Visualisierung Abb. 9: Erzeugung einer Normalmap Dominic Degel WS 2007/2008 5 OPTIMIERUNG 5.2 Proseminar Game Design - Modeling Game Characters Seite 5 Subdivision Surfaces Die Subdivision Surfaces bilden eine Methode zur Erzeugung glatter Oberflächen aus groben Kontroll-Meshes. Als Grundlage dient ein grobes Polygonmodell. Nun wird jedes Polygon anhand einer Stufeneinstellung in mehrere kleinere Polygone unterteilt, deren Lage sich an den in der nahen Umgebung liegenden Polygonen orientiert. So lassen sich, je nach eingestellter Stufe, sehr feine Objekte erzeugen. Abbildung 10 zeigt eine durch nur 9 Polygone angenäherte sehr eckige Welle (schwarze Kästchen). Durch Anwendung des Catmull-Clark Algorithmus in der Stufe 2 bildet sich schon eine deutlich weichere Welle. Den bekanntesten Algorithmus bildet der Catmull-Clark Algorithmus, der auf Edwin Catmull von Pixar und Jim Clark (Gründer von Silicon Graphics und der NetsAbb. 10: Subdivision Surfaces cape Comm. Corp) zurückzuführen ist. Er erhielt 2006 den Academy Award for Technical Achievement. Erstmals fand er Anwendung im von Pixar produzierten 3D-Animationsfilm ”Gary’s Game”. Lehrstuhl für Computergrafik und Visualisierung Dominic Degel WS 2007/2008 6 6 LITERATURVERZEICHNIS Proseminar Game Design - Modeling Game Characters Seite 6 Literaturverzeichnis [1] Steve Meretzky: Building Character: An Analysis of Character Creation 2001 http://www.gamasutra.com/resource_guide/20011119/meretzky_01.htm [2] Harvey Smith: Player Character Concepts 1999 http://www.gamasutra.com/features/19991108/smith_01.htm [3] Peter Ratner : Subdivision Modeling of a Human 2005 http://www.highend3d.com/maya/tutorials/modeling/polygon/189.html [4] Raphael Auf der Maurh: Bump Mapping im Detail 1999 http://www.3dconcept.ch/artikel/bump/index.html [5] Chad Walker : The Basics of Designing and Creating Low Polygon Models 2001 http://www.gamasutra.com/resource_guide/20011119/walker_01.htm [6] Subdivisionmodeling.com: Little Devil Video for beginners 2007 http://www.subdivisionmodeling.com/forums/showthread.php?t=2347 [7] Subdivisionmodeling.com: Super Basic Workflows 2007 http://www.subdivisionmodeling.com/forums/showthread.php?t=2806 [8] Blender Dokumentation: UV-Texturierung eines Kopfes 2007 http://de.wikibooks.org/wiki/Blender_Dokumentation/_Tutorials/_Texturen/_UV-Texturierung_eines_Kopfes [9] Blender Dokumentation: UV-Koordinaten bearbeiten 2007 http://de.wikibooks.org/wiki/Blender_Dokumentation:_UV-Koordinaten_bearbeiten [10] Blender Dokumentation: UV-Schnittkanten (Seams) setzen 2007 http://de.wikibooks.org/wiki/Blender_Dokumentation:_UV-Schnittkanten_%28Seams%29_setzen [11] Julian Jeremy Johnson-Mortimer : Dr Julian’s Texturing Tutorial 2006 http://www.3dm3.com/tutorials/maya/texturing/ [12] Allan McKay: Introducution to Polygonal Modeling 2000 http://www.3dluvr.com/content/article/56/1 [13] Jonathan Kreuzer : Object Space Normal Mapping with Skeletal Animation Tutorial 2006 http://www.3dkingdoms.com/tutorial.htm [14] Ben Cloward : Creating And Using Normal Maps - A Tutorial 2006 http://www.bencloward.com/tutorials_normal_maps1.shtml [15] Montage Studios: Montage Studio Tutorials 2006 http://www.montagestudio.org/tut/ [16] Blender Dokumentation: Subdivision Surfaces 2007 http://de.wikibooks.org/wiki/Blender_Dokumentation:_Subdivision_Surfaces Lehrstuhl für Computergrafik und Visualisierung Dominic Degel WS 2007/2008