Ein Vorgehensmodell zur Integration von realen

Transcription

Ein Vorgehensmodell zur Integration von realen
Bachelorarbeit zum Thema
„Ein Vorgehensmodell zur Integration von
realen Umgebungen in Rennsimulationen am
Beispiel des Alemannenrings“
zur Erlangung des akademischen Grades
Bachelor of Science(FH)
vorgelegt dem
Fachbereich Informatik der Fachhochschule Schmalkalden
Ricardo Hohmann
Matrikel-Nr: 270187
Schmalkalden, den 10. September 2010
Betreuer: Prof. Ralf Böse
Gutachter: Prof. Klaus Chantelau
Inhaltsverzeichnis
1. Einleitung
6
2. Grundlagen
2.1. Rennsimulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Modifikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Notwendige Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
8
9
9
3. Vorgehensmodell
3.1. Auswahl realer Umgebung . . . . . . . . . . . . . . . . .
3.2. Suche nach Referenzen . . . . . . . . . . . . . . . . . . .
3.3. Auswahl der Rennsimulation/Software . . . . . . . . . .
3.3.1. Vertraut machen mit gewählter Simulation . . . .
3.3.2. Auswahl der Software . . . . . . . . . . . . . . . .
3.4. Umsetzung realer Inhalte . . . . . . . . . . . . . . . . . .
3.5. Der Weg von einer virtuellen Umgebung zur Rennstrecke
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
11
11
11
13
13
14
14
15
4. Auswahl der Rennsimulation
4.1. Überblick über Rennsimulationen . . . . . .
4.2. Entscheidungskriterien . . . . . . . . . . . .
4.3. Entscheidung für rFactor . . . . . . . . . . .
4.4. verwendete Software . . . . . . . . . . . . .
4.4.1. rFactor-spezifische Tools und Plugins
4.4.2. Modellierung - 3dsMax . . . . . . . .
4.4.3. Bildbearbeitung - Photoshop . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
17
17
18
20
20
20
21
22
5. Modellierung
5.1. Modellierung der Strecke
5.1.1. FFD-Modelling .
5.1.2. Loft-Extrusion .
5.1.3. Checkpoints . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
23
24
25
28
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Inhaltsverzeichnis
5.2. Modellierung der Umgebung . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1. Entstehung eines Hauses . . . . . . . . . . . . . . . . . . . . . . .
5.2.2. weitere Umgebungsobjekte . . . . . . . . . . . . . . . . . . . . . .
6. Materialien
6.1. Texturen . . . . . . . . . . . . . . . . .
6.1.1. verschiedene Arten . . . . . . .
6.1.2. Verwendung . . . . . . . . . . .
6.2. Der Materialeditor . . . . . . . . . . .
6.3. Shader und Multitexturing . . . . . . .
6.4. Auswirkung der Materialnamen auf das
7. Filestruktur
7.1. .gdb Datei - Informationen
7.2. .scn Datei - Objekte . . .
7.3. .aiw Datei - KI-Linien . .
7.4. .cam Datei - Kameras . . .
über
. . .
. . .
. . .
die
. .
. .
. .
8. Abschließende Bemerkungen
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
Fahrverhalten
Strecke
. . . . .
. . . . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
29
31
.
.
.
.
.
.
32
32
32
33
34
36
38
.
.
.
.
39
40
41
42
42
43
A. Anhang
44
A.1. Gedanken und Vorgehensweise einen Profis . . . . . . . . . . . . . . . . . 44
A.2. Tabelle zu Materialien in rFactor . . . . . . . . . . . . . . . . . . . . . . 46
A.3. Waypoint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
B. Literaturverzeichnis
48
3
Abbildungsverzeichnis
4.1. Matrix zur Einordnung der Simulationen . . . . . . . . . . . . . . . . . .
18
5.1.
5.2.
5.3.
5.4.
5.5.
.
.
.
.
.
24
25
26
27
30
Gebäude des Ale. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
34
35
35
36
37
7.1. Screenshot: Hauptordner Alemannenring . . . . . . . . . . . . . . . . . .
7.2. Screenshot: Unterordner Streckenvariante Alemannenring . . . . . . . . .
39
40
Bilderserie: Schritte beim FFD-Modelling . . . . . . . . . . .
Konturspline mit Material-ID´s und Pfadspline . . . . . . .
Rollout: Oberflächen- und Hauptextrusionsparameter (Loft)
Loft-Extrusion mit Kontursplines . . . . . . . . . . . . . . .
Bilderserie: Die Entstehung eines Hauses . . . . . . . . . . .
6.1. Vergleich beider Varianten zur Texturierung an einem
mannenrings . . . . . . . . . . . . . . . . . . . . . . .
6.2. Materialeditor: Rollout Multi-/Unterobjekt . . . . . .
6.3. Materialeditor: Rollout gMat . . . . . . . . . . . . . .
6.4. Materialeditor: Rollout gTex . . . . . . . . . . . . . .
6.5. Shader: Zusammenspiels verschiedener Texture Stages
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Tabellenverzeichnis
4.1. aktuelle Rennsimulationen . . . . . . . . . . . . . . . . . . . . . . . . . .
17
A.1. rFactor Materialien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
5
1. Einleitung
„Aus der Werbung, aus Computerspielen und Filmen kommen sie uns kühl, glatt und
perfekt entgegen und sehen doch aus, als könne man in sie hineingreifen: dreidimensionale
Computergrafiken.“1
Mit der Erstellung solcher virtuellen Realitäten befasst sich diese Arbeit, speziell mit
der Integration realer Umgebungen in Rennsimulationen. Dies ist ein sehr umfangreiches
Unterfangen und sollte nicht überstürzt werden.
Die Bachelorarbeit erhebt den Anspruch, dem Leser einen Einblick zu geben, wie aus
einer realen Umgebung eine virtuelle Rennstrecke entsteht. Dem Leser wird dabei ein
Überblick über aktuelle Rennsimulationen gegeben und mit dem Vorgehensmodell eine Art Anleitung vorgestellt zu den notwendigen Schritten, ein solches Vorhaben auch
tatsächlich umzusetzen.
Dabei bezieht sich die Arbeit auf eine reales Beispiel, den Alemannenring in Singen, der
als Modifikation für die Rennsimulation rFactor entwickelt wird.
Der Alemannenring ist eine Stadtstrecke in Singen. Genauer gesagt ist er die südlichste
Rennstrecke Deutschlands, die in den Jahren 1991 bis 19952 von diversen Rennserien wie
z.B. der DTM genutzt wurde. Dabei wurde das Industriegebiet von Singen für jeweils
ein Wochenende zu einer Rennstrecke umfunkioniert und alle notwendigen Vorkehrungen
getroffen, um einen reibungslosen Veranstaltungsablauf sowohl für die Stadt Singen als
auch die Rennserie zu garantieren.
Aufbau der Arbeit
Im ersten Kapitel werden die Begriffe Rennsimulation und Modifikation näher untersucht. Zudem wird die Software besprochen, die für die Erstellung einer virtuellen Rennstrecke notwendig ist.
1
2
Häßler, U.: 3D-Imaging
vgl. http://alemannenring.de/info/index.html
6
1. Einleitung
Es folgt das Kapitel Vorgehensmodell, in welchem der Weg von der Idee bis zur fertigen
Rennstrecke in einer Rennsimulation beschrieben wird. Dabei beginnt das Kapitel mit
der Auswahl der realen Umgebung und führt über mehrere Zwischenschritte bis zur
Entwicklung einer virtuellen Rennstrecke, auf welcher Rennveranstaltungen abgehalten
werden können.
Im Anschluss wird dem Leser ein Überblick über aktuelle Rennsimulationen gegeben und
selbige gegeneinander abgegrenzt. Dies soll den Entscheidungsprozess für eine Simulation
vereinfachen. Überdies werden die Beweggründe des Verfassers erläutert, gerade rFactor
für die Integration des Alemannenrings zu verwenden. Am Ende des Kapitels wird die
für das Alemannenringprojekt verwendete Software vorgestellt.
Es folgen die 3 Kapitel Modellierung, Materialien und Filestruktur. Diese beziehen sich
auf die Konvertierung von der realen Umgebung in die virtuellen Realität der Rennsimulation. Dabei wird die sukzessiv steigende Kopplung zwischen den Entwicklungsschritten
und der gewählten Rennsimulation rFactor deutlich.
Im Kapitel Modellierung werden Methoden zur Streckenmodellierung vorgestellt und die
Entstehung eines Gebäudes des Alemannenrings erläutert.
Folgend findet sich das Kapitel Materialien, in welchem die Funktion des Materialeditors (gMotor-Material) näher beschrieben. Des Weiteren wird in diesem Kapitel auf die
Verwendung von Texturen und Shader eingegangen.
Im Anschluss wird die Filestruktur einer Rennsimulation exemplarisch an der Kombination von Alemannenring und rFactor beschrieben und die notwendigen Files dargelegt,
welche für die Funktion der Rennstrecke unabdingbar sind.
Nach einigen abschließenden Bemerkungen endet die Arbeit mit dem Anhang und dem
zugehörigen Literaturverzeichnis.
7
2. Grundlagen
Der Alemannenring ist eine Modifikation für eine Rennsimulation. Zum besseren Verständnis werden folgenden Kapitel diese beiden Begriffe näher erläutert. Danach wird
die Software beschrieben, die für eine solches Modifikation notwendig ist.
2.1. Rennsimulation
„Eine Rennsimulation ist ein Computerspiel des Typs Rennspiel, bei dem der Spieler
in der Rolle einer der wetteifernden Fahrer ein möglichst wirklichkeitsgetreu simuliertes
Fortbewegungsmittel zum Sieg steuern muss.“1
Beginnend mit Arcade-Simulatoren hat diese Spielegattung einen weiten Weg hinter sich.
Zur Veranschaulichung des Realitätsgrades heutiger Simulationen sollen zwei Beispiele
dienen.
Professionelle Rennfahrer trainieren mittlerweile nicht mehr nur real, sondern auch mit
Hilfe qualitativ hochwertiger Rennsimulationen. Weiterhin finden sich vor allem bei iRacing, dem aktuell hochwertigsten Produkt des Genres bzgl. der Fahrphysik, mitunter
sogar (ehemalige) Formel 1 oder Nascar Fahrer auf den Spieleservern.
Der entgegengesetzte Weg existiert ebenso. Es gab schon diverse Veranstaltungsserien
im Rahmen von Rennsimulationen, bei denen die Erstplatzierten zu einer Fahrersichtung
in einem realen Rennwagen eingeladen wurden. Dort mussten sie ihr Können bei realen
Bedingungen unter Beweis stellen.
Ein Überblick über aktuelle Rennsimulationen wird in Kapitel 4 gegeben. Diese sind
mittlerweile so ausgereift, dass sie beinahe zwingend mit Peripheriegeräten (Lenkrad
und Pedale) zu spielen sind. Ohne selbige ist die Kontrolle über das Fahrzeug nicht im
notwendigen Maße vorhanden.
1
http://de.wikipedia.org/wiki/Rennsimulation
8
2. Grundlagen
2.2. Modifikation
„Eine Mod ... ist eine üblicherweise kostenlose, meist von Hobby- oder selten auch beruflichen Spieleentwicklern erstellte Erweiterung bzw. Veränderung eines bereits veröffentlichten Computerspiels.“2
Dabei gibt es bei Mod´s unterschiedliche Ausschweifungen. Kleinere Veränderungen am
Spiel können darin bestehen, dass einzelne 3D-Modelle oder Texturen ausgetauscht oder
überarbeitet werden, um das Erscheinungsbild des Spiels zu verändern.
Am anderen Ende der Möglichkeiten stehen sogenannte „Total Conversions (engl. für
‚vollständige Umwandlung‘). (Sie) modifizieren das Spiel völlig. Es bleibt lediglich die
Spiel-Engine erhalten.“ Kennzeichnend für Total Conversions sind oft „Veränderungen im
grundlegenden Spielprinzip oder beispielsweise die Implementierung eines völlig neuen
Szenarios.“3
Bei einigen Spielen wird schon in der Entwicklungsphase eines Spiels darauf geachtet,
dass selbiges leicht modbar ist. Dies kann geschehen, indem weit verbreitete Dateiformate Verwendung finden oder das Spiel so gestaltet wird, dass es leicht erweiterbar ist.
Für ein Vorhaben wie die Integration einer Rennstrecke in eine Rennsimulation ist letzteres ein wichtiger Aspekt.
2.3. Notwendige Software
Für die Entwicklung einer Rennstrecke für eine bestimme Rennsimulation wird Software
in folgenden Bereichen benötigt. 4
Der erste Bereich ist die Modellierungssoftware. Mit ihrer Hilfe werden das 3d-Modell
der Strecke und die Umgebungsobjekte erstellt. Gerade das Streckenmodell ist für eine Rennsimulation entscheidend, da sich auf jenem der Hauptteil des Rennens abspielt.
Aus diesem Grunde ist der professionellen Streckenerstellung ein extra Kapitel gewidmet
(siehe Kapitel 5.1). Die entsprechende Software sollte Funktionen bereitstellen, die einen
solchen Streckenentwurf ermöglichen, da sie sonst für ein derartiges Vorhaben schlicht
ungeeignet ist.
Darüber hinaus muss die Software über einen Materialeditor verfügen und die fertigen
2
http://de.wikipedia.org/wiki/Mod_(Computerspiel)
http://de.wikipedia.org/wiki/Mod_(Computerspiel)
4
Der Besitz eines Texteditors und der entsprechenden Simulation wird vorausgesetzt.
3
9
2. Grundlagen
Modelle im von der Simulation benötigten Dateiformat exportieren können oder zumindest über Umwege die Möglichkeit geben, die 3d-Dateien in das besagte Format zu
konvertieren.
Der zweite Bereich ist eine Software zur digitalen Bildbearbeitung. Die Auswahl dieser
ist nicht so kritisch wie die der Modellierungssoftware.
Wichtigster Punkt ist, dass die Software die spielinternen Grafikformate unterstützt.
Des Weiteren wird die Bildbearbeitungssoftware vorrangig dafür benötigt, um aus realen
Aufnahmen Texturen zu erstellen und diese weiterzuverarbeiten. Darüber hinaus müssen
mit ihr bestehende Texturen verändert werden können, um das Gesamtbild der Strecke
harmonisch gestalten zu können.
Der dritte Bereich beschreibt spielspezifische Software. Je nach gewählter Rennsimulation (siehe Kapitel 4) wird zusätzliche Software benötigt, beispielsweise um die KI-Linien
zu erstellen oder Kameras auf der Strecke zu platzieren. Des weiteren kann es vorkommen, dass die Entwickler nicht-standardisierte Dateiformate verwenden, für dessen
Interpretation und Änderung entsprechende Tools oder Plugins notwendig sind. Diese
Art von Software lässt sich nicht verallgemeinern.
Auf speziell für rFactor entwickelte Tools wird in Kapitel 4.4.1 eingegangen.
10
3. Vorgehensmodell
In diesem Kapitel wird der Weg von der realen Umgebung zu einer virtuellen Rennstrecke in mehrere Entwicklungsschritte eingeteilt. Dabei empfiehlt es sich, die dargestellte
Schrittfolge einzuhalten, da die Entwicklungsschritte chronoligisch sortiert sind und teilweise aufeinander aufbauen. An dieser Stelle ist auf den Anhang A.1 zu verweisen. Dort
findet sich eine E-Mail, in der ein Profi bzgl. des Themas Streckenerstellung einige zentrale Fragen beantwortet und auf seine eigene Vorgehensweise eingeht.
3.1. Auswahl realer Umgebung
Zu Beginn muss die Entscheidung gefällt werden, welche reale Umgebung virtuell umgesetzt werden soll. Dabei sind der Kreativität der Entwickler keine Grenzen gesetzt.
Jegliche Umgebung, die in der Realität für Rennen genutzt werden könnte, kann auch
Referenz für eine virtuelle Rennstrecke sein.
Im Regelfall werden reale Rennstrecken nachgebildet oder auch ehemalige Strecken wieder zum Leben erweckt. Letzteres ist auch beim Alemannenring der Fall. Ebenso möglich
ist es natürlich, aus einer normalen Straßenumgebung eine Rennstrecke zu erstellen oder
einen Waldabschnitt zu einer Rally-Etappe umzugestalten.
Diese Entscheidung sollte nicht überstürzt werden, da der komplette folgende Entwicklungsprozess von ihr abhängig ist. Sofern die geplante Umgebung noch nie für reale
Rennen genutzt wurde, sollte auch der geplante Streckenverlauf möglichst frühzeitig
feststehen, um einer Fehlentwicklung vorzubeugen.
3.2. Suche nach Referenzen
Ist die gewünschte Umgebung gewählt, folgt als nächster Schritt die Suche nach Referenzen. An dieser Stelle sollte sich der Entwickler auch Gedanken darüber machen, wie
11
3. Vorgehensmodell
detailliert die virtuelle Strecke werden soll, da von dieser Entscheidung die Anzahl der
notwendigen Referenzen abhängt.
Referenzen können Fotos, Videos, GPS-Daten oder auch Karten der Strecke sein. Dabei
variiert deren Anzahl und Verfügbarkeit je nach Bekanntheitsgrad der Strecke. Für sich
im Betrieb befindende Strecken gestaltet sich die Suche nach Referenzen am Einfachsten,
für ehemalige Rennstrecken schon schwieriger und noch komplizierter wird es, soll eine
noch nie für Rennen verwendete Strecke virtuell erschaffen werden.
Gerade an letzterem Fall ist zu erkennen, dass eine örtliche Nähe der Entwickler zur
gewählten Umgebung große Vorteile haben kann.
Hauptquelle für Referenzmaterial ist das Internet. Viele Rennstrecken besitzen eine eigene Webseite, auf der viele Informationen und auch Bilder der Strecke zu finden sind.
Darüber hinaus findet sich auch auf Webseiten diverser Rennveranstaltungen oder mit
Hilfe von Suchmaschinen genügend Bildmaterial.
Ein weiterer vielversprechender Anlaufpunkt sind Foren. Speziell für historische Rennstrecken finden sich dort oft Liebhaber, die Fotos oder gar Videos aus vergangenen Zeiten
besitzen und zur Verfügung stellen können.
Mit Hilfe von Karten der Strecke (z.B. Google Earth) kann der Kurvenverlauf aus der
Draufsicht nachverfolgt werden. Zudem wird ein Überblick über die Beschaffenheit der
Streckenumgebung gegeben und je nach Größe und Qualität der Karten wird sogar eine
variierende Streckenbreite ersichtlich.
Videos gliedern sich in zwei Kategorien, zum einen sind dies Onboardvideos, die aus
dem Auto heraus gefilmt werden und zum anderen Videos von außerhalb, z.B. den
TV-Kameras bei Fernsehübertragungen realer Rennen. Gerade Onboardvideos sind ein
probates Mittel, um die Steigungen der Strecke einzufangen und auch Bodenwellen zu
erkennen.
Videos von Außen eignen sich speziell dafür, die Umgebung der Strecke nachbilden zu
können.
Eine Mischung aus On- und Offboardvideos ermöglicht es dem Entwickler, die unmittelbare Fahrbahnumgebung zu ergründen wie z.b. die Beschaffenheit und Lage der Leitplanken, Reifenstapel, Curbs und Auslaufzonen.
Oft können Fotos auch dazu verwendet werden, die umgebenden Streckengebäude nachzubilden, wenn die Proportionen selbiger aus ihnen ersichtlich werden. Gerade bei örtlicher Nähe der Entwickler können auch Fotos der Strecke gemacht werden, die zur
Erstellung von Texturen verwendet werden können.
12
3. Vorgehensmodell
Speziell beim Alemannenring existieren verschiedene Arten von Referenzen. Ein Mitarbeiter des Projektes wohnt direkt in Singen und kann somit aktuelle Fotos der Gebäude
und des Geländes machen. Des weiteren gibt es mehrere große Karten (Größe A0), u.a.
mit einem Leitplankenplan (mit Höhenmarkierungen) und einem Satellitenbild der Strecke. Darüber hinaus besitzt das Modding-Team Aufnahmen der Fernsehübertragungen
aus den Jahren von 1991 bis 1994 sowie über 100 Fotos aus damaliger Zeit. Mit Hilfe
von OnBoard Videos und besagten Höhenmarkierungen können sowohl die Steigungen
als auch Bodenwellen auf der Straße nachgebildet werden.
3.3. Auswahl der Rennsimulation/Software
Wenn genug Referenzmaterial zur Verfügung steht, um die Strecke und Umgebung virtuell nachzubilden, sollte sich für die Rennsimulation entschieden werden, in welche die
Strecke integriert werden soll.
Diese Entscheidung sollte gerade an dieser Stelle erfolgen, weil folgende Entwicklungsschritte eine zunehmend stärkere Kopplung an die gewählte Simulation mit sich bringen,
während vorangegangene unabhängig von der gewählten Rennsimulation waren.
Aufgrund der Komplexität und enormen Wichtigkeit dieses Entwicklungsschrittes ist
ihm ein eigenes Kapitel gewidmet. (siehe Kapitel 4)
3.3.1. Vertraut machen mit gewählter Simulation
In diesem Schritt wird die gewählte Simulation im Hinblick auf die Entwicklung der
Modifikation näher erforscht. Dabei spielen folgende Fragen für den Entwickler eine
zentrale Rolle:
• Wie ist die Filestruktur aufgebaut?
• Welche Dateiformate für 3d-Objekte und Texturen sind erlaubt?
• Welche Tools oder Plugins gibt es, die den Prozess der Integration von Drittinhalten unterstützen?
• Welche Konventionen seitens der Engine gibt es, die bei der Umsetzung realer
Inhalte (siehe 3.4) beachtet werden müssen.1
1
z.B. Wie werden unterschiedliche Untergründe implementiert? oder Existieren Restriktionen bzgl. des
Polycounts von Objekten?
13
3. Vorgehensmodell
• Welche vorhandenen Dateien müssen ggf. verändert werden, damit die neue Strecke
erkannt von der Simulation als solche wird.
Für diese und weitere Informationen sind an dieser Stelle wiederum Modding-Foren oder
Tutorials eine gute Anlaufstelle zur Aneignung des notwendigen Wissens. Sofern für die
gewählte Rennsimulation schon Strecken von Drittanbietern existieren, bietet es sich an,
eine solche zu beschaffen und genauer zu inspizieren, um einen Einblick zu bekommen,
welche Dateien und Ordner für die Eigenentwicklung notwendig sind.
3.3.2. Auswahl der Software
Welche Bereiche von Software für das Projekt virtuelle Rennstrecke abgedeckt werden
müssen und welche Besonderheiten dabei zu beachten sind, wurde schon in Kapitel 2.3
erläutert.
Sofern die bisherigen Entwicklungsschritte abgearbeitet wurden, sind an dieser Stelle
die nachzubildende Umgebung festgelegt und alle notwendigen Referenzen vorhanden.
Weiterhin sind die Eigenheiten der gewählten Simulation, insbesondere hinsichtlich der
Dateiformate und verfügbaren Tools bzw. Plugins, bekannt.
Demnach sind alle Voraussetzungen erfüllt, um die Entwicklungssoftware auszuwählen,
mit deren Hilfe die reale Umgebung in eine virtuelle Realität überführt wird.
3.4. Umsetzung realer Inhalte
Dies ist der aufwendigste Entwicklungsschritt. Von der gewählten Umgebung muss ein
komplettes virtuelles Abbild geschaffen werden. Dabei untergliedert sich die Integration
jedes einzelnen Objektes in 3 Schritte:
1. Modellierung des 3d-Objektes.
2. Zuweisung von Materialien.
3. Integration in die Simulation.
Auf die Modellierung bzw. Zuweisung von Materialien wird den Kapiteln 5 bzw. 6 eingegangen. Die Integration variiert je nach Simulation und wird daher in dieser Arbeit
nicht näher erläutert.
14
3. Vorgehensmodell
Es empfiehlt sich, diese drei aufgelisteten Schritte als eine Einheit zu verstehen. Jedes
Objekt sollte vom Beginn der Modellierung bis ins Spiel gebracht werden, bevor die
Erstellung des nächsten Objektes begonnen wird. Der komplette Prozess ist am Beispiel
einer Gebäudemodellierung in Kapitel 5.2.1 aufgezeigt. Durch eine solches Vorgehen
können potenzielle Fehler bei der Entwicklung schneller gefunden werden. Ferner ist der
Motivationsfaktor, die Objekte direkt in der Simulation betrachten zu können, nicht zu
unterschätzen.
3.5. Der Weg von einer virtuellen Umgebung zur
Rennstrecke
An dieser Stelle der Entwicklung sind alle Objekte in die Simulation eingefügt und mit
Materialien versehen. Die Strecke ist befahrbar und optisch gesehen fertig.
Jedoch ist die Strecke noch nicht für den Rennbetrieb geeignet, was allerdings das Endziel
der Entwicklung ist.
Um diesen Ziel zu erreichen, müssen die folgenden Punkte abgearbeitet werden.
Definition der Fahrbahn Der Spielengine müssen Informationen darüber bereitgestellt werden, wo sich die erlaubte Fahrbahn und die Boxengasse befinden, auf
welcher die Fahrer ihr Rennen zu absolvieren haben.
Kameras Durch Kameras wird das Renngeschehen ins rechte Licht gerückt. Wie bei
Fernsehübertragungen können auch virtuelle Rennen über TV-Kameras von Außen
mitverfolgt werden.
KI-Linie Die meisten Rennsimulationen bieten die Möglichkeit, gegen virtuelle Konkurrenten anzutreten. Für ein solches Feature müssen KI-Linien erstellt werden,
damit die Fahrweise der künstlichen Intelligenz berechnet werden kann.
Zeitnahme Ohne Zeitnahme macht ein virtueller Rennbetrieb keinen Sinn. Daher müssen der Strecke sogenannte „Checkpoints“ zugefügt werden (siehe Kapitel 5.1.3).
Beleuchtung Grundsätzlich reicht ein Licht, um die virtuelle Umgebung auszuleuchten. Dieses simuliert eine virtuelle Sonne. Falls die Strecke jedoch längere Unterführungen bzw. Tunnel besitzt oder die Rennsimulation Nachtfahrten unterstützt,
so müssen weitere Lichter auf der Strecke platziert und in die Simulation integriert
werden.
15
3. Vorgehensmodell
Streckenspezifische Dateien Dieser Punkt beschreibt spielspezifische Änderungen,
die notwendig sind, damit die Simulation die Strecke erkennt und letztere ausführbar wird.
Sind diese Punkte abgearbeitet, sollte noch ein sogenannter Beta-Test erfolgen. Sind die
ggf. aufgetretenen Fehler behoben, so ist die Strecke als fertig zu bezeichnen und ihrem
Release steht nichts mehr im Wege.
16
4. Auswahl der Rennsimulation
Die Entscheidung für eine Rennsimulation ist ein sehr wichtiger Schritt für die Integration einer realen Umgebung. Dieses Kapitel soll einen Überblick über die verschiedenen
Simulationen geben und sie gegeneinander abgrenzen, um eben diesen Entscheidungsprozess zu unterstützen.
4.1. Überblick über Rennsimulationen
Die Tabelle 4.1 zeigt eine Auswahl der wichtigsten Rennsimulationen des letzten Jahrzehnts. Dabei beschränkt sie sich auf Spiele, die für den PC erschienen sind. Der in der
Tabelle vergebene Index bezieht sich auf die folgende Matrix. Dabei wurden alle SimbinSimulationen zu einem Index zusammengefasst, da sie auf der selben Spiele-Engine basieren und sich somit in Punkto Modbarkeit und Simulationsgrad nicht unterscheiden.
Name
F1 Challenge 99-02
Richard Burns Rallye
Live for Speed S2
GT Legends
rFactor
GTR2
Race07
GTR Evolution
iRacing
Colin McRae: DiRT 2
Need for Speed: Shift
Entwicklerteam
Image Space Incorporated
Warthog
3 Entwickler
Simbin
Image Space Incorporated
Simbin
Simbin
Simbin
iR Motorsport Simulations
Codemasters
Electronic Arts
Erscheinungsjahr
2002
2004
2005
2005
2005
2006
2007
2008
2008
2009
2009
Tabelle 4.1.: aktuelle Rennsimulationen
17
Index
1
2
3
4
5
4
4
4
7
6
8
4. Auswahl der Rennsimulation
Abbildung 4.1.: Matrix zur Einordnung der Simulationen
Zur Erleichterung einer solchen Entscheidung soll die Matrix in Abbildung 4.1 dienen.
Dabei werden die verschiedenen Simulationen in den Aspekten Simulationsgrad und
Modbarkeit abgegrenzt.
Die Abbildung 4.1 gibt eine Übersicht der in Tabelle 4.11 aufgeführten Rennsimulationen.
Die Einordnung findet in den Aspekten Simulationsgrad und Modbarkeit statt. Die roten
Kreise (Index zwei und sechs) weisen darauf hin, dass es sich bei diesen Simulationen
um Rallye-Simulationen handelt, während der Fokus der restlichen Simulationen auf dem
Verhalten von Rennwagen auf Asphalt liegt. Die horizontale, rot gestrichelte Trennlinie
teilt den Bereich der Modbarkeit in zwei Hälften. Die Simulationen in der oberen Hälfte
eignen sich für die Integration von Rennstrecken.
Klar ersichtlich ist iRacing die Scene-Referenz bzgl. des Simulationsgrades, während
rFactor die Referenz für die Modbarkeit ist.
4.2. Entscheidungskriterien
Zur weiteren Vereinfachung der Entscheidungsfindung bzgl. der Rennsimulation sollen
die in Tabelle 4.1 genannten Simulationen hinsichtlich verschiedener Kriterien näher
beschrieben werden.
Modbarkeit
Bei der Modbarkeit gibt es große Unterschiede bei den verschienen Simulationen. Sie
1
Tabelle erstellt mit Hilfe von Wikipedia, vgl. http://de.wikipedia.org/wiki/Rennsimulation
18
4. Auswahl der Rennsimulation
erfüllen ein Spektrum von iRacing bis rFactor. Bei iRacing beschränken sich die möglichen Modifikationen auf die Änderung der Fahrzeugtexturen. Es folgen Colin McRae
und Need for Speed, bei denen zudem Grafik- und Kameramods existieren. Für Live for
Speed existieren viele verschiedene Modifikationen wie z.B. Tools, welche die Leistungsdaten der Fahrzeuge verändern. Ferner existieren sogar in das Spiel integrierte Fahrzeuge
von Drittanbietern, welche jedoch nicht legal sind.
Interessant wird die Modbarkeit bei Richard Burns Rallye. Für dieses Spiel lassen sich
sowohl neue Fahrzeuge als auch Strecken erstellen, ebenso für die Simbin-Ableger, F1
Challenge und rFactor. Letzteres ist die Referenzsimulation bzgl. der Modbarkeit. Schon
in der Entwicklung wurde bei rFactor großer Wert auf gute Modbarkeit gelegt und
so existieren direkt von Image Space Incorporated entwickelte Tools und Plugins zur
Unterstützung von Modvorhaben.
Simulationsgrad
Der Simulationsgrad beschreibt die Realitätsnähe einer Rennsimulation im Vergleich
zur Fahrt in realen Rennwagen. Dabei bezieht Realitätsnähe sich hauptsächlich auf das
Fahrverhalten der Fahrzeuge im Spiel. Dieses basiert wiederum zu einem Großteil auf
dem Reifenmodell, da die wirkenden Kräfte bei Rennsimulationen mittels der Reifen
übertragen werden.
Den geringsten Simulationsgrad weisen Colin McRace und Need for Speed auf mit einer
beinahe arcadelastigen Fahrphysik, während iRacing die Königsklasse in diesem Segment darstellt. So werden dort Abnutzung, Temperatur und auch die Verschmutzung
der Reifen simuliert. Weiterhin wird die Aerodynamik in iRacing so genau berechnet,
dass selbst abfallende Fahrzeugteile Einfluss auf das Fahrverhalten haben durch eine
veränderte Luftströmung, ebenso wie eine beschädigte Aufhängung oder Bremsplatten.
Die nicht genannten Simulationen gliedern sich zwischen diesem beiden Extremen ein
(siehe Abbildung 4.1).
Untergrund
Dieses Kriterium bezieht sich auf Bodenbelag, der in der Rennsimulation hauptsächlich
befahren wird. Richard Burns Rallye und Colin McRace: Dirt 2 verstehen sich dabei als
Rallye-Simulationen und nehmen somit eine Sonderstellung in der Auflistung ein. Live
for Speed enthält zwar Strecken, die teilweise aus Asphalt und teilweise aus Schotter
bestehen, jedoch liegt der Fokus nicht auf dem Rallye-Anteil. Die restlichen Simulationen
enthalten keine Rallye-Elemente.
19
4. Auswahl der Rennsimulation
4.3. Entscheidung für rFactor
Im folgenden Kapitel wird erläutert, warum sich der Verfasser für rFactor entschieden
hat.
Bei dem Projekt Alemannenring soll eine temporäre Stadtstrecke in eine Rennsimulation
integriert werden. Aus der Abbildung 4.1 und dem zugehörigen Text im vorigen Kapitel
wird ersichtlich, dass nur noch rFactor, F1 Challenge, Richard Burns Rallye und die
Simbin-Ableger für ein solches vorhaben geeignet sind.
Richard Burns Rallye versteht seinem Namen entsprechend als Rallye-Simulation und
fällt somit aus der Wahl, da der Alemannenring als Stadtstrecke komplett asphaltiert
ist. F1 Challenge, ebenso wie rFactor von ISI entwickelt, ist im Vergleich zu rFactor
veraltet und bietet keinerlei Features, die über das Angebot von rFactor hinausgingen.
Somit verbleiben nur noch rFactor und die Simbin-Ableger. Der Simulationsgrad beider
Endkandidaten ist ähnlich, jedoch wurde bei der Entwicklung von rFactor viel mehr Wert
darauf gelegt, dass die Simulation mit Inhalten von Drittanbietern erweitert werden kann
und so existiert bis dato keine Simulation, die für Modder so zugänglich ist wie rfactor.
Aus diesem und den weiteren aufgeführten Gründen hat der Verfasser sich für rFactor
entschieden.
4.4. verwendete Software
Nachdem die Entscheidung für eine Rennsimulation gefallen ist, geht dieses Kapitel auf
die von den rFactor-Entwicklern erstellten Tools und Plugins ein. Ferner werden die
Softwareprodukte für die Bereiche 1 und 2 (siehe Kapitel 2.3) gewählt und die Entscheidungen begründet.
4.4.1. rFactor-spezifische Tools und Plugins
Die Modding-Tools, die für die Streckenimplementierung nach rFactor notwendig sind,
werden von ISI bereitgestellt. Abgesehen von den .dds-Plugins finden sie sich allesamt
in der Developer´s Corner der offiziellen Homepage der Rennsimulation. 2
rFactor Max Plugins Die Max Plugins stellen die Schnittstelle zwischen der Modellierungssoftware 3dsmax und der Spielengine dar.
2
http://rfactor.net/developers
20
4. Auswahl der Rennsimulation
Nach erfolgreicher Installation können in 3dsMax sogenannte gMotor-Materialien verwendet werden. Dies sind auch die Materialien, die im Spiel verwendet werden. Zudem
ist der .gmt-Exporter ein umfangreiches Werkzeug, das einen direkten .gmt-Export aus
3dsMax heraus ermöglicht. Somit erweist sich die spätere Konvertierung der Dateien aus
3dsMax in die Spielumgebung als denkbar einfach.
dds-plugin Die .dds Plugins sind notwendig, damit sowohl 3dsmax als auch Photoshop
die entsprechenden Dateien dargestellt und bearbeitet werden können.3
gMotor 2.0 MAS File Utility „The gMotor 2.0 MAS utility is used to create MAS
archive files for use in gMotor 2.0 applications only. A MAS file is very similar to other
well-known types of compressed archive files, and contains additional information specific
to a gMotor application.4 “
Weitere Möglichkeiten, die dieses Tool bietet sind die Erstellung von Mip Maps für .dds
Dateien und die Konvertierung von Standard-Bilddateien in das .dds Format.
rFactor AIWCAM Editor Der AIWCAM Editor wird benötigt, um die Wegpunkte
für die Strecke (.aiw) zu erstellen und die Kameras auf der Strecke (.cam) zu platzieren.
Eine Bearbeitung beider Dateien direkt im Quellcode ist zwar möglich, jedoch ist dem
abzuraten, da z.B. eine .aiw-Datei je nach Strecke rund 20000 Zeilen hat.
Vorraussetzung für die Funktion des Editors ist eine installierte rFactor Version, da
dieser direkt auf die Spielinhalte von rFactor zugreift.
4.4.2. Modellierung - 3dsMax
Speziell für die Modellierung von Rennstrecken muss der 3d-Editor Funktionen bereitstellen, welche die Entwicklung des Streckenentwurfs komfortabel und professionell
ablaufen lassen. Genau an diesem Punkt scheitern die meisten OpenSource-Produkte
oder andere 3d-Editoren. 3dsMax, eine „leistungsstarke, integrierte Lösung für 3DModellierung, Animation, und 3D-Visualisierung5 “, deckt diesen Bereich mit dem Modifikator FFD-Modelling und der Loft-Extrusion (siehe Kapitel 5.1) ab.
Auch bei der Erstellung jeglicher Umgebungsobjekte, von Leitplanken über Gebäude,
Bäume und Vegetation im allgemeinen lässt der Editor von 3dsMax keine Wünsche
offen.
3
Zu finden unter http://developer.nvidia.com/object/nv_texture_tools.html
Zitat aus gMotor 2.0 MAS Utility help
5
http://www.autodesk.de/adsk/servlet/pc/index?id=14642267&siteID=403786 15.08.10
4
21
4. Auswahl der Rennsimulation
Überdies sind die von ISI6 zur Verfügung gestellten Modding-Tools extra für verschiedene
3dsMax-Distributionen verfügbar, wodurch die Überführung der 3d-Objekte vom Editor
zu tatsächlichen Spieleinhalten sehr komfortabel und ohne Umwege zu bewerkstelligen
ist.
Aus diesen Gründen wurde sich bei der Modellierungssoftware für 3dsMax entschieden.
4.4.3. Bildbearbeitung - Photoshop
In dem Bereich der Bildbearbeitung ist die Entscheidung auf Photoshop gefallen. Dieses
„setzt neue Maßstäbe für die digitale Bildbearbeitung und kreative Fotogestaltung. Die
Software bietet (weiterhin) eine Fülle an Malpinseln, Auswahl- und Korrekturwerkzeugen.“7
Dabei ist die Auswahl der Bildbearbeitungssoftware nicht sonderlich kritisch 8 . Photoshop wurde gewählt, weil der Verfasser schon Erfahrungen mit dem Programm sammeln
konnte und es zudem einige nütliche Features aufweist.
Mit Hilfe der Funktion „perspektivisch Bearbeiten“ des Freistellungswerkzeuges können
auf einfach Art und Weise Fotos entzerrt und später zur Erstellung von Texturen verwendet werden.
Ein weiteres nützliches Tool ist der Filter Verschiebungseffekt. Mit seiner Hilfe lassen
sich auf schnelle, einfache Weise kachelbare Texturen erstellen, welche für Häuserfassaden oder die Fahrbahn verwendet werden.
Auch für die Bearbeitung bestehender Texturen, seien es nun Angleichungen des Kontrastes, Farbkorrekturen oder sonstige Modifikationen erweist sich Photoshop als gut
geeignet.
6
Abk. für Image Space Incorporated, Entwickler von rFactor
http://www.adobe.com/de/products/photoshop/photoshop/whatisphotoshop/
8
Einzige Vorraussetzung: Unterstützung des .dds-Formats
7
22
5. Modellierung
Dieses Kapitel beschreibt die geometrische Modellierung der Objekte, welche in der
Simulation auftreten sollen.
Für Rennsimulationen ist es absolut essenziell, dass dem Nutzer ein realistisches Fahrgefühl vermittelt wird. Um dieses Ziel erreichen zu können, muss ein größeres Augenmerk
auf die Ausmodellierung des befahrbaren Untergrundes gelegt werden als auf die Umgebung, die eine rein optische Funktion besitzt.
Zur besseren Unterscheidung wird in dieser Arbeit die Modellierung in zwei Teilbereiche
gegliedert, die Modellierung der Strecke und die Modellierung der Umgebung.
Dabei soll der Bereich der Strecke so definiert sein, dass darunter alle Objekte verstanden
werden, mit denen das Fahrzeug in Kontakt tritt. Zum einen ist dies der Untergrund
(Straße, Curbs, Gras etc.), bei dem der Kontakt über die Reifen der Fahrzeuge hergestellt
wird. Zum anderen sind dies Streckenbegrenzungen (Leitplanken, Mauern, Fangzäune
etc.), bei denen der Kontakt über Karosserieteile entsteht. Diese Unterteilung findet sich
auch in der Namensgebung der Materialien (siehe Kapitel 6.4) wieder.
Die Umgebung hingegen beinhaltet alle Streckenobjekte, die sich abseits der Streckenbegrenzung oder auch über der Strecke befinden, so dass die Fahrzeuge diese Streckenobjekte nicht berühren.
Im Idealfall ist die fertige entwickelte Rennumgebung so gestaltet, dass es dem Spieler, abgesehen von außerordentlichen Ereignissen, unmöglich ist, den Streckenbereich zu
verlassen.
5.1. Modellierung der Strecke
Für die Modellierung der Strecke gibt es verschiedene Möglichkeiten. Die Einfachste und
Schnellste ist es, einzelne Polygone zu erstellen und die entsprechenden angrenzenden
23
5. Modellierung
Vertices zu platzieren. Diese Methode ist jedoch für einen professionellen Streckenentwurf
nicht zielführend. Sobald eine Strecke Steigungen enthalten soll, wird es sogar nahezu
unmöglich, auf diese Weise vernünftige Ergebnisse zu erzielen.
Zwei ernsthafte Möglichkeiten, die Strecke zu modellieren, werden folgend vorgestellt.
5.1.1. FFD-Modelling
FFD steht für Free-Form Deformation, daher für die freie Verformung von Körpern.
Folgend wird die Funktionsweise des FFD-Modifikators speziell für die Modellierung von
Rennstrecken anhand der Bilderserie in Abbildung 5.1 erläutert.
Abbildung 5.1.: Bilderserie: Schritte beim FFD-Modelling
Zunächst wird eine lange Ebene mit 3 Breitensegmenten und beliebig vielen Längensegmenten erstellt. Dieses wird folgend in ein bearbeitbares Polygon umgewandelt, mit
Texturen belegt und gemappt. Part 1 der Abbildung zeigt eine leicht modifizierte Version
dieser Ebene.
Im nächsten Schritt wird der FFD(Quad)-Modifier auf die Ebene angewendet und in dem
Rollout FFD-Parameter die Punktzahlen der FFD-Box eingestellt. In dem vorgestellten
24
5. Modellierung
Beispiel sind die Punktzahlen auf 20x4x2 Punkte eingestellt. Das Ergebnis ist in Part 2
der Abbildung zu sehen.
Wenn das FFD-Gitter die Strecke umspannt, so kann diese mittels der Steuerpunkte der
FFD-Box beliebig im 3-dimensionalen Raum bewegt werden. Auf diese Weise werden
sowohl Steigungen der Strecke als auch der allgemeine Streckenverlauf erstellt. Selbst die
Auslaufzonen können in diesem Schritt schon vergrößert bzw. verkleinert werden, indem
schlicht nur die beiden äußeren Steuerpunkte verschoben werden. Zur Veränderung der
Streckenbreite werden analog dazu die inneren Steuerpunkte bearbeitet.
Ein mögliches Ergebnis ist in Part 3 bzw. Part 4 der Abbildung zu sehen. Bei Part 3
sieht man noch die FFD-Box (orange Striche), welche die Strecke umspannt, während in
Part 4 das mit Hilfe des FFD-Modellings erstellte Polygonnetz (rote Striche) kenntlich
gemacht wurde.
5.1.2. Loft-Extrusion
„Lofts bilden eine ausgefeilte Technik des 3d Studios, dreidimensionale Formen aus zweidimensionalen Umrissen zu entwickeln.1 “. Sie bestehen dabei aus 2 einfachen Splines, der
Kontur und dem Pfad.
Abbildung 5.2.: Konturspline mit Material-ID´s und Pfadspline
Die Abbildung 5.2 zeigt Kontur und einen Streckenpfad von ERS, einem anderen Rennstreckenprojekt des Verfassers. Linksseitig findet sich die Kontur mit vergebenen Material ID´s und auf der rechten Seite sieht man den nachgebildeten Streckenverlauf.
„Der Umriß (Kontur) wird entlang eines Pfades in den Raum gezogen - und dieser Pfad
kann eine beliebige Form annehmen.2 “
Ein riesiger Vorteil der Loft-Extrusion ist, dass sowohl Pfad als auch Kontur bis auf kleine
Einschränkungen den kompletten Entwicklungsprozess über verändert werden können.
1
2
Häßler, U.: 3D-Imaging, S. 76
ebd.
25
5. Modellierung
So ist es denkbar einfach, die Strecke beliebig zu erweitern oder Streckenabschnitte zu
verändern.
Aufgrund der einfachen Erweiterbarkeit empfiehlt es sich, bei der Loft-Extrusion die
Kontur bis zum gewünschten Endzustand zu modifizieren, für den Pfad jedoch sehr klein
zu beginnen. Ein Kreis oder noch einfacher eine Gerade ist dabei völlig ausreichend. Im
nächsten Schritt sollte die Kontur genau über den Pfad gelegt werden, so dass bei der
weiteren Bearbeitung keine Fehler auftreten.
Folgend kann die Pfad-Spline nach Belieben modifiziert werden. Ein Hinzufügen bzw.
Löschen von Knotenpunkten ist dabei problemlos und die Veränderungen werden sofort
im Loft sichtbar.
Abbildung 5.3.: Rollout: Oberflächen- und Hauptextrusionsparameter (Loft)
Ist das gewünschte Ergebnis erzielt (im Idealfall der komplette Streckenverlauf), werden
im nächsten Schritt die Hauptextrusions- und Oberflächenparameter (siehe Abbildung
5.3 festgelegt. Die wichtigsten Funktionen sind in der Abbildung gekennzeichnet. Unter
(2) und (3) können die Pfad- bzw. Konturschritte eingestellt werden. Diese legen fest,
wie viele Polygone sich zwischen zwei Kontenpunkten der Splines befinden. Höhere Werte glätten zwar die Geometrie, resultieren jedoch auch in einer erhöhten Polygonzahl.
Unter Punkt (1) findet sich die wichtigste Funktion für das Mapping der Strecke. Die
Wiederholungen legen fest, wie oft die Textur entlang des Pfades gekachelt wird.
Die Vergabe der Material-ID´s erfolgt auf der Kontur-Spline. Dabei kann jedem Segment
der Spline eine eigene ID zugewiese werden..
26
5. Modellierung
Ein sehr interessanter Aspekt bei der Erstellung von Loft´s sind die Verformungsfunktionen. Speziell mittels der Dialogfenster Verdrehung und Skalierung lässt sich die Breite
und Neigung des Streckenlofts komfortabel anpassen.
Es ist ebenso möglich, diese Veränderungen mit Hilfe von Kontursplines zu erzielen.
Diese sind intuitiver als die Verformungsfunktionen zu bedienen und darüber hinaus
können mit ihrer Hilfe mitten im Loft die Material-ID´s verändert werden.
Ein mögliches Endergebnis der Loft-Extrusion zeigt die Abbildung 5.4. Auf der rechten
Seite ist ein Teil der gelofteten Rennstrecke ERS3 sichtbar. Bei genauerem Hinsehen
fallen weiße Kontursplines auf. Linksseitig finden sich diese Konturplines mit (1) bezeichnet wieder. Rot durchschimmernd sieht man das Drahtgittermodell, welches durch
die Loft-Extrusion erstellt wurde. Unter (2) erkennt man sehr schön, wie man mit Hilfe
der Kontursplines auch die Größe der Auslaufzonen schon im Loft ändern kann und bei
(3) beginnt und endet ein Curb-Abschnitt noch im Loft.
Abbildung 5.4.: Loft-Extrusion mit Kontursplines
Die Loft-Extrusion gibt dem Entwickler die Möglichkeit, eine fahrbare Streckenversion direkt in die Simulation zu integrieren, zu testen und ggf. Änderungen am Loft zu
vollziehen, bis er mit dem Ergebnis zufrieden ist.
3
ERS ist ein weiteres Rennstreckenprojekt des Verfassers. An ERS werden Stärken der Loft-Extrusion
deutlicher als beim Alemannenring, weshalb es in diesem Kapitel Verwendung findet.
27
5. Modellierung
Aufgrund der hohen Flexibilität der Loft-Extrusion, der vielen Möglichkeiten, der Genauigkeit und der Einfachheit nachträglicher Änderungen bevorzugt der Verfasser diese
Methode der professionellen Streckenerstellung.
Auch für den Alemannenring wurde die Loft-Extrusion in ähnlicher Weise verwendet.
5.1.3. Checkpoints
Rennstrecken haben im Regelfall eine Start-/Ziellinie und eine Boxengasse. Dabei gibt
es in der Boxengasse eine Geschwindigkeitsbegrenzung, die je nach Rennserie variieren
kann. Zudem werden Rennstrecken meist in mehrere Sektoren eingeteilt, um einen genaueren Überblick über das Renngeschehen geben zu können. Dieser Umstand wird in
rFactor durch sogenannte Checkpoints simuliert. Von diesen gibt es die fünf folgenden,
die jede Strecke enthalten muss, um eine korrekte Funktionalität zu gewährleisten:
xFINISH Die Start-/Ziellinie. Sie muss sowohl die Strecke kreuzen als auch die Boxengasse, so dass auch bei einer Boxendurchfahrt die Runde als solche gewertet
wird.
xSECTOR1 Linie erster Sektor. An dieser Stelle wird die erste Sektorzeit gemessen
und im Spiel angezeigt. Es beginnt Sektor Nr. 2.
xSECTOR2 Linie zweiter Sektor. Der letzte Sektor beginnt und entsprechende Zeiten
werden ermittelt.
xPITIN Boxeneingang. Ab diesem Polygon gilt das eingestellte Speedlimit für die Boxengasse. Weiterhin wird beim Überfahren die rFactor-Routine für einen Boxenstop ausgelöst.
xPITOUT Der Boxenausgang. Das Speedlimit ist aufgehoben und der Boxenstop gilt
als beendet.
Damit die Checkpoints funktionieren, gibt es einige Konventionen bei deren Implementierung. Sie müssen aus einem Objekt mit einem Polygon bestehen, welches mit einem
beliebigen Multi-Unterobjekt-Material versehen ist. Bei der Bezeichnung der Objekte
muss sich strikt an die oben aufgelisteten Bezeichner gehalten werden.
Des weiteren müssen in der .scn-Datei (siehe Kapitel 7.2) folgende Einträge gemacht
werden.
28
5. Modellierung
1
2
3
4
5
6
Instance=xFinish
{
Render=False
MeshFile=XFinish.gmt CollTarget=True HATTarget=False
Response=VEHICLE,TIMING
}
Der xFinish-Checkpoint für die Start-/Ziellinie ist somit im Spiel weder sichtbar (Render) noch ein Kollisionsobjekt (HATTarget). Durchfährt man den Checkpoint, wird dies
jedoch erkannt (CollTarget) und die Zeitnahme aktiviert (Response).
Analog funktionieren die anderen Checkpoints.
Für die Implementierung im Spiel ist es weiterhin ratsam, für die Start-/Ziellinie und die
Boxenein- und -ausfahrt auch noch tatsächlich sichtbare Markierungen auf der Strecke
zu platzieren, um dem Nutzer den Ort der Checkpoints zu veranschaulichen.
5.2. Modellierung der Umgebung
Als Umgebung sollen in dieser Arbeit alle Objekte angesehen werden, die sich hinter
der von der Strecke aus gesehen ersten Leitplanke befinden. Dies sollte dem Bereich
entsprechen, der von den Fahrzeugen nie befahren werden kann.
Speziell für den Alemannenring, einer Stadtstrecke besteht die Umgebung aus vielen verschiedenen Gebäuden, Bäumen, Stromleitungen etc. . Um einen hohen Immersionseffekt
zu erzielen, müssen eben diese Objekte auch im Spiel wiederzufinden sein.
5.2.1. Entstehung eines Hauses
Schematisch für die Erstellung aller Streckenobjekte soll eine Haus des Alemannenrings
dazu dienen, den Weg eines realen Objekts in die Simulation aufzuzeigen. Die zugehörige
Abbildung 5.5 wird in diesem Abschnitt näher erläutert.
Im ersten Schritt müssen Fotos vom realen Objekt erstellt werden. Ein solches findet sich
in Part 1 der Abbildung 5.5. Mit Hilfe von Fotos wird es dem Modellierer ermöglicht,
einen Eindruck über die verschiedenen Proportionen des Gebäudes zu gewinnen. Ist
zusätzlich ein Bild aus der Draufsicht vorhanden, können die Ausmaße des Gebäudes
sehr realitätsnah umgesetzt werden.
29
5. Modellierung
Abbildung 5.5.: Bilderserie: Die Entstehung eines Hauses
Sind genug Fotos vorhanden, so wird das 3d-Modell des Gebäudes erstellt. Dabei gibt
es keine richtige Variante, dies zu bewerkstelligen. Der Verfasser bedient sich für diesen
Vorgang entweder dem Boxmodelling oder dem Polygonmodelling.
Bei ersterem wird ein Quader erstellt, aus dem sukzessiv weitere Details herausgearbeitet
werden.
Beim Polygonmodelling beginnt der Prozess der Modellierung dem Namen entsprechend
mit einem Polygon, z.B. einer Gebäudewand. An dieses werden weitere Gebäudeteile
angefügt, bis der Vorgang der Modellierung abgeschlossen ist.
Dies ist für Part 2 und 3 der Abbildung 5.5 der Fall. Beide sind Render aus 3dsmax heraus. Dabei ist in Part 2 der untexturierte Rohbau des Gebäudes zu sehen. Im nächsten
Schritt müssen Texturen für das Gebäude erstellt werden, die dem Objekt bzw. den einzelnen Polygonen des Objektes zugewiesen werden. Danach folgt noch das Mapping, bei
dem definiert wird, wie die Textuen auf die Polygone „projeziert“ werden. Das Ergebnis
dieser Vorgänge ist in Part 3 zu sehen.
30
5. Modellierung
Im letzten Schritt muss das Gebäude noch ins Spiel integriert werden, um den Prozess
abzuschließen. Das fertige Gebäude in der Simulation ist in der Abbildung 5.5 Part 4 zu
sehen.
5.2.2. weitere Umgebungsobjekte
Analog zu dem oben beschriebenen Gebäude sollten auch alle weiteren Umgebungsobjekte umgesetzt werden, die auch im realen Vorbild existieren. Dies wird in vollem Umfang
jedoch kaum möglich sein, denn „ein grundlegendes Problem beim Streben nach völlig realistischen Bildern ist die Komplexität der realen Welt. (Reale Objekte) haben
viele Oberflächentexturen, subtile Farbabstufungen, Schatten, Spiegelungen und kleine
Unregelmäßigkeiten. ... Dies alles trägt zu einer realen optischen Erscheinung bei.“4
Bei der Umsetzung der realen Welt in eine virtuelle Realität müssen daher Kompromisse gemacht werden und gerade für eine Rennsimulation, bei welcher die Performance
eine wichtige Rolle spielt, muss ein vernünftiger Mittelweg zwischen der Reichhaltigkeit
umgesetzter Inhalte und der Framerate im Spiel gefunden werden.
Ein Beispiel für die Verfolgung dieses Performance-Gedankens stellen Bäume in Rennsimulationen dar. Bäume sind komplexe Strukturen und nur mit erheblichem (Polygon)Auwand realistisch umzusetzen.
Zur Vereinfachung werden bei Bäumen schlicht zwei Ebenen erstellt, die diagonal zueinander stehen und sich mittig treffen. Diesen wird ein zweiseitiges Material zugewiesen,
welches Baumtextur mit Alpha Kanal enthält, der für die Transparenz verantwortlich
ist. Eine andere Möglichkeit ist die Realisierung der Bäume als sogenannte Billboards,
die sich zur Kamera drehen.
Das dabei erzeugte Ergebnis ist nicht perfekt, aber für das Spielgefühl völlig ausreichend,
zumal die Bäume meist eine gewisse Entfernung zur Fahrbahn besitzen.
Für die Entwicklung einer virtuellen Rennstrecke ist es essenziell, dass wichtige Gebäude
und kennzeichnende Merkmale des realen Vorbilds in der Simulation wiederzufinden sind.
Auf übertriebene Genauigkeit kann bzw. muss verzichtet werden.
4
Foley, J. und weitere: Grundlagen der Computergrafik, S.481
31
6. Materialien
„Der Begriff des Materials ... beinhaltet alles, was die Oberflächenbeschaffenheit eines
Objektes ausmacht.
Eine Oberfläche kann hell leuchtend, fluoreszierend, durchscheinend, rauh, glatt oder
spiegelnd sein. Die Belegung Ihrer Objekte mit dem ‚richtigen‘ Material entscheidet
maßgeblich über die Qualität der Darstellung.“1
Demnach sind Materialien unabdingbar für die Erstellung von virtuellen Umgebungen.
In rFactor werden die Materialien dabei durch verschiedene Texturen erzeugt, die durch
verschiedene Shader (siehe 6.3) in Wechselwirkung treten. Die Texturen sind somit der
wichtigste Faktor für die Darstellung der Objekte im Spiel und werden im folgenden
näher behandelt.
6.1. Texturen
Zwei Konventionen der gMotor Engine sind das Dateiformat der Texturen und deren
Auflösung. So dürfen nur Texturen der Formate .bmp, .tga oder .dds verwendet werden.
Bei der Auflösung ist zu beachten, dass die Ausmaße der Textur (Höhe bzw. Breite)
einer Zweierpotenz entsprechen müssen.
6.1.1. verschiedene Arten
Texturen können verschiedene Funktionen haben. Vier der Hauptfunktionen, welche auch
beim Alemannenring Verwendung finden werden im folgenden Text näher betrachtet.
Die meistverwendete Textur ist ein Bitmap (Pixelbild). Diese „werden häufig eingesetzt,
um naturnahe Oberflächen zu erstellen.
1
3d Visualisierung, S. 112
32
6. Materialien
Es ist erheblich leichter, ein Ziegelmauerwerk zu fotografieren, einzuscannen und anschließlich auf (das) 3D-Objekt zu zu ‚mappen‘ als ein bildverarbeitungsprogramm zu
starten, den digitalen Zeichenstift zu schwingen und das Ziegelmauerwerk selber zu erstellen.“2 Eine weitere Texturart wird beim Bump-Mapping verwendet. Dieses „erzeugt
auf Basis eines Graustufenbildes den Eindruck von Erhebungen oder Vertiefungen einer
Oberfläche.“3 Texturen für Specular-Maps und Alpha-Maps sind wiederum Graustufenbilder. Im Fall der Specular-Maps geben die Graustufen an, wie stark Licht von der
Oberfläche reflektiert wird, während bei den Alpha-Map durch die Graustufen die Transparenz des Objektes definiert wird. Texturen für Alpha-Maps werden verwendet, um bei
der Darstellung von Personen, Bäumen oder auch Leitplanken Polygone zu sparen.
Auf das Zusammenspiel verschiedenartigen Texturen wird in Kapitel 6.3 eingegangen.
6.1.2. Verwendung
Kleinere Objekte werden meist mit einer einzigen Textur versehen. Für größere Objekte, insbesondere Gebäude, gibt es potenziell geeignetere Methoden. Am Beispiel eines
Alemannenring-Gebäudes wird dieser Umstand im folgenden veranschaulicht.
Jedes Objekt kann, entsprechende Mapping-Fähigkeiten vorausgesetzt, mit einer einzelnen Textur vollständig texturiert werden. Bei dieser Methode, welche zu Beginn auch
beim Alemannenring Verwendung fand, treten die folgenden drei Probleme auf.
Bei bei einem solchen Verfahren bleibt die gedachte Messgröße Pixel/Meter auf dem
3d-Objekt sehr gering, wodurch die Textur unscharf wird. Ein weiteres Problem ist die
Texturauflösung. Damit Details des Gebäudes überhaupt sichtbar werden, muss die verwendete Textur eine Größe von 1024x1024, bei noch größeren Gebäuden sogar Werte wie
2048x1024 aufweisen. Dies resultiert in einer unerwünscht großen Dateigröße. Zusätzlich
ist der Zeitaufwand, der beim Mapping des Objektes und später der tatsächlichen Texturierung entsteht ist immens und somt das dritte Problem dieser Vorgehensweise.
Ein Beispiel findet sich im linken Teil der Abbildung 6.1. Die Textur wurde dabei von
einem Projektmitarbeiter ohne Hilfe realer Texturen erstellt.
Nachdem im Rahmen des Alemannenring-Projektes ersichtlich wurde, dass ein solches
Texturierungsverfahren zu aufwendig ist, wurde sich für eine andere Methode entschieden. Der rechte Teil der Abbildung 6.1 zeigt das Ergebnis dieses Verfahrens.
2
3
Mach, R.: 3d-Visualisierung, S. 113
ebd.
33
6. Materialien
Abbildung 6.1.: Vergleich beider Varianten zur Texturierung an einem Gebäude des
Alemannenrings
Bei diesem werden anstatt einer großen Textur viele kleine Texturen verwendet. Der
große Vorteil dabei ist die Möglichkeit, einzelne Texturen vielfach zu verwenden und
selbige zu kacheln. Des Weiteren wurden nun Fotos für die Erstellung der Texturen
verwendet, wodurch die Gebäude im Spiel realistischer wirken.
Insbesondere bei Annäherung an das Gebäude fällt auf, wie verwaschen und comichaft
die Texturen bei der veralteten Methode wirken.
6.2. Der Materialeditor
Für die Erstellung und Konfiguration der Materialien wird der Materialeditor von 3dsmax verwendet. Die Einstellungen finden dabei in drei Ebenen statt, die folgend erläutert
werden.
Die oberste Ebene ist das 3dsmax-Material. Dabei ist es eine Konvention der Engine,
dass das Material der obersten Ebene immer ein Multi-/Unterobjekt sein muss. Das
zugehörige Rollout ist in der Abbildung 6.2 zu sehen.
Unter (1) findet sich der Name des Multi-/Unterobjekts. Dieser kann beliebig gewählt
werden. In Feld (2) findet sich die ID des Untermaterials und in (3) dessen Name. Der Name spielt für die Implementierung in rFactor keine Rolle, sollte jedoch trotzdem sinnvoll
34
6. Materialien
Abbildung 6.2.: Materialeditor: Rollout Multi-/Unterobjekt
gewählt werden, da er im Editor von 3dsmax die Suche nach der richtigen Material-Id
vereinfacht. Der Button (*) führt in die nächste Materialebene, die in Abbildung 6.3
sichtbar ist.
Abbildung 6.3.: Materialeditor: Rollout gMat
In dieser findet sich unter (1) der Name des gMat 4 . Bei diesem muss auf die Bezeichnung geachtet werden. Jedes gMat darf auf der kompletten Strecke nur einmal verwendet
4
gMat steht dabei für gMotor Material
35
6. Materialien
werden und weiterhin bestimmt die Bezeichnung des gMat die Fahreigenschaften, siehe Abschnitt 6.4. Bei (2) kann eingestellt werden, wie stark und mit welcher Farbe das
Material Licht reflektiert. Unter (3) finden sich die Shadereinstellungen und die verschiedenen Texture-Stages. Deren Anzahl ist abhängig vom gewählten Shader. Der Button
(*) führt auf die unterste Materialebene, siehe Abbildung 6.4.
Abbildung 6.4.: Materialeditor: Rollout gTex
Dieses Rollout beinhaltet die Einstellungen für die Texturebene, bezeichnet als gTex 5 .
Der Name (1) kann beliebig gewählt werden. Unter (2) muss die gewünschte Textur
ausgewählt werden. Ist die Textur eine .dds- oder .tga-Datei mit einem alpha-Kanal, so
muss das Häkchen bei (3) Croma Color gesetzt und die Farbe auf schwarz eingestellt
werden, um den alpha-Kanal zu aktivieren. Die MIP Bias (4) legt die Texturschärfe in
der Entfernung fest, für die meisten Texturen empfiehlt sich der Wert -1,0, für Straßen
kann er noch niedriger gesetzt werden. Zu niedrige Werte resultieren allerdings im Spiel
in einem Flackern der Textur.
6.3. Shader und Multitexturing
„Shader, auch als Schattierer bezeichnet, sind Hardware- oder Softwaremodule, die bestimmte Renderingeffekte bei der 3D-Computergrafik implementieren. Aus technischer
5
gTex steht für gMotor Texture
36
6. Materialien
Sicht bezeichnet ‚Shader‘ denjenigen Teil eines Renderers, der für die Ermittlung der
Farbe eines Objektes zuständig ist.“6
Die richtige Wahl und Konfiguration der Shader hat einen großen Einfluss auf die Optik
der Strecke. Es ist aus diesem Grunde lohnenswert, an dieser Stelle viel zu experimentieren und die Wirkung der verschiedenen Shader in der Simulation zu testen.
An dieser Stelle soll die Funktion eines Shaders näher erläutert werden. Dieser trägt
im Materialeditor die Bezeichnung: „Bump Specular Map T1“. Sowohl die Fahrbahn
als auch die Reifenstapel verwenden dabei diesen Shader mit drei Textur-Stages. Dabei
fallen jedoch die Konfiguration des selbigen unterschiedlich aus.
Abbildung 6.5.: Shader: Zusammenspiels verschiedener Texture Stages
Anhand der Reifen in Abbildung 6.5 wird die Funktion der einzelnen Texture-Stages klar.
Die Color-Stage (1) definiert die Farbe des Objektes. Die Bump-Map (2) erzeugt gibt
der Oberfläche der Reifen eine Struktor. Eine Specular-Map (3) definiert, welche Teile
des Reifens das auf ihn treffende Licht wie stark reflektieren. Das fertige Endergebnis
findet sich bei (4).
Bei den Reifen sind alle Texture-Stages identisch auf die Reifenstapel gemappt. Ein
großer Vorteil beim Multi-Texturing und die wahre Stärke eines solchen Verfahrens ist,
6
http://de.wikipedia.org/wiki/Shader
37
6. Materialien
dass für jede Textur verschiedene Mapping-ID´s verwendet werden können. Bei genauerer Betrachtung der vier Straßenteile in Abbildung 6.5 fällt auf, dass die Texturen unterschiedlich stark gekachelt sind. Eine Kachel der Fahrbahntextur (1) breitet sich über
die komplette Straße aus (grob 10m x 10m), während die Texturen für die Specular und
Bump-Map sich alle 2m (Spec) bzw. alle 0,5m (Bump) wiederholen.
Noch klarer wird die Funktion des Multitexturings bei der Erstellung größerer Landschaftsareale. Dort wird es mit Hilfe verschiedene Mapping-ID´s möglich, große Areale
mit wenigen, kleinen Texturen optisch ansprechend zu gestalten.
6.4. Auswirkung der Materialnamen auf das
Fahrverhalten
rFactor hegt den Anspruch, eine waschechte Rennsimulation zu sein. Um diesem Anspruch gerecht zu werden, müssen die Fahrzeuge auf verschiedene Untergründe unterschiedlich reagieren. So hat ein Reifen, der den Kontakt zwischen Fahrzeug und Untergrund herstellt, auf einer Straße eine ganz andere Haftung als auf Schotter oder Gras.
Die im Anhang befindliche Tabelle A.1 listet alle von rFactor beachteten Materialien
auf. Diese gliedern sich dabei in die vier Kategorien Straßen, Gras, Curbs und Wände.
Es ist essenziell bei der Streckenerstellung, sich an die Namensgebung der Engine zu
halten, da die Strecke sonst nicht funktionstüchtig ist. Alle Wände und auch undefinierte
(Default) Materialien werden von der Engine als Kollisionsobjekte interpretiert und sind
nicht befahrbar.
38
7. Filestruktur
Das folgende Kapitel beschreibt die Filestruktur von rFactor. Diese ist strikt einzuhalten,
damit Inhalte von Drittanbietern in das Spiel eingebunden werden können.
Einen Streckenordner inklusive aller Dateien von Grund auf zu erstellen, ist eine sehr
fehlerträchtige Angelegenheit und erfreulicherweise nicht notwendig.
Die Einfachste und auch beim Alemannenring-Projekt angewendete Methode, um neue
Inhalte hinzuzufügen ist es, einen vorhandenen Streckenordner zu kopieren und dann
die entsprechenden Dateien zu ändern. In den weiteren Ausführungen geht der Verfasser davon aus, dass die Dateien einer anderen Strecke übernommen und entsprechend
umbenannt wurden.
Abbildung 7.1.: Screenshot: Hauptordner Alemannenring
Vom rFactor-Hauptverzeichnis aus gesehen befindet sich der Streckenordner im Unterordner /GameData/Locations (siehe Abbildung 7.1). Im Fall des Alemannenrings heißt
der Streckenordner schlicht „Alemannenring“. In diesem Hauptstreckenordner befinden
sich zwei Dateien und zwei Unterordner. Die beiden Dateien sind die Alemannenring.mas
und die AlemannenringMaps.mas. Es hat sich als eine Art „Standard“ herausgebildet,
die 3d-Dateien (.gmt) in einer .mas-Datei und die Texturdateien (.dds, .bmp, tga) in
einer weiteren Datei abzuspeichern.
In rFactor ist es möglich, nach einer Art Vererbungsprinzip mehrere Streckenlayouts für
eine Rennstrecke zu erstellen. Die Filestruktur eines solchen Layouts ist in Abbildung
39
7. Filestruktur
7.2 sichtbar. Bei einer solchen Vorgehensweise besteht die Möglichkeit, dass die verschiedenen Layouts auf die selben .mas-Dateien zugreifen, die sich im Hauptordner befinden.
Darüber hinaus ist es natürlich auch möglich, speziell für ein Layout eine eigene .masDatei zu erstellen, auf welche die anderen Layouts keinen Zugriff haben.
Abbildung 7.2.: Screenshot: Unterordner Streckenvariante Alemannenring
Im Unterordner des Layouts befinden sich verschiedene Dateien. Trivial sind die Bilddateien. Die „Alemannenringloading.jpg“ ist der Ladescreen, der beim Starten der Strecke
in rFactor angezeigt wird und die anderen beiden .tga-Dateien sind kleine Bilder, die bei
der Streckenauswahl in rFactor angezeigt werden.
Die Funktion der verbleibenden Dateien wird folgend kurz beschrieben. Auf eine vollständige Dokumentation aller Files wurde im Rahmen dieser Arbeit verzichtet. Zur Vertiefung der Kenntnisse über die Filestruktur wird auf das Literaturverzeichnis verwiesen
(siehe Anhang B).
7.1. .gdb Datei - Informationen über die Strecke
Die .gdb-Datei 1 enthält Informationen über das Streckenlayout, Boxengeschwindigkeiten, den geografischen Standort der Strecke, die Beleuchtungseigenschaften der Umgebung die Standardbezeichnungen für die Setups der Fahrzeuge.2
1
2
gdb steht für Game DataBase
vgl. http://www.modding.frracers.ultramoron.com/Overview.shtml
40
7. Filestruktur
7.2. .scn Datei - Objekte
Die .scn-Datei 3 ist die wichtigste Datei für die Darstellung im Spiel. In ihr wird festgelegt, welche Streckenobjekte beim Start der Strecke geladen werden. Am Anfang der
Datei werden sowohl die Ordner definiert als auch die zu durchsuchenden .mas-Dateien
angegeben. Folgend ein Auszug aus der „Alemannenring.SCN“:
1
2
3
4
5
6
7
8
SearchPath=.
SearchPath=Alemannenring
SearchPath=Alemannenring/Alemannenring
//------------------------------------------------------MASFile=Alemannenring.mas
MASFile=AlemannenringMaps.mas
MASFile=CommonMaps.MAS
[...]
Die einzelnen Objekte, welche im Spiel geladen werden sollen, werden in der .scn als
Instanzen angegeben. Folgend wiederum ein Auszug aus dem Quelltext:
1
2
3
4
Instance=Curbs
{
MeshFile=Curbs.gmt CollTarget=True HATTarget=True ShadowReceiver=True
}
Diese Zeilen sind werden wie folgt von der Enginge interpretiert. Die Instanz Curbs soll
geladen werden, deren MeshFile Curbs.gmt ist.
Nun werden die im oberen Auszug angegebenen Ordner und .mas-Dateien auf die Datei
Curbs.gmt durchsucht. Diese enthält Informationen über die Geometrie, Materialien
und Texturen des Objektes, welche direkt im Anschluss von der Engine geladen werden.
Tritt beim Ladevorgang ein Fehler auf 4 , so gibt es einen einen sogenannten ctd (crash
to desktop). Der Ladevorgang der Strecke wird abgebrochen, das Spiel stürzt ab und der
Nutzer findet sich auf seinem Desktop wieder.
Weiterhin bekommt die Engine aus den oberen Zeilen die Information, dass die Instanz
„Curbs“ ein befahrbares Objekt (HATTarget) ist und auf selbigem Schatten von Fahrzeugen oder anderen Objekten berechnet werden sollen (ShadowReceiver).
3
4
scn steht für Scenery
Wenn eine gesuchte .gmt-Datei oder Textur nicht aufzufinden ist.
41
7. Filestruktur
Jeder Instance-Name darf nur einmalig vorkommen, da sonst Fehler auftreten können.
Analog zu diesem Beispiel sind alle weiteren Objekte in der .scn-Datei definiert, die in
der Simulation zu sehen sind.
7.3. .aiw Datei - KI-Linien
In der .aiw-Datei werden hauptsächlich die Wegpunkte für die KI definiert. Des weiteren enthält sie die Standorte der Startaufstellung und der Boxenplätze der einzelnen
Fahrzeuge. Überdies enthält die .aiw-Datei Informationen über den geschätzten Benzinverbrauch auf der Strecke und Parameter zur Nebelfarbe und -dichte auf der Strecke.
Der Alemannenring besitzt rund 750 Waypoints. Im Anhang (siehe Anhang A.3 findet
sich ein Auszug der „Alemannenring.AIW“, in dem der Quellcode eines solchen Waypoints zu finden ist.
7.4. .cam Datei - Kameras
Sowohl für die Änderung der Kameras als auch die Änderung der im vorigen Kapitel
beschriebenen KI Linien kann der „rFactor AIWCAM Editor“ verwendet werden.
Die .cam-Datei enthält Informationen zum Standort und den Bewegungen der Streckenkameras. rFactor stellt dem Entwickler 2 unterschiedliche Kameratypen zur Verfügung.
Während statische Kameras ein „Standbild“ der Strecke einfangen, fokussieren Verfolgerkameras das gerade aktivierte Fahrzeug an, bis die nächste Kamera aktiviert wird.
Sie schwenken dementsprechend auf das jeweils aktivierte Fahrzeug.
Kameras können zu Präsentationszwecken verwendet werden.
Eine viel wichtigere Funktion der Streckenkameras ist es allerdings, das Renngeschehen
möglichst spannend und effektvoll einfzuangen, damit die Verfolgung eines Rennens über
die TV-Kamera zu einem unvergesslichen Erlebnis wird.
42
8. Abschließende Bemerkungen
Im Rahmen der Bachelorarbeit konnte nur auf grundlegende Sachverhalte der Rennstreckenerstellung in Form einer Modifikation eingegangen werden. Die Modellierung
von Strecke und Umgebung, die Zuweisung der Materialien und die Bearbeitung der
Filestruktur stellen die absoluten Grundlagen der Konvertierung realer Umgebungen zu
virtuellen Rennstrecken dar und decken nur einen Bruchteil der Möglichkeiten ab, die
eine Rennsimulation wie rFactor den Moddern bietet.
Wichtige Begleiterscheinungen bei der Erstellung virtueller Realitäten wie eine strikte Verfolgung des Performace-Gedankens durch vielfache Optimierungen1 konnten im
Rahmen der Arbeit nur kurz angerissen werden bzw. fanden gar keine Erwähnung.
In der Einleitung der Bachelorarbeit wurde der Anspruch erhoben, dem Leser einen Einblick zu geben, wie aus einer realen Umgebung eine virtuelle Rennstrecke entsteht.
Über diesen Gedanken hinaus sollte dem Leser ein Überblick über aktuelle Rennsimulationen gegeben und ein Vorgehensmodell entwickelt werden.
Dieses Vorgehensmodell sollte dem geneigten Leser die einzelnen Schritte eines solches
Prozesses aufzeigen und letztendlich mit dem Rest der Arbeit dazu Befähigen, ein solches Vorhaben, die Integration einer realen Umgebung in eine Rennsimulation, auch
tatsächlich umzusetzen.
Der Überblick über aktuelle Rennsimulationen sowie das Vorgehensmodell findet sich in
der vorliegenden Arbeit wieder.
Weiterhin sollte es möglich sein, mit Hilfe der Arbeit und der im Literaturverzeichnis
angegebenen Quellen eine solide Rennstrecke für eine Rennsimulation zu erstellen.
1
Beispiele für derartige Optimierungen sind Visgroups oder die Erstellung mehrerer LOD-Level
43
A. Anhang
A.1. Gedanken und Vorgehensweise einen Profis
Im Rahmen der Bachelorarbeit hat der Verfasser mehrere Entwickler der Modding-Scene
angeschrieben und nach ihrer Vorgehensweise bei der Kreation von Rennstrecken gefragt.
Ein Entwickler, der in diesem Bereich schon viele Erfahrungen sammeln konnte und
einige qualitativ hochwertige Strecken erstellt hat, ist Alexander Hummler, in der Scene
unter dem Nickname Com8 bekannt. Von diesem stammt die folgende E-Mail.
„Hallo Ricardo,
Erstmal zu den Fragen:
Wie kommst du bzw. nach welchen Kriterien wählst du das Projekt bzw. die Strecke aus,
die du entwickelst?
Tritt ein Unternehmen mit einem speziellen Wunsch an mich heran, ist das Projekt also vorgegeben meine Aufgabe ist dann einfach die Umsetzung nach den Wünschen der Kunden. Möchte ich einfach für
die Community ein Projekt starten, schaue ich mir vorher an welche Strecken bereits in hoher Qualität
verfügbar sind (plattformunabhängig). Vorranging suche ich Strecken aus dem europäischen Raum, die
ein gewisses Feeling erzeugen - dieses Feeling für Tiefe zum Beispiel kommt gut bei naturnahen Anlagen auf. Beispiel Spa, Nordschleife, Sachsenring, Salzburgring - alles wunderschöne Naturrennstrecken
... die Verbindung von Motorsport und Natur muss also nicht unbedingt in einem Gegensatz stehen.
Naturtribünen, die Anpassung der Strecke an das Gelände mit seinen Steigungen, Gefällen und topografischen Besonderheiten machen dann einfach den Reiz beim Layout aus. So entstehen faszinierende
Streckenverläufe. Mit bemalten Parkplätzen ala Tilke kann ich zum Beispiel überhaupt nichts anfangen,
die haben weder Charakter noch eine besondere Atmosphäre, wie ich finde. Auch Strecken die eventuell
nicht sehr bekannt sind reizen mich immer wieder, so entstand zum Beispiel die Autocross Strecke am
Matschenberg in meiner Heimat für rFactor. Oder das Bergrennen in Lückendorf, ich suche da einfach
immer eine neue Herausforderung um die Qualität meiner Arbeit zu pushen.
Wie und wo findest du Referenzen?
Bei einem Kundenauftrag bekomme ich wenn vorhanden CAD-Zeichnungen mit Bau-Lage-und Geländeplänen oder ähnliches Material. Referenzfotos sind ebenfalls ein wichtiger Bestandteil für die möglichst
genaue Umsetzung wenn es um das Modelling und Texturing geht. Bei einem Eigenprojekt nutze ich oft
Google Earth um plane Aufnahmen zu bekommen. Die nutze ich dann für das grobe Layout und teilweise auch als Geländetexturen. Manchmal reise ich dann selber zu Strecken um Referenzfotos zu machen,
44
A. Anhang
oft helfen mir auch Leute aus der Community die in der Nähe der Strecke wohnen (so geschehen bei
Mainz-Finthen und Norisring 2009). Onboardvideos sind ebenfalls eine gute Quelle um Anhaltspunkte
für Feinheiten im Layout oder der Fahrbahn zu haben. Auch erkennt man in den Videos, die für den
Fahrer wichtigen Details am Streckenrand - da die Strecke mal in einer Rennsimulation landen soll, ist
das also ein extrem wichtiger Punkt.
Für welche Rennsimulationen entwickelst du deine Strecken? Warum gerade diese?
Im Moment hauptsächlich für rFactor, manchmal konvertiere ich die Strecken dann auch nach GTREvo
bzw. RaceOn - also ausschließlich die gmotor2 Engine. Das liegt einfach daran, das die Engine leicht
zugänglich ist, sich einfach Modden lässt und sehr gut mit 3D Studio Max zusammenarbeitet. Zudem
kenne ich die Engine seit fast fünf Jahren - kenne also alle Tricks und Kniffe um die bestmögliche
Qualität rauszuholen.
Welche Software verwendest du für die Umsetzung?
Für das Modeling, Mapping und Texturing verwende ich 3D Studio Max 8. Dort entsteht das Layout,
die Objekte und die komplette Vegetation. Sind einfache Objekte in Masse zu platzieren oder kurz was
nachzuprüfen nutze ich auch 3D Simed ergänzend.
Jetzt was zum Ablauf eines Projektes.
Als erstes steht natürlich die Idee. Nachdem die Auswahl getroffen ist geht es zuerst an den Research.
Ich versuche so viel Information wie nur möglich über die Strecke zu bekommen - sammle Alles was
im Entferntesten mit dem Projekt zu tun hat. Fotos, Videos, Pläne, Zeichnungen, Geschichten oder
Homepages - einfach Alles. Dann geht es an den Streckenverlauf. Habe ich nur topografische Unterlagen
zur Verfügung (z.Bsp. Google Earth) lege ich mir den Verlauf in der richtigen Größe als Grundlage für
das Modelling. Ich arbeite beim Erstellen des Layouts mit dem Lofting-Verfahren. Im nächsten Schritt
erstelle ich das Terrain innerhalb, sowie außerhalb der Strecke bis zu einer bestimmten Entfernung. Dann
werden Kiesbetten, Curbs und Auslaufzonen eingearbeitet. Ist das getan werden die Leitplanken und
Mauern gestellt, danach versuche ich bereits die grobe Vegetation um die Strecke zu gestalten - mit Hilfe
von einfachen "Treewalls"werden Wälder oder Wiesen begrenzt. Es folgen das Stellen der Fangzäune und
das Modelling der Gebäude und Boxenanlagen. Die Objekte werden meist direkt nach dem Modelling
gemappt und erstmal einfach texturiert - zwischendruch werden immer wieder Ingame-Tests gefahren.
Die Vegetation wird verfeinert und es folgen immer mehr Details die eingearbeitet werden. Nach Sichtung
von Fotos und Videos weiß man, welche Details für die Strecke wichtig sind - eine gewisse Grenze ist
ja doch immer gegeben, schließlich soll die Strecke später auf vielen unterschiedlichen Rechnersystem
gleich gut laufen. Da ist das abwägen von Detailgrad und Performance manchmal sehr schwierig.
Ist dann Alles soweit, zusammengesetzt und texturiert werden die Shader für DX9 und DX8 eingestellt
- Spec-, Bump- und Multimapping, Alpha für Bäume und Zäune sowie das Environment Mapping. Alles
exportieren und die Struktur von rFactor einbinden. Zum Schluss das Erstellen der Kameras und die
Waypoints für die AI, das Grid, Garagen- und Boxenplätze. Dann muss getestet werden - verschiedene
DX Versionen, Textur- und Detailgrade. Mit oder ohne Antialiasing bzw. Anisotropen Filter um spätere
Fehler bei den Usern auszuschließen. Ist die Strecke auf Herz und Nieren geprüft kann sie als v1.0 released
werden!
So, mehr fällt mir grad nich ein .. wenn noch was unklar ist melde Dich einfach!
Gruß, Alex - www.com8-rennsim.de.vu“
45
A. Anhang
A.2. Tabelle zu Materialien in rFactor
Die Tabelle A.1 beschreibt die verschiedenen Materialien, die von rFactor zur Verfügung gestellt werden. Die Tabelle wurde mit Hilfe der „terrain.tdf“ erstellt. Diese Datei
befindet sich im Streckenordner von rFactor und legt Gripverhältnisse der Materialien
und die Effekte bei Berührung 1 fest. Die Spalte Grip ind der Tabelle zeigt die Haftung
auf den verschiedenen Oberflächen an und die Resistance könnte mit Widerspenstigkeit
übersetzt werden. Desto höher sie ausfällt, desto weniger steuerbar ist das Auto auf dem
Untergrund.
A.3. Waypoint
Folgender Auszug beschreibt einen einzelnen Wegpunkt der .aiw-Datei. Darin enthalten
sind Daten wie die aktuelle Position des Punktes, ein Verweis auf den nachfolgenden
Punkt, die Breite der befahrbaren Strecke links- und rechtsseitig des Punktes und viele
weitere Informationen.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
wp_pos=(140.9035,5.5950,2.8839)
wp_perp=(-0.0119,-0.0005,-0.9999)
wp_normal=(0.0000,1.0000,-0.0005)
wp_vect=(4.9510,-0.0000,-0.0602)
wp_width=(9.025,8.100,14.025,13.100)
wp_dwidth=(23.636,22.647,0.000,0.000)
wp_path=(-6.1143,0.0000)
wp_lockedAlpha=(0)
wp_galpha=(0.0000)
wp_groove_lat=(0.893367)
wp_test_speed=(50.725101)
wp_score=(2,3559.389)
wp_cheat=(50.7251)
wp_wpse=(0,0)
wp_branchID=(0)
wp_bitfields=(0)
wp_lockedLats=(0)
wp_multipathlat=(0.0000, 4.5000)
wp_pitlane=(1)
WP_PTRS=(0,2,-1,0)
1
Beispiele für solche Effekte sind ein Ruckeln des Lenkrades bei Fahten über Kopfsteinpflaster oder
diverse Reifenspuren bei Fahrten über Gras etc.
46
A. Anhang
Kürzel
Beschreibung
Grip
Resistance
ROADS
road
ovalrd
rdax
rdta
rdcp
Road
Oval Roads
Roads Bumps LVL1
Roads Bumps LVL2
Road Cement Patchs
1.00
1.00
1.00
1.00
0.95
0
0
0
0
0
rged
gras
grxs
grvl
dstg
GRASS AND DIRT
Dusty Berms
1.00
Grass
0.65
Rough Grass
0.65
Gravel
0.52
Dusty Grass
0.65
0
100
1500
5000
100
rmbl
RUMBLE STRIPS
Rumblestrips
1.00
0
twal
cmwl
grdr
grvl
*
Tirewalls
Cementwalls
Guardrails
Safer
Default
WALLS
-
Tabelle A.1.: rFactor Materialien
47
-
B. Literaturverzeichnis
Adobe: Homepage Photoshop
http://www.adobe.com/de/products/photoshop/photoshop/whatisphotoshop,
08.09.2010
Autodesk: Homepage 3dsMax
http://www.autodesk.de/adsk/servlet/pc/index?id=14642267&siteID=403786,
02.09.2010
Benoit, Gilles (ISI): Basic track editing information. Notes from the field
http://www.rfactor.net/developers/notes_basic_track_editing.cfm, 08.09.2010
Chalker, Ewan: rFactor Track Making Tutorial Wiki
Foley, J.; v. Dam, A.; Feiner, S.; Hughes, J.; Phillips, R.:
Grundlagen der Computergrafik, 1. Auflage, 1994
Häßler, U.:
3D-Imaging, 1996
ISI: Developer´s Corner
http://www.rfactor.net/developers, 02.09.2010
ISI: gMotor 2.0 MAS Utility Help
ISI: gMotor 2.0 Plugin and Viewer Tools
ISI: Official rFactor modding tutorial
http://www.modding.frracers.ultramoron.com, 08.09.2010
ISI: Webseite der Rennsimulation rFactor
http://www.rfactor.net, 02.09.2010
Mach, R.:
3d-Visualisierung, 1. Auflage, 2000
48
B. Literaturverzeichnis
nVidea; dds-Tools
http://developer.nvidia.com/object/nv_texture_tools.html, 02.09.2010
Wilhelmi, Mike: Homepage des Projekt Alemannenring
http://alemannenring.de, 02.09.2010
o.V.: gMotor Manual,
http://wikiwiki.jp/simbin/?gMotor Manual, 02.09.2010
o.V.: Loft-Tutorial
http://pixel81k.abstract-design.ch/tutorials/3dsmax/racetrack/index.html,
27.08.2010
o.V.: Wikipedia: Mod(Computerspiel)
http://de.wikipedia.org/wiki/Mod_(Computerspiel), 09.09.2010
o.V.: Wikipedia: Rennsimulation
http://de.wikipedia.org/wiki/Rennsimulation, 09.09.2010
o.V.: Wikipedia: Rennsimulation
http://de.wikipedia.org/wiki/Shader, 09.09.2010
49