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