Quake 3 Radiant – Bewegliche Plattform mit func_bobbing
Last Updated on 7. January 2022 by Victor Karp
Wer schon einmal q3dm19 gespielt hat, wird sich an die auf und ab schwebenden Plattformen mit Düsenantrieb erinnern. Und genau sowas machen wir heute.
Baut euch zuerst eure Plattform zusammen – die könnt ihr aussehen lassen, wie ihr wollt. Die Oberseite sollte möglichst eben sein, damit haben Bots weniger Probleme. Wenn das nicht geht, weil ihr die Plattform gerne verzieren möchtet, könnt ihr sie auch in einen Brush mit der Clip Textur einhüllen – Bots ist es egal, wie verworren die Architektur innerhalb des Clipbrushes ist, für sie ist dort nur eine glatte Oberfläche.
Dann selektiert ihr die komplette Plattform, klickt mit der rechten Maustaste in einen beliebigen 2D Viewport und wählt func/func_bobbing. Jetzt haben wir schon mal eine Plattform, müssen sie aber noch richtig konfigurieren. Dazu müssen wir zuerst ermitteln, wie weit die Strecke ist, die sie zurücklegen soll.
Das Messen der Flugstrecke
Für unser Beispiel gehe ich davon aus, dass die Plattform auf und ab schweben soll und ihre Oberseite nahtlos an zwei Ebenen anhält, sodass man bequem auf die Plattform oder von ihr herunter laufen kann.
Mit Hilfe eines neuen Brushes messt ihr die Distanz von der Höhe des einen Laufwegs bis zur Höhe des anderen Laufwegs. Den Brush braucht ihr, da ihr mit ihm die Länge der Strecke ablesen könnt, solange er selektiert ist und er sich somit als Maßband umfunktionieren lässt (solltet ihr keine Zahlen sehen, müsst ihr [J] drücken).
Zum besseren Verständnis ein kleines Bild, das den Aufbau aus der Seitenansicht zeigt: grün sind die beiden Ebenen, blau die Plattform und orange der Maßbandbrush. Die Plattform ist nicht zweigeteilt, der Maßbandbrush steckt lediglich darin.
Sofern der Maßbandbrush selektiert ist, seht ihr rechts neben ihm seine Höhe (320 Units). Verkürzt den Brush, sodass er nur noch die Hälfte seiner Höhe hat (160 Units). Eines seiner Enden wird dann genau in der Mitte zwischen beiden Laufwegen sein. Eure Plattform verschiebt ihr so, dass ihre Oberseite genau auf Höhe des Maßbandbrushes liegt:
Jetzt ist die Oberseite unserer Plattform von beiden Oberflächen gleich weit entfernt. Diese Entfernung, also 160 Units, ist die gesuchte Flugstrecke. Diese müssen wir nur noch angeben.
Konfigurieren der Plattform
Wie üblich für Entities besitzt auch eine func_bobbing verschiedene Entitykeys, die ihr einstellen könnt, wenn ihr bei selektierter Plattform die Taste [N] drückt.
Zuerst einmal werden wir die Flugentfernung einstellen. Dazu gebt ihr den neuen Key height an und als Value wählt ihr 160 (um beim Beispiel zu bleiben).
Der Key speed legt fest, wie viele Sekunden es dauert, bis sich die Plattform einmal auf und wieder ab bewegt hat und zu ihrer Anfangsposition zurückgekehrt ist – also ein kompletter Bewegungszyklus.
Auf phase werde ich hier nicht genauer eingehen, da ich diese Funktion bereits in Tutorial 33 am Beispiel von Pendeln erklärt habe.
Der Düsenstrahl unter der Plattform
Der Düsenstrahl wird in q3dm19 durch ein Model dargestellt. Klickt mit der rechten Maustaste in einen der 2D Viewports und wählt misc/misc_model. Navigiert nach models/mapobjects/jets und klickt doppelt auf jets01.md3.
Verschiebt das Model unter eure Plattform, bis ihr mit der Position zufrieden seid. Öffnet dann mit [N] dessen Entitymenü. Ihr werdet dort die Keys model und origin finden. Bei model handelt es sich um die Pfadangabe des Models. Es ist genau der Pfad, den ich oben angegeben habe. Origin gibt den “Startpunkt” eures Models in Koordinatenform (X Y Z) an. Dieser Punkt ist beim Düsenstrahlmodel fast ganz oben. Er sieht wie das Translate Gizmo aus und ist dreifarbig, den Koordinatenachsen entsprechend. Ihr dürftet ihn wiedererkennen – alle Items haben ebenfalls so einen Startpunkt, da es sich bei den Items ebenfalls um Models handelt.
Den origin Key des Models und dessen Wert müsst ihr jetzt auch bei eurer func_bobbing angeben. Außerdem muss die Plattform noch wissen, was sich an diesem Punkt befinden soll. Dazu gebt ihr den Key model2 mit der Pfadangabe des Models an, also wieder models/mapobjects/jets/jets01.md3.
WICHTIG: Das Düsenstrahlmodel benutzt den Key model, für die func_bobbing müsst ihr aber model2 angeben. Verwechselt die beiden Keys nicht!
Wenn ihr alle Werte in die func_bobbing übertragen habt, könnt ihr das eingefügte Düsenstrahlmodel entfernen, es wird nicht länger benötigt.
Besuche die Quake 3 Mapping Tutorial Hauptseite für weitere Tutorials.