Archiv für die Kategorie ‘Input/Output-System’

Lichtschalter

Veröffentlicht: 1. Januar 2015 in Beleuchtung, Input/Output-System

Für Lichtschalter benötigen wir mehrere Dinge auf einmal.
Logisch durchdacht:

  1. Lampenmodel
  2. Lichtquelle
  3. Schalter
  4. Befehlausgabe zum An- und Abschalten

Schritt 1: Lampenmodel + Glow platzieren

Dazu das Entity-Tool  auswählen und in Objects 4
12
 nach prop_dynamic suchen und anschließend in die Welt platzieren.
In den Eigenschaften unter Name logisch benennen
(z.B prop_dynamic) Anschließend unter World Model ein Lampenmodel suchen und auswählen. (Achtung: Muss im Model-Browser unter Info einen Haken bei dynamic besitzen ansonsten wird das Model nicht angezeigt!)

Tipp: Bennene alle Entities nach ihren Entity-Namen, ansonsten im Ouptut-System im Feld „Targets entities named:“ den entsprechenden Namen auswählen.

Den Schritt wiederholen wir und suchen im Entity-Tool nach env_sprite und platzieren dies ebenfalls in die Welt, knapp unter die Glühbirne der Lampe. In den Eigenschaften muss unter Render Mode die Standarteinstellung zu World Space Glow geändert werden. Das env_sprite platzieren wir knapp unter der Glühbirne

 Schritt 2: Lichtquelle

Wieder über das Entity-Tool nach light_spot und point_spotlight suchen. Beide in die Welt platzieren. light_spot sorgt für die Beleuchtung. point_spotlight sorgt nur für einen zusätzlichen Lichtschein.

Beide Entities haben in ihrem Model einen Pfeil der in eine Richtung zeigt. Wir drehen beide Entities nun so, dass die Pfeile entsprechend zum Boden deuten. Das point_spotlight platzieren wir nun knapp unterhalb des env_sprite. Anschließend im Reiter Flags den Haken bei Start On entfernen. Darunter das light_spot. In den Einstellungen des light_spot im Reiter Flags muss ein Haken bei Initially Dark gesetzt werden, dies schaltet das Licht zu Rundenbeginn direkt ab. Generell gilt: Beide Entities mit einem Namen versehen (z.B point_spotlight & light_spot).

Jetzt suchen wir im Entity-Tool nach logic_auto und platzieren dieses unterhalb unseres light_spot. Dieses Entity ist wichtig für den env_sprite, da sich dieser nicht manuell deaktiviert werden kann. Daher erzwingen wir die Deaktivierung über einen auto-Befehl.

Schritt 3: Knöpfe erstellen

Wir erstellen 2x einen normalen Brush (Block) und suchen im Texture13-Browser nach der Textur „Button“ oder einer beliebigen Textur. Wir haben nun also 2 normale Blöcke, die wir nun jeweils zum An- und Ausschalter machen werden. Dazu wählen wir den ersten Block aus und drücken STRG+T und weisen ihm func_button zu und wiederholen diesen Schritt mit dem weiten Knopf. Knopf 1 nennen wir „Anschalter“, Knopf 2 nennen wir „Ausschalter“. Wichtig: In den Einstellungen unter Delay Before Reset tragen wir 0.3 ein und im Reiter Flags einen Haken bei Don’t Move und Use Activates setzen. Die Einstellungen müssen jeweils seperat für beide Knöpfe vorgenommen werden.

Schritt 4: Befehlausgabe zum An- und Abschalten

Wir wählen das logic_auto aus, wechseln in den Reiter Outputs und drücken Add.

My output named: OnNewGame
Targets entities named: env_sprite
Via this input: HideSprite
With a parameter override of: <none>
After a delay in seconds of: 0.00

Wir wählen unseren „Anschalter“ aus, wechseln in den Reiter Outputs und drücken Add.

My output named: OnPressed
Targets entities named: env_sprite
Via this input: ShowSprite
With a parameter override of: <none>
After a delay in seconds of: 0.00

My output named: OnPressed
Targets entities named: point_spotlight
Via this input: LightOn
With a parameter override of: <none>
After a delay in seconds of: 0.00

My output named: OnPressed
Targets entities named: light_spot
Via this input: TurnOn
With a parameter override of: <none>
After a delay in seconds of: 0.00

Wir wählen unseren „Ausschalter“ aus, wechseln in den Reiter Outputs und drücken Add.

My output named: OnPressed
Targets entities named: env_sprite
Via this input: HideSprite
With a parameter override of: <none>
After a delay in seconds of: 0.00

My output named: OnPressed
Targets entities named: point_spotlight
Via this input: LightOff
With a parameter override of: <none>
After a delay in seconds of: 0.00

My output named: OnPressed
Targets entities named: light_spot
Via this input: TurnOff
With a parameter override of: <none>
After a delay in seconds of: 0.00

Fertig ist unser Lichtschalter!
Das ganze ausführliche Tutorial könnt ihr natürlich auch bei YouTube sehen.