Züge

Dieses Tutorial beschäftigt sich mit dem Erstellen von Zügen in Half-Life 2 (& mods). Prinzipiell gleicht der Aufbau den Zügen in Half-Life 1. Standardmäßig ist der Zug vom Player steuerbar (Geschwindigkeit in 5 Schritten regulierbar), was sich jedoch bei den Flags des func_tracktrains ändern lässt.

Was wir brauchen:

Die Strecke

Wir beginnen mit den path_tracks. Die path_tracks stellen quasi die Checkpoints auf den Schienen des Zuges dar. Ein func_tracktrain nimmt immer den direkten Weg vom einen path_track zum nächsten, also sollte man seine Strecke so planen, dass keine Wände oder ähnliches im Weg sind, an welchen der Zug hängenbleiben könnte. Passiert der Zug einen dieser Checkpoints, wendet er sich direkt in Richtung des nächsten.
Wir erstellen ersteinmal ein path_track, und geben ihm folgende Einstellungen:

  • name - Der Name des Checkpoints
  • next stop target - Name des nächsten Checkpoints
  • new train speed - Neue Geschwindigkeit des Zuges, in Units/sek (nur für nicht steuerbare Züge)


In unserem Beispiel geben path_track den Namenpath1“ und das next stop targetpath2“. Warum, werdet ihr nachher noch sehen. Alles andere können wir erst einmal so belassen.

Jetzt ziehen wir den erstellten path_track bei gedrückter Shift-Taste dahin, wo der nächste Checkpoint sein soll. Hier zeigt sich der Sinn der Namensgebung: Der neue Hammer ist intelligenter geworden. Er erkennt den Zusammenhang von Name und next stop target des ersten path_tracks und gibt dem nächsten direkt die neuen Einstellungen namepath2“ und next stop targetpath3“. Das erspart uns viel Arbeit.
Außerdem verbindet der Hammer im Vorschau-Fenster zusammenhängende path_tracks mit einer Linie, so können wir sehen, ob unsere Strecke auch so verläuft, wie wir wollen.

1.jpg

Wenn wir unsere Strecke abschließen, achten wir darauf, dass das next stop target des letzten path_tracks wieder auf “path1“ zeigt. (Natürlich nur, wenn der Zug seine Rundfahrt über diesen Punkt vollziehen soll, die Fahrt kann natürlich auch über einen anderen Checkpoint fortgesetzt werden.)

2.jpg

Jetzt haben wir schonmal unsere Strecke. Fehlt also nur noch der Zug.

Der Zug

Unser Zug wird mit einem func_tracktrain festgelegt.
Prinzipiell kann jeder Brush (auch mehrere) zu einem Zug gemacht werden.

Hierauf ist beim Bauen des Zuges zu beachten:

  • Die Front des Zuges muss in der Top-Ansicht nach Rechts (Osten) ausgerichtet sein, nicht wie in Half-Life nach Westen.
  • Es ist egal, wo der Zug gebaut wird, beim Map-Start wird er immer zum ersten path_track teleportiert. Beim Compile muss er wohl gut ausgeleuchtet sein, da er diese „Belichtung“ teilweise behält.
  • Leitern, Türen oder ähnliche Entities können nicht zu einem func_tracktrain gemacht werden, da Half-Life 2 keinen einzelnen Brushes zu zwei Entities machen kann.


3.jpg

Wir brushen also unseren Zug wie wir ihn haben wollen, markieren alle Bestandteile und machen ihn zu einem func_tracktrain. Hier brauchen wir auch nicht, wie in Half-Life, einen Origin-Brush zu erstellen.
Das Origin eines Entities wird in Half-Life 2 mit einem Kreis dargestellt (im Vorschau-Fenster mit einer Kugel). Dieser befindet sich standartmäßig in der Mitte des Entities, kann aber auch verschoben oder in den Einstellungen des Entities festgelegt werden. Hierbei ist zu beachten, dass das Origin (wenn nicht anders eingestellt) der Punkt ist, der die path_tracks passiert.
Am besten verschiebt ihr das Origin in der Vertikalen, damit euer Zug später nicht im Boden steckt oder schwebt. Alternativ könnt ihr auch in den Einstellungen des func_tracktrain die height above track verändern.

4.jpg

Wir geben unserem func_tracktrain folgende Einstellungen:

  • Name - Name des Zuges (nur benötigt zum triggern)
  • First stop target - Der path_track, von wo aus der Zug startet. Bei map-Start wird er dorthin teleportiert
  • Distance between Wheels - Legt den Wendekreis in Kurven fest
  • Height above Track - Höhe, die das Origin über der Strecke „schwebt“
  • Initial Speed - Startgeschwindigkeit
  • Speed - Höchstgeschwindigkeit (in Units/sek), die der Zug Player-Gesteuert erreichen kann
  • Damage on Crush - Schaden, den der Zug bei Kollision verursacht

Jetzt können wir noch entscheiden, ob unser Zug vom Player Steuerbar sein soll. Ist das nicht der Fall, setzten wir bei den Flags des func_tracktrains einen Haken bei “No User Control“. Ist er nicht Spielergesteuert, muss der Zug getriggert werden, damit er sich bewegt.

Das wars! Nun sollte der Zug, wenn nicht anders bestimmt, seine Runden über die path_tracks drehen. Viel Spaß beim mappen!

Models als Züge

Eine weitere Anwendungsmöglichkeit für einen Zug ist der Einsatz in gescripteten Sequenzen, wie z.B. die Combine-Züge aus Half-Life 2.

Solche Models zu bewegen ist garnicht so schwer. Als erstes erstellen wir einen kleinen Brush und machen ihn zu einem func_tracktrain. Die Einstellungen dafür sollten folgendermaßen aussehen:

  • Name - train
  • Render Mode - Texture
  • Render Amount - 0

Letzteres brauchen wir, damit der Brush nicht sichtbar ist, weil den wollen wir ja nicht rumfliegen sehen.

Nun erstellen wir noch ein prop_dynamic mit den Einstellungen:

  • parent - train
  • world model - (z.B.) combine_train02b.mdl

Wir platzieren das prop_dynamic „in“ dem func_tracktrain, idealerweise sollten die origin's der beiden Entities übereinander liegen. Wir achten auch darauf, dass das prop_dynamic in der Top-Ansicht nach Rechts ausgerichtet ist.

Es kann sein, dass ihr bei dem func_tracktrain noch die hight above track verändern müsst, damit das prop_dynamic auch auf dem Boden (/den Schienen) fährt, und nicht darüber schwebt.

Wird der func_tracktrain nun getriggert, scheint sich nur das model über die Map zu bewegen.

Die Verwendung aller Dokumente einschließlich der Abbildungen ausschließlich zu nichtkommerziellen Zwecken. Verbreitung des Dokuments auf Speichermedien, (insbesondere auf CD-ROMs als Beilage zu Zeitschriften und Magazinen oder sog. "Mission-Packs" etc.) ist untersagt.
 
half-life_2/tutorials/zuege.txt · Zuletzt geändert: 2013/09/24 01:44 von 84.128.105.90