Glasschiebetür

In diesem Tutorial geht es geht um eine Schiebetür mit Glasscheibe. Man kann eine solche Schiebetür nur mit ein paar Tricks in Halflife bauen, da bekannterweise ein Brush nur zu einem Entity (entweder Schiebetür oder Glasscheibe) werden kann.

Vorweg ein paar Dinge: Eine komplette Glasscheibe als Schiebetür zu bauen, ist simpel, da Halflife das Entity func_door bereits mit den nötigen Attributen Render Mode, Render FX, FX Color und FX Amountausgestattet hat. Damit kann man aber nur eine simple Glasscheibe bauen, die als Schiebetür arbeitet.

Desweiteren hat Halflife die unangenehme Eigenschaft, den Spieler selbst an nur 1 Unit großen, überstehenden Kanten hängenbleiben zu lassen, wenn man ungünstig steht. Dieses Verhalten von Halflife hat mich in früheren Versionen meiner Glasschiebetür erheblich zum Grübeln gebracht. Warum, werden wir noch sehen.

Kommen wir also zum ersten Teil der Glasschiebetür: Wir bauen aus vier Blöcken einen Türrahmen und fügen die Enden r_speed gerecht zusammen:

glas1.jpg

Dann verkleinern wir das Grid soweit, daß wir die Glasscheibe mittig einpassen können.

glas2.jpg

Dabei sollten Ober- und Unterkante der Glasscheibe bündig an den Rahmen drangehen. Wichtig ist jetzt (um nicht mit sinnlosen Lip-Werten herumexperimentieren zu müssen), daß die Glasscheibe an beiden Seiten bis zum äußeren Rahmenrand erweitert wird.

glas3.jpg

Jetzt kann man in Bild 2 erkennen, daß vorne und hinten eine Gridbreite Platz zwischen der Glasscheibe und dem Rahmen ist. Der Rahmen, da er ja breiter ist als die Scheibe, entwickelt dadurch die anfangs erwähnte Kante, an der man hängenbleibt. Später, wenn die Schiebetür funktioniert, blockiert der Spieler dadurch den Rahmen (dieser bleibt stehen) und nur die Glasscheibe wird weggeschoben, was natürlich absolut irreal aussieht! Um das zu verhindern, müssen wir nun zwei weitere Blöcke im Format der Glasscheibe erstellen und diese vorne und hinten im Rahmen einsetzen:

glas4.jpg glas5.jpg

Das erzeugt eine glatte Oberfläche, die bündig ist mit dem Rahmen. Sodann machen wir den Rahmen, die Glasscheibe und die beiden Blockierblöcke jeweils einzelnd zu func_door's:

glas6.jpg

Nun müssen wir nur noch die Attribute und Class-Flags setzen, damit die gesamte Schiebetür auch funktioniert.

Fangen wir beim Rahmen an:

  • Name - z.B. schiebetuer1
  • Speed - z.B. 100
  • Move Sound - Wählt einen aus
  • Stop Sound - - dito -
  • Delay before close - z.B. 4 (Sekunden)
  • Angle - z.B. 180°

Dann die Glassscheibe:

  • Name - Exakt derselbe wie der Rahmen!
  • Render Mode - Texture
  • FX Amount - z.b 32
  • Speed - Exakt derselbe wie der Rahmen!
  • Delay before close - Exakt derselbe wie der Rahmen!
  • Angle - Exakt derselbe wie der Rahmen!!!

Zuletzt jeweils die beiden Antiblockier-Blöcke:

  • Name - Exakt derselbe wie der Rahmen!
  • Render Mode - Texture
  • FX Amount - z.b 0 (→ unsichtbar)
  • Speed - Exakt derselbe wie der Rahmen!
  • Delay before close - Exakt derselbe wie der Rahmen!
  • Angle - Exakt derselbe wie der Rahmen!

Und fertig ist unsere Glasschiebüre.

Hinweis: Diese Tür sollte man nicht per Berührung öffnen dürfen, da ansonsten nur der Rahmen und/oder einer der Antiblockier-Blöcke bewegt wird!

Besser man triggert die Schiebetür mit einem func_button oder einem trigger_multiple-Block. Als Target gibt man dann den Namen des Rahmens an (also z.B. schiebetuer1). Außerdem sollte man gerade bei einem trigger_multiple darauf achten, daß das Attribut Delay before reset mindestens 1 Sekunde größer ist als der Wert Delay before close der Tür-Entitys

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/tutorials/glasschiebetuer.txt · Zuletzt geändert: 2004/12/17 14:58 von dp