In einem Level, in welchem man die zweite Portalgun erhält (sodass man zwei Portale erzeugen kann) steht eine Konstruktion, die in drei Richtungen nacheinander Portale abfeuert. Aus dieser Konstruktion kann der Spieler danach die Portalgun entnehmen und die Halterung fährt in den Boden. Hier werde ich erklären, wie ihr sowas auch nachbauen könnt.
Was wir brauchen:
Als erstes brauchen suchen wir uns den Punkt aus, wo später die Konstruktion stehen soll. Achtet darauf, dass die Linie von diesem Punkt zu dem, wo später ein Portal vorgesehen ist, nicht von Hindernissen verdekt ist.
Habt ihr euren Punkt gefunden, schneidet ihr ein 40 x 40 Units großes Loch in den Boden. Als nächstes müssen wir dieses Loch anpassen, da wir kein quadratisches, sondern ein rundes brauchen. Zu diesem Zweck erstellt ihr mit dem Arch-Tool einen 68×68 Units großen Bogen mit folgenden Einstellungen:
Diesen zentrieren wir über der jetztigen Öffnung und schneiden den Bogen entlang des quadratischen Loches, sodass er perfekt hineinpasst. Danach verändern wir die „Tiefe“ des Objekts auf 48 Units. Wenn das untere Ende ins Leak zeigt, dichten wir es selbstverständlich ab. Das Ganze sollte jetzt so aussehen:
Nun kommen wir zum sichtbaren Teil unserer automatischen Portalgun. Dazu setzten wir zwei prop_dynamics. Das erste mit dem Model models/props/pedestal_base_reference.mdl, wir nennen es “base“. Dieses stecken wir so weit in das Loch, dass nur noch der oberste, runde Teil zu sehen ist. Außerdem hakt ihr bei den Flags „Disable Shadows“ an, da das Model sonst hässliche Schatten wirft. Das zweite prop_dynamic bekommt das Model models/props/pedestal_center_reference.mdl und den Namen “holder“. Zusätlich muss diesem Objekt noch ein Parent zugewiesen werden, nämlich “rotator“. Zu dem kommen wir später. Außerdem stellen wir die Collisions des “holders“ auf “No Collide“.
Nun fügen wir noch eine weapon_portalgun ein. Zu erklären, wie diese richtig einzupassen ist, ist schwierig, am besten orientiert ihr euch aus an dem Bild ganz oben und an folgendem:
An den Optionen der weapon_portalgun ändern wir folgendes:
Außerdem haken wir bei den Flags Start Constrained an.
Jetzt wird noch etwas mit Brushes gearbeitet: Wir erstellen einen 8x8x16 großen Block mit der Textur ToolsNoDraw, welcher den unteren Teil der „Säule“ umschließt. Diesen machen wir zu einem func_door_rotating. Hier sind zu ändern: Name: “rotator“ und Speed: 30. Außerdem aktivieren wir bei den Flage Door Silent.
Danach erstellen wir einen 8x8x90 großen Block, wieder mit der ToolsNoDraw Textur, platzieren diesen aber unter unserer Konstruktion, in das Loch was wir uns am Anfang geschaffen haben. Diesen machen wir zu einem func_door mit folgenden Einstellungen:
Auch hier haken wir bei den Flags Door Silent an.\
Und nochmal zur Übersicht:
Jetzt setzten wir drei logic_relays. Wo ihr die hinsetzt, spielt keine Rolle. Benennt sie am besten “relay_01“, “relay_02“ und “remover_relay“. Zu den Outputs komme ich weiter unten.
Außerdem erstellen wir noch zwei ambient_generics, idealerweise direkt neben die Konstruktion. Der erste heißt “sound_rotate“ und hat den Sound Portalgun.pedestal_rotate, der zweite heißt “sound_charge“ und bekommt den Sound Weapon_CombineGuard.Special1.
Beim rotator:
Beim relay_01:
OnTrigger ⇒ holder ⇒ ClearParent
OnTrigger ⇒ portalgun ⇒ Clearparent
Beim relay_02:
OnTrigger ⇒ holder ⇒ SetParent ⇒ rotator
OnTrigger ⇒ portalgun ⇒ SetParent ⇒ rotator
Beim remover_relay:
OnSpawn ⇒ rotator ⇒ Open
OnTrigger ⇒ rotator ⇒ Kill
OnTrigger ⇒ holder ⇒ SetParent ⇒ holder_remover
OnTrigger ⇒ holder_remover ⇒ Open
Bei portalgun:
OnPlayerPickup ⇒ remover_relay ⇒ Trigger
Beim holder_remover:
OnFullyOpen ⇒ base ⇒ SetAnimation ⇒ close