Map-Kompilierung mit Trenchbroom

In dumptruck_ds’ Video-Tutorial-Serie zum Thema “Quake-Mapping mit Trenchbroom” wird in der ersten Folge der Editor und die Tools zur Compilierung der Maps vorgestellt und eingerichtet. Dabei müssen mehrere Tools nacheinander mit dem Output des jeweils vorhergehenden Tools aufgerufen werden. Zur schnellen und effizienten Kompilierung der Map-Files ist also eine Verkettung und damit Automatisierung des Kompilierungsprozesses notwendig. Unter Windows gibt es hier für Necros’ Compiling GUI, welche auch im gerade genannten Video vorgestellt und erklärt wird. Leider gibt es dieses Tool nicht für Linux (oder zumindest habe ich es nirgends gefunden ;-)). Das soll aber auch kein Problem sein, da der Editor Trenchbroom die gewollte Funktionalität selbst beherrscht. Das Setup und die Verkettung der Compiling-Tools ist vielleicht nicht intuitiv, weshalb ich das hier kurz beschreiben will:

Die notwendigen Optionen findet man unter:

Hauptmenüleiste: Run > Compile

Wählt man diese Option aus, dann öffnet sich ein neues Fenster. Hier möchten wir ein neues Profil anlegen, wozu wir auf das “+” des Containers “Profiles” klicken. Es erstellt sich ein neues Profil, welches nun einen aussagekräftigen (oder auch nicht ;-)) Namen erhält. Zudem definieren wir hier das working directory für alle involvierten Tools. Ich habe das Profil “standard” genannt und als working directory:

/home/frederic/quakedev/working/

angegeben. Ist das Profil so angelegt, können nun die einzelnen Schritte des Kompilierungsprozesses definiert werden, indem im rechten Container “Details” wiederrum das kleine “+” betätigt wird und die gewünschte Schrittart ausgewählt wird. Hier schlage ich folgende Schritte vor:

1. Export Map
Mit diesem Schritt wird die mit Trenchbroom erstellte Map in ein anderes Verzeichnis verschoben. Wir verschieben hiermit die Map-Datei in unser working directory, damit die darauf folgenden tools diese verwenden können. Der Wert im target-Feld sieht bei mir wie folgt aus:

${WORK_DIR_PATH}/${MAP_BASE_NAME}-compile.map

${WORK_DIR_PATH} und ${MAP_BASE_NAME} sind in diesem Fall Variablen, die der Editor mit den entsprechenden Werten füllt. Also für WORK_DIR_PATH wird das working directory eingesetzt, welches wir zuvor definiert haben und für MAP_BASE_NAME wird der Name der Map-Datei eingesetzt.

2. Run Tool
Als erstes Tool des eigentlichen Compilierungsprozesses definieren wir qbsp. Dies ist ein Tool, welches die Geometrie und die Kollisionsdaten der Map berechnet und als output eine .bsp-Datei zur Verfügung stellt. Man muss hier den vollständigen Pfad zur Binärdatei angeben. Ich habe folgende Werte definiert:

Pfad: /home/frederic/quakedev/tools/ericw-tools-v0.18.1-32-g6660c5f-Linux/bin/qbsp
Parameters: ${MAP_BASE_NAME}-compile.map ${MAP_BASE_NAME}.bsp

Die Werte im Parameters-Feld werden dem Tool (definiert im Pfad) so übergeben, wie also ob man das das Tool mit diesen Parametern über die command line aufrufen würden. In diesem Fall ist ${MAP_BASE_NAME}-compile.map das Map-File, welches durch den Export-Job im working directory hinterlegt wurde. ${MAP_BASE_NAME}.bsp ist der Name der output-Datei. Man beachte, dass die Parameter (wie auf der command line) durch ein Leerzeichen getrennt werden.

3. Run Tool
Als nächstes Tool definieren wir vis. Dies ist ein Tool, welches die potentiell sichtbaren Bereiche der Map berechnet.

Pfad: /home/frederic/quakedev/tools/ericw-tools-v0.18.1-32-g6660c5f-Linux/bin/vis
Parameters: ${MAP_BASE_NAME}.bsp

Als Parameter übergeben wir nur den Namen der .bsp-Datei, da die Datei mit diesem Namen gelesen und wieder geschrieben wird.

4. Run Tool
Das letzte Tool des eigentlichen Compilierungsprozesses ist light, welches – wie der Name schon vermuten lässt – die Beleuchtung der Map berechnet und in der Map hinterlegen.

Pfad: /home/frederic/quakedev/tools/ericw-tools-v0.18.1-32-g6660c5f-Linux/bin/light
Parameter: -soft -extra4 ${MAP_BASE_NAME}.bsp

Die Parameter -soft und -extra4 werden übergeben, damit die Schatten in der Map relativ weich gezeichnet werden. Es gibt hier einige mögliche Parameter, die das Ergebnis der Beleuchtungsberechnung stark beeinflussen können.

5. Copy Files
Der letzte Job ist das Kopieren der fertig kompilierten Map- bzw. .bsp-Datei in das Verzeichnis, auf das Quake später zugreifen wird.

Source: ${WORK_DIR_PATH}/${MAP_BASE_NAME}.bsp
Target: /home/frederic/quakedev/id1/maps/

Source ist eben die fertig kompilierte .bsp-Datei im working directory.
Target ist das Ziel der Kopier-Operation.

Wer genauere Beschreibungen der Tools und vorallem der übergebbaren Parameter haben möchte, der sollte sich z.B. die Dokumentation der Tools von EricW durchlesen.