Durchschaltbare Kameras

In diesem Tutorial werde ich eine Möglichkeit erklären, wie man durch mehrere Kameras in der Map per Input durchschalten kann. Das ganze geht simpler zu realisieren, als man zunächst vielleicht einschätzen würde. Es funktioniert nach dem einfachen Prinzip, dass zu einem math_counter ein Wert addiert wird, welcher dann wiederum per Output zu einem logic_case übertragen wird, welches durch eine ganze Zahl als Casenamen* die dazugehörige Kamera aktiviert. Wer dies ausführlicher möchte, der möge nun bitte weiterlesen.

* Hier wird der Vorteil klar, weshalb es sich lohnt, mit Zahlen, anstelle von Buchstaben und Wörtern zu arbeiten. Denn Zahlen können von den meisten Entities problemlos geändert und vor allem auch gelesen werden.

1. Benötigte Entities

  • 1 x Einen Trigger (Als Beispiel nehme ich einen func_button)
  • 2 x point_camera (Man braucht natürlich mindestens zwei, damit die Konstruktion Sinn ergibt. Die Anzahl ist nach oben offen, solange man das Limit der möglichen Entities nicht überschreitet.

2. Aufbau der Konstruktion

Der func_button bekommt folgenden Output:
Output Target Entity Target Input Parameter Delay
OnPressed <math_counter> add 1 0.00


Das hat zur Folge, dass der func_button bei jedem Pressen nun +1 zum „math_counter“ addiert. Alle sonstigen Einstellungen beim func_button sind für dieses Tut unrelevant.

Der math_counter bekommt diese Outputs:
Output Target Entity Target Input Parameter Delay
OutValue <logic_case> InValue (Leer lassen) 0.00
OnHitMax <math_counter> SetValueNoFire 0 0.05


Nun überträgt der „math_counter“ zum Einen bei jedem Input den er bekommt seinen aktuellen Wert zum logic_case und zum Anderen setzt er seinen Wert beim Erreichen seiner „Maximum Legal Value“ wieder auf 0. Wichtig ist bei den Einstellungen, dass er als „Maximum Legal Value“ die Anzahl der vorhandenen Kameras bekommt.

Beim logic_case gibt es dann noch folgende Outputs einzutragen:
Output Target Entity Target Input Parameter Delay
OnCase01 <func_monitor> SetCamera point_camera1 0.00
OnCase02 <func_monitor> SetCamera point_camera2 0.00


Jedes Case bekommt eine ganze Zahl (z. B. Case01 = 1 - Case16 = 16), damit der „math_counter“ sie vergleichen und das passende Case feuern kann. Der Eintrag bei den Parametern (point_camera1,..) ist durch die von euch gewählten Namen für die Kameras zu ersetzen. Der Übersicht wegen ist es eventuell vorteilhaft, äquivalent zu den Cases, alphanumerische Namen zu vergeben.

3. Bemerkungen

Falls ihr mehr als 16 Kameras benutzen wollt, benötigt ihr ein zweites logic_case, welches dann als Cases die nächsten 16 Zahlen erhält (z. B. 17-32) und in den Outputs die nächste Reihe Kameras triggert. Zudem benötigt dann der „math_counter“ einen zweiten Output, in dem er einen Invalue Input zu dem zweiten logic_case sendet.

Es gibt auch verschiedene Möglichkeiten, nur ein paar Kameras ingame zum durchschalten freizugeben:

  • Mehrere „math_counter“ verwenden, welche jeweils verschiedene „Initial Values“ und „Maximum Legal Value“ -Werte haben.
  • Per Input die Werte des bereits vorhandenen „math_counters“ ändern.
  • Verschiedene Inputgeber für den „math_counter“ benutzen, wo z. B. +2 oder mehr addiert wird.
  • Eine komplette, zweite Konstruktion, welche nur bestimmte Kameras aktiviert (Inputgeber, math_counter und logic_case).
  • Es gibt sicherlich noch ein paar Weitere. Aber mit den beschriebenen sollten die meisten Vorhaben abgedeckt sein.

—-

Bei Fragen oder Verbesserungsvorschläge könnt ihr mir gerne eine PM schicken. ;)

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/durchschaltbare_kameras.txt · Zuletzt geändert: 2010/04/06 00:04 von Night Wolf