Nicht eingeloggt
Registrieren

Radar-Map erstellen (Alte Version)

 

Achtung, von diesem Tutorial gibt es eine überarbeitete Version. Diese findet ihr hier.


In diesem Tutorial geht es darum, eine Minikarte einer Map anzufertigen und in diese einzufügen.
Eine Radar-Map soll den Spielern in den oftmals weitläufigen Onslaught-Maps die Orientierung erleichtern, indem sie Wege übersichtlich darstellt.


Dazu benutze wir außer dem Editor und unserer ansonsten fertigen Map ein externes Bildbearbeitungsprogramm. Für dieses Tutorial nehmen wir dafür das kostenlose, aber vergleichsweise mächtige Tool GIMP.
Optional ist noch das DDS-Plugin zu empfehlen. Damit lassen sich viele der im UnrealEd verwendeten Texturen öffnen. So kann man sich zum Beispiel die von Epic mitgelieferten Radar-Maps ansehen.


1. Die Radar-Map anfertigen


Dieser Abschnitt soll anhand einer Beispiel-Map zeigen, wie die Anfertigung generell ablaufen kann. Als Beispiel dient die Map "ONS-Halo-Bloodgulch" von konsept, da sie schön überschaubar ist und nicht zu viele Static Meshes und Brushes aufweist.

1.1 Die "Vanilla"-Map

Unsere Map sollte also soweit fertig sein, dass keine weiteren Änderungen in der Architektur mehr vorgenommen werden. Vorsichtshalber rebuilden wir noch mal alles, damit auch garantiert die Lichtquellen berechnet sind.


radar1.jpg

Jetzt stellen wir einen Viewport auf Top-View und rechts-klicken auf eine freie Stelle in seiner Titelleiste. Dort wählen wir bei Actors -> Hide Actors aus. (Bei mir trat der Bug auf, dass der Haken permanent dort gesetzt ist, in diesem Fall trotzdem drauf klicken.)

Dadurch werden die meisten Objekte störenden auf der Map ausgeblendet, nur die Volumes und Brushes sind noch zu sehen.

Deshalb wählen wir den darüber liegenden Reiter View und entfernen dort den Haken bei Show Volumes (und falls welche vorhanden Show Fluid Surfaces) und setzen einen Haken bei Show Terrain.

Die Map sollte dann so aussehen, wie auf dem Bild oben.
Wie man sieht, fehlen die Static Meshes komplett und die Brushes sind ohne Surface zu sehen. Allerdings sind die auf die Map gerenderten Schatten noch da, gut so.


Jetzt sollten wir das dadurch entstandene Grundgerüst der Radar-Map auf eine etwas höhere Auflösung bringen.


radar2.png

Dazu klicken wir ganz oben in der Titelleiste des Editors auf View und wählen beim Eintrag Viewports -> Floating aus.
Nun können wir die 4 Fenster im Editor wir normale Windows-Fenster umherziehen und vergrößern.


radar3.jpg

Also machen wir das Fenster, welches wir eben eingestellt haben, über den Maximieren-Knopf so groß wie möglich.
Die künftige Radar-Map sollte nun groß genug sein.

Wir fotografieren sie vom Bildschirm ab, indem wir auf der Tastatur die Taste Druck drücken.
Anschließend öffnen wir GIMP und wählen unter dem Menüpunkt Bearbeiten -> Einfügen aus (STRG+V), woraufhin der Screenshot eingefügt wird.

In GIMP benutzen wir das Tool ganz oben links im Werkzeugkasten (R-Taste), um einen rechteckigen Rahmen um den Teil des Screenshots zu ziehen, den wir brauchen, in diesem Fall die Radar-Map.
Da Terrain standardmäßig immer quadratisch ist, sofern man es nicht mit dem Invisible-Terrain-Tool bearbeitet hat, können wir den Rahmen fast passgenau als Quadrat um die Radar-Map legen, denn diese muss am Ende auch quadratisch sein, um in den Editor importiert zu werden.
Akribisch genau muss das Quadrat aber nicht sein, das lässt sich hinterher ausgleichen.
Wieder klicken wir, nachdem das Quadrat gezogen ist, auf Bearbeiten und anschließend auf Kopieren (STRG+C).
Dann können wir wieder unter Bearbeiten -> Eingügen als... -> Neues Bild (Umschalt+STRG+V) die Radar-Map mit den passenden Maßen einfügen.

Damit haben wir eine grundlegende Basis für die Map, nun müssen wir noch die Lücken, in diesem Fall die Schatten, füllen.

1.2 Static Meshes und Brushes einfügen


Um das zu bewerkstelligen, brauchen wir zunächst Bilder der einzelnen Objekte, die in der direkten Vogelperspektive nur unzureichend, oder gar nicht angezeigt werden. Dazu gibt es zwei Möglichkeiten:

a) Aus dem Editor
Die Kamera wird im 3D-Viewport so platziert, dass wir eine gute Draufsicht auf das Objekt haben.
Dabei ist zu beachten, dass es sich hier um eine perspektivische Ansicht handelt, das heißt, dass sich Objekte am Bildrand mehr vom Fluchtpunkt wegneigen, als die in der Mitte. Ein Beispiel für ein daraus entstehendes Problem folgt am Ende dieses Tutorials.
Um diesem Problem beizukommen, sollten am besten nur einzelne, oder nah beieinander liegende Objekte fotografiert werden und je nach Objekt aus größerer Höhe.
Desweiteren sollte zum fotografieren Dynamic Light und Realtime-Preview ausgewählt sein und die Taste F im Editor gedrückt werden, um den Distanznebel auszublenden. Falls es störende Actors auf den Objekten gibt, dann kann man sie wie oben beschrieben ausblenden.

Es folgen 2 Beispiele, wie so ein Bild eines Objektes aussehen kann.

radar4.jpg

Dieser Stein ist groß genug, um auf das Radar zu kommen.



radar5.jpg

Zu diesem Baum kommen wir später zurück.


b) Aus dem laufenden Spiel
Dieser Weg ist etwas komplizierter und bringt nicht zwangsläufig bessere Ergebnisse, sollte aber nicht verschwiegen werden.

Wir starten die Map über Play Map! und betreten diese als Spieler.

In den Optionen stellen wir unter Spieler das FOV auf 90.

Nun greifen wir ein bisschen in die Trickkiste der Konsolenbefehle.
Die Reihenfolge der Eingabe ist beliebig.

Wir öffnen die Konsole über die Taste, die wir dafür definiert haben, oder über den Chat, wo wir das "(Team)Say" löschen müssten.
-Nun gibt man ein:

setres BreitexHöhexFarbtiefe


Ich empfehle setres 1024x1024x32


Das ist ausreichend hoch für ein gutes Bild, sollte aber nur auf Monitoren ab 1024er Höhe benutzt werden.

Wichtig ist, dass die Längenangaben identisch sind, damit das Bild der Objekte nicht verzerrt wird. Die Angabe der Farbtiefe kann auch weggelassen werden.
Rückgängig macht man es mit demselben Befehl, oder durch wählen einer normalen Auflösung in den Optionen.
Wenn der Grafikkartentreiber bei Widescreens so eingestellt ist, dass er das Bild immer auf die Größe des Monitors streckt, dann muss diese Funktion deaktiviert werden, oder man schaltet in den Optionen den Vollbild-Modus aus.

-Der Nächste Befehl ist

ToggleScreenshotMode

Damit werden sämtliche Menüanzeigen inklusive Fadenkreuz und Lebensbalken (bei Fahrzeugen) ausgeblendet.
Eine weitere Eingabe entfernt den Effekt.

-Zu guter letzt benutzen wir

ghost

um hoch über die Map und durch die Decke der Skybox zu fliegen (ab da blendet sich der Distanznebel aus!).
Die Steuerung ist etwas kompliziert:
Wir müssen die Bewegungstasten nehmen, Springen und Kriechen funktionieren nicht und wir dürfen nicht in Richtung Himmel gucken, sobald wir durch die Skybox sind, sondern sollten die Augen immer schön auf der Map lassen. Ansonsten gucken wir nämlich ins Void und erleben einen HOM-Effekt - unschön, also immer rückwärts in den Himmel laufen!

Wenn wir der Meinung sind, direkt über dem Objekt zu sein, welches wir knipsen wollen, dann können wir die interne Screenshot-Funktion (Standard F9) nutzen. Der Screenshot landet dann im entsprechenden Ordner im UT2004-Verzeichnis.

Ein Beispiel sähe dann so aus:

radar6.jpg

Nachdem wie alle Bilder haben, müssen wir die Objekte mittels GIMP in die Vanilla-Map einsetzen.

Dazu könnten wir jetzt einfach einen großen rechteckigen Teil aus dem Bild ausschneiden, den wir dann über die Vanilla-Map legen, weil die Umgebung ja auf beiden Bildern gleich wäre.
In der Praxis ist diese Methode aber unflexibel, sieht nicht gut aus und verursacht spätestens dann Probleme, wenn verschiedene Objekte dich beieinander liegen.

Deshalb werden wir nun in zwei Beispielen zwei unterschiedliche Methoden benutzen, um aus den Screenshots möglichst nur die eigentlichen Objekte zu erhalten.
(Anmerkung: Zum besseren Bearbeiten sollten die Screenshots im Grafikprogramm auf 200% gezoomt werden)

Möglichkeit 1:
Da wir ja gerade den Screenshot der Festung mit dem Powerkern erhalten haben und diese schön eckig ist, wenden wir uns ihr als erstes zu.
Diese Methode sollte auch mit schwächeren Bildbearbeitungstools als GIMP funktionieren.


radar7.jpg

Wir wählen das im Bild rot markierte Tool aus und links-klicken nun auf einen Eckpunkt des Objektes, das wir ausschneiden möchten.
Jetzt können wir rundherum auf jeden Eckpunkt des Objektes links-klicken, bis wir wieder am Anfangspunkt angelangt sind. Dann müssen wir noch ein letztes mal auf ihn klicken und die Form ist geschlossen.

Die Linien sollten möglichst genau am Objekt liegen, es aber auf keinen Fall "abschneiden" (lieber zuviel als zuwenig).
Wenn wir uns mal grob verklickt haben können wir auch ein auf einen, durch einen Kreis markiert, Eckpunkt klicken, die linke Maustaste gedrückt halten und dabei den Punkt mit der Maus an die richtige Stelle ziehen.
Auch lassen sich nicht-eckige Formen freihand zeichnen, wenn man die linke Maustaste einfach so gedrückt hält. Das erfordert aber etwas Geschick und einzelne Schritte lassen sich bei dieser Methode schlecht rückgängig machen.


Möglichkeit 2:
Wir wollten ja noch mal zu dem oben gezeigten Baum zurückkommen - bitteschön, hier ist er:


radar8.jpg

Im Werkzeugkasten wählen wir diesmal das Tool Elliptische Auswahl und sollten darauf achten, dass bei den Werzeugeinstellungen Aktuelle Auswahl ersetzen (beides siehe Bild) ausgewählt ist.

Damit ziehen wir nun einen Kreis wie im Bild, welcher das Objekt komplett umschließt.


radar9.jpg

Jetzt benutzen wir das Tool Zauberstab und wählen in den Werzeugeinstellungen Von der aktuellen Auswahl abziehen.

Damit klicken wir nun auf den Teil innerhalb des Kreises, den wir nicht haben möchten, hier also den Boden.
Damit wird alles, was die gleiche Farbe wie die, auf die wir geklickt haben, hat, von unserer Kreisauswahl abgezogen. Damit zieht sich die Markierung um den deutlich andersfarbigen Baum zusammen.
Falls noch ein paar vereinzelte Flecken die Tilgung überstanden haben, weil sich ihre Farbe zu sehr von der, auf die wir geklickt haben unterscheidet, dann klicken wir auch diese einfach weg.

Die einzelnen Schritte lassen sich mit Bearbeiten -> Rückgängig (STRG+Z) stornieren.

Unser Baum sollte nun so aussehen:

radar10.jpg

Dabei ist zu beachten, dass sich die Auswahl außen um das Objekt legt, wenn es also Farbhöfe gibt, die komplett eingeschlossen sind, dann müssen diese einzeln weggeklickt werden (roter Pfeil).


Wenn ein Objekt mit einer Methode markiert ist, reicht ein Klick auf Kopieren im Menüpunkt Bearbeiten (STRG+C) und wir können es in die Vanilla-Map holen.

(Anmerkung: Die Bilder zu diesem Tutorial entstanden zu unterschiedlichen Zeitpunkten. Wenn man dem Tutorial genau folgt, ist die Vanilla-Map an dieser Stelle schon so ausgeschnitten, dass der Editor im Hintergrund in den zwei folgenden Bildern nicht mehr zu sehen ist!)


radar11.jpg

Dazu öffnen wir im Anschluss unsere Vanilla-Map und klicken auf Bearbeiten -> Einfügen (STRG+V), woraufhin das Objekt erscheint.
Es ist aber mit aller Wahrscheinlichkeit noch größer als die Stelle, an der wir es einfügen wollen, da die Map selbst und das Objekt aus unterschiedlicher Entfernung fotografiert wurden.

Wir müssen es also verschieben (im Bild: 3. Zeile v. oben, zweite von links), rotieren (im Bild: 3. Zeile v. oben, ganz rechts) und skalieren (im Bild: 4. Zeile v. oben, ganz links), bis es die richtige Position, Ausrichtung und Größe hat.

Da wir ja immerhin noch die Schatten der Objekte auf der Vanilla-Map haben, fällt das Positionieren deutlich leichter.


In unserem Beispiel ist das Objekt nun an seiner richtigen Position:

radar12.jpg


Diesen Vorgang wiederholen wir nun mit allen Objekten, die wir fotografiert haben, bis wir am Ende alle an ihre Position gebracht haben.

Zu allerletzt muss noch die Größe angepasst werden, damit die Map in den Editor importiert werden kann.

Dazu klicken wir in der Menüleiste auf Bild und anschließend auf Bild skalieren


radar13.jpg

Im darauf folgenden Fenster geben wir bei Höhe und Breite nun entweder 256 x 256, oder 512 x 512 ein (Alles andere funktioniert nicht im Editor oder macht wenig Sinn).
Dabei müssen wir darauf achten, dass die "Kette" neben den Werten gelöst ist, damit wir sie von einander unabhängig einstellen können, falls unsere Map nicht 100% quadratisch ist.

Den Rest belassen wir wie er ist und klicken auf Skalieren


Das Endprodukt, unsere Beispiel-Radar-Map, sieht dann so aus:

radar14.jpg



Wir müssen nur noch das Bild in einem Format abspeichern, welches der Unreal Editor verwenden kann.
Dazu klicken wir auf Datei -> Speichern unter... (Umschalt+STRG+S) und geben einen beliebiegen Dateinamen inklusive Dateiendung an.

Der Editor akzeptiert .bmp, .pcx, .tga, .dds und .upt

TGA beherrscht GIMP von Haus aus, wer sich aber das zu Beginn des Tutorials erwähnte DDS-Plugin heruntergeladen hat, sollte ruhig dazu greifen.

Als Beispiel nehmen wir hier als Dateinamen also Radar.dds und klicken auf Speichern.
Je nach gewähltem Dateiformat erscheint ein anderes Dialogfenster, im Falle von DDS geben wir bei Compression BC2 / DXT3, oder BC3 / DXT 5 an, setzen noch ein Häkchen bei Generate mipmaps und bestätigen mit OK.


2. Die Radar-Map im Editor

2.1 Die Map importieren und verwenden

Wir öffnen im UEd den Texture-Browser und klicken links oben auf File -> Import....

Nun geben wir den Pfad unserer Radar-Map an (die natürlich das richtige Datei-Format hat) und klicken auf Öffnen.


radar15.jpg

Bei Package muss unbedingt "myLevel" stehen!
Die Group ist egal, zur besseren Übersicht nehmen wir hier "RadarMap".
Name kennzeichnet schließlich den Namen der Textur im Browser.

Generate mipmaps haben wir bei der Speicherung im DDS-Format schon gemacht, alle anderen sollten es spätestens jetzt tun.

Alpha brauchen wir im aktuellen Beispiel nicht, wenn die Radar-Map aber z.B. an den Seiten Transparenzen hat, dann muss diese Option aktiviert sein.

Mit OK bestätigen wir das ganze und selektieren die Radar-Map anschließend im Texture-Browser.


Unter View -> Level Properties (F6) gehen wir nun zum Punkt RadarMap.


radar16.jpg

Wir klicken auf RadarMapImage und hinter dem Textfeld auf Benutzen um die im Texture-Browser gewählte Textur einzufügen, also die Radar-Map.

bShowRadarMap steht natürlich auf "Wahr".

Da wir eine Radar-Map verwenden, die auf dem Terrain der Map basiert und die genau so groß ist, wie die TerrainInfo der Map (denn die schwarzen Balken auf unserer Beispielmap sind nur unbeleuchtetes Terrain im Void), setzen wir bUseTerrainForRadarRange auf "Wahr" und ersparen uns den Stress, den wir beim nächsten Punkt hätten.
So passt sich die Radargröße automatisch an die echte Map an.


Es gibt aber auch Radar-Maps, die nicht auf Terrain basieren, beispielsweise weil die Map nur aus BSP und SMs besteht. In so einem Fall muss man die Größe des Radars bei CustomRadarRange von Hand eingeben und zwar in Unreal Units.
Diese soll man messen können, indem man die mittlere Maustaste in einem Viewport (nicht 3D) gedrückt hält und eine Linie zwischen den zu messenden Punkten zieht - bei mir klappt es auch mit deaktiviertem Anti-Aliasing nicht.

Aber auch wenn einem die normale Radar-Map-Weite zu unpassend ist, kann man bUseTerrainForRadarRange auf "Falsch" setzen und selbst die Größe angeben. Dann braucht man aber mit aller Wahrscheinlichkeit eine angepasste Radar-Map.


2.2 Die echte Map zur Radar-Map ausrichten

Alles fertig? Denkste!
Nun können wir die Radar-Map zwar schon sehen, wenn wir das Spiel starten, sie wird aber in den meisten Fällen die Position des Spielers und der Powerknoten und -kerne nicht korrekt wiedergeben.

Um das Problem zu beheben gehen wir nach dem Try-and-Error-Prinzip vor:
Denn der Mittelpunkt auf der Radar-Map entspricht dem Mittelpunkt des Grid im Unreal Editor.


radar17.jpg


Dieser fällt auf den ersten Blick kaum auf, wenn man aber dar Grid hoch genug einstellt, rauszoomt und die Ansicht ein bisschen hin und her schiebt, erkennt man eine horizontale und eine vertikale Linie, die etwas hervorstechen und die sich genau in der Mitte des Editors kreuzen.
Im Bild sind sie farbig hervorgehoben.


Wir müssen nun die gesamte Map mit ihrem Mittelpunkt auf den des Editors verschieben, damit die Position auch auf der Radar-Map übereinstimmt.

Um die komplette Map zu verschieben darf zunächst kein Objekt in der Map ausgewählt sein (wir klicken etwas an, halten STRG gedrückt und klicken es erneut an). Anschließend benutzen wir das Invert Selection-Tool .

Damit haben wir alles im Editor ausgewählt und können es nun per Umschalt+Maustaste horizontal und vertikal verschieben, je nachdem, wie die Map unsere Position falsch anzeigt.

Wenn wir uns zum Beispiel auf der Radar-Map im Spiel nördlich der Position befinden, an der wir tatsächlich stehen, dann müssen wir die echte Map im Editor entsprechen weit nach Norden verschieben.

Zwischendrin sollten wir also immer wieder die Geometrie rebuilden und die Map testen.


Irgendwann stimmen Map und Radar schließlich überein und wir sind am Ende unserer Arbeit.


3. Andere Beispiele

Dieses Tutorial soll natürlich nur ein einfaches Beispiel für eine Form von Radar-Map bieten.

1-2 andere Variationen möchte ich hier zum Schluss wenigstens noch gezeigt haben:

radar18.jpg

Auf diesem Bild sieht man die Map "ONS-Kakmo" von SKYFURNACE.
Das linke Bild zeigt die Map im Editor, das rechte die spätere Radar-Map, welche in eine atmosphärische Zeichnung passend zur Map verwandelt wurde.
Dabei wird nebenbei die Aufmerksamkeit des Spielers elegant auf die wichtigsten Teile der Map gelenkt.


radar19.jpg

Dieses Bild zeigt die in UT2004 mitgelieferte Map "ONS-Urban" von Epic.
Über die eigentliche Map wurde ein zur Atmosphäre passender Filter gelegt. Auch in GIMP sind eine ganze Hand von Filter vorhanden, man kann also getrost etwas rumprobieren.
Besonders im Sinne des Tutorials hervorzuheben ist, dass die Radar-Map nicht auf Terrain basiert, sondern ein Screenshot aus ausreichend großer Höhe ist.
Dieser sollte dabei stets auf die Mitte der Map zeigen, oder bei wirklich enorm großen Maps aus mehreren einzelnen Screenshots an verschiedenen Positionen bestehen.
Der Vorteil ist, dass man sich das Einfügen von einzelnen Objekten sparen kann, der Nachteil hingegen, dass man eine benutzerdefinierte Radar-Weite finden muss und die Map die Umgebung evtl. nicht mehr akkurat darstellt, je weiter man sich vom Fluchtpunkt, hier also der Mitte, entfernt.


Als weiteres leider weniger gelungenes Beispiel sei dieses Bild aus "ONS-TCP-Toysoldiers" von }TCP{Kobra// gegeben:


radar20.jpg

Der Fluchtpunkt der Map liegt nicht im Zentrum, sondern etwas weiter unten. Dadurch ist die Map unten zwar in Ordnung, oben verzerrt sie aber.
Zur Demonstration fliege ich mit dem Raptor in der Map umher:
Laut Radar-Map bin ich südlich von Powerknoten 1 in der Wand, in Wirklichkeit aber nördlich davon, wo ich das rote X gesetzt habe.
Hier zeigt sich auch, dass die CustomRadarRange schwer einzuschätzen ist. Die Knotenpunkte auf der Map entsprechen nicht ihrer realen Position in der Map, sondern sind (teilweise stark) zur Mitte verrückt.

Damit möchte ich nicht sagen, dass die Map schlecht sei (sie ist sogar sehr gut), sondern nur mögliche Fehler zeigen.


Und damit endet unser Tutorial, viel Spaß beim Mappen.
Wer übrigens faul ist, nimmt statt einer komplizierten Radar-Map einfach eine einfache Textur, z.B. das Hintergrundblau der Menüs.