Kapitel 18 · Half-Life 2 & CS: Source

SOUNDEFFEKTE

Autor: Fragpoint
Downloads: Beispielmap 16

Mittlerweile sind wir mit unserem Level schon sehr weit vorangekommen und beherrschen viele der grundlegenden Funktionen. Doch wird Euch sicher auch schon aufgefallen sein, dass es in unserer Map momentan noch totenstill ist. Deshalb wollen wir heute lernen, wie wir einzelne Sounds setzen, die entweder global - also in der ganzen Map - oder nur in einem bestimmten Bereich zu hören sind.

Fangen wir doch einmal mit unserem Raum an, in dem die Geisel steht. Dort regnet es, also sollten wir dort logischerweise auch ein entsprechendes stimmungsvolles Regengeräusch platzieren. Dazu benötigen wir - wie könnt es anders sein - wieder einmal unser Entity-Tool (Shift-E) und wählen unten rechts das Entity mit der Bezeichnung "ambient_generic" aus.

image162.jpg

Durch einen Linksklick in unser 3D-Fenster platzieren wir das Entity und verschieben es so, dass es schön mittig im Raum sitzt.

image163.jpg

Als nächstes wollen wir noch festlegen, welcher Sound abgespielt werden soll. Ruft daher über einen Rechtsklick die Properties des Entities. Alternativ könnt Ihr auch im 3D-Fenster einen Doppelklick auf das Entity machen, was wesentlich schneller geht. Dort angekommen, wählen wir zunächst den Punkt "Sound Name" aus und klicke auf den Browse-Button, damit wir nach einem geeignet Sound suchen können.

image164.jpg

Im anschließend erscheinenden Fenster geben wir unten beim Filter als Stichwort "rain" ein. Beachtet auch hier wieder, dass bei "Sound Type" der Punkt "raw" ausgewählt ist. Ein guter passender Sound wäre aus meiner Sicht "ambient/weather/rumble_rain_nowind.wav". Wenn Ihr "Autoplay" aktiviert, wird der Sound auch gleich abgespielt, so dass Ihr besser einschätzen könnt, ob er zu Eurer Map passt.

image165.jpg

Wir bestätigen das Ganze über OK und übernehmen den Sound für unsere Map. Würden wir unsere Map nun berechnen lassen und in "CS: Source" starten, wäre kein Ton zu hören. Dies liegt daran, dass alle Sounds standardmäßig im Hammer ausgeschaltet sind. Wir bleiben deshalb in den Properties und wählen den Reiter "Flags" aus. Was ein so genannter Reiter ist, seht ihr auf dem nachstehenden Bild:

image166.jpg

Wie Ihr sehen könnte, wurde dort angegeben, dass der Sound beim Levelstart nicht abgespielt werden soll (Start Silent) und sich auch nicht ständig wiederholen soll (Is NOT Looped). Wir nehmen deshalb bei beiden Punkten die Häckchen heraus. Wollt Ihr übrigens, dass der Sound in der ganzen Map zu hören ist, solltet Ihr jetzt den Punkt "Play everywhere" aktivieren. Da der Regen gleichmäßig in unserer ganzen Map zu hören sein soll, schalten wir den Effekt ein.

image167.jpg

Aber noch sind wir nicht ganz fertig. Etwas Feintuning fehlt noch. Momentan ist der Regen nämlich noch sehr laut, so dass wir nun wieder auf den Reiter "Class Info" wechseln und dort unter "Volume" bei der Lautstärke den Wert 5 eintragen.

image168.jpg

Wollt Ihr jedoch Sounds setzen, die nicht global - also nicht in der ganzen Map - zu hören sein sollen, deaktiviert Ihr einfach wieder den Punkt "Play everywhere". Bei diesen raumgebundenen Entities/Sounds könnt Ihr dann auch beeinflussen, wie weit der Sound zu hören sein soll. Klickt dazu einfach das Entity an und verschiebt die "Eckpunkte" des in der Draufsicht angezeigten Kreises, wie wir dies bereits bei den ganz normalen Brushes gelernt haben.

image169.jpg

Im 3D-Fenster wird die Reichweite des Sounds ebenfalls optisch als Kugel dargestellt, so dass dies die Orientierung erleichtert. Sollte Euch das bisherige Tutorial genügen, braucht ihr nun nicht mehr weiterzulesen.

So, nun wollen wir unsere neuen Kenntnisse auch gleich an einem praxisbezogenen Beispiel ausprobieren. Wir möchten nämlich einen Spieler durch einen lauten Soundeffekt (Knall) erschrecken, sobald er an einer bestimmten Stelle vorbeiläuft. Wir setzen dazu ein weiteres Entity (ambient_generic) in unserem Raum mit dem Bombenablageplatz.

image170.jpg

Anschließend rufen wir die Properties auf und geben unter "Sound Name" als Sound die Datei "weapons/hegrenade/explode4.wav" an. Zum schnelleren Auffinden habe ich als Filterbegriff "exp" für explode eingegeben.

image171.jpg

Als nächstes wechseln wir wieder auf den Reiter "Flags" und lassen dort nur den Eintrag "Start Silent" an. Wir erinnern uns, dass der Sound erst abgespielt werden sollen, wenn der Spieler den "Kontakt" auslöst. Deshalb darf die Explosion nicht gleich beim Start des Levels zu hören sein.

image172.jpg

Etwas ganz wichtiges fehlt noch, nämlich der Name dieses Entities. Wofür? Nun, später wird der Sound über einen so genannten Trigger bei Kontakt mit dem Spieler ausgelöst. Damit dieser Trigger weiß, welches Sound-Entity er aktivieren soll, muss man ihm den Namen des Sound-Entities nennen. Wir vergeben daher beim Sound einen passenden Namen, wie zum Beispiel "schocker1".

image173.jpg

Als nächste erstellen wir den Auslöser, nämlich einen großen Brush, den wir komplett mit der Trigger-Textur belegen.

image174.jpg

Diesen Brush machen wir über einen "Rechtsklick -> Tie to Entity" zu einem trigger_once (berührung_einmal). Dieser Trigger ist sinnvoll, wenn eine einmalige Aktivierung stattfinden soll. Dies ist in unserem Fall auch sinnvoll, da der Spieler sich sicher nicht noch ein zweites Mal erschrecken lässt.

image175.jpg

Wollt Ihr, dass eine Aktion (z. B. Sound abspielen) jedes Mal ausgeführt wird, wenn der Spieler durch den Trigger läuft, solltet Ihr lieber einen trigger_multiple (berührung_mehrfach) auswählen.
So, alles schön und gut, aber wie verbinden wir jetzt den Trigger mit dem Sound-Entity? Ganz einfach! Wechselt bei den Properties des Triggers auf den Reiter "Outputs". Dort kann man ein neues Ziel angeben, indem Ihr auf den Add-Button klickt. Über die Pinzette könnt ihr, indem ihr im 3D-Fenster innerhalb des Triggers geht, das Sound-Entity anklicken. Der Namen des Entities wird dann automatisch beim Trigger übernommen. Alternativ könnt Ihr hierfür auch das Pulldown-Menü benutzen, in dem der Name des Sounds bereits vorhanden ist.

image176.jpg

Die übrigen Einstellungen nehmt bitte über die Pulldown-Menüs wie folgt vor:

image177.jpg

Noch kurz zur Erläuterung der einzelnen Abschnitte:
My output named: Wann soll der Trigger reagieren (hier bei Berührung).
Targets entites named: Der Name des bzw. der zu aktivierenden Entities (hier das Sound-Entity).
Via this input: Aktion die beim Ziel-Entity (Sound) ausgeführt werden soll (hier Sound abspielen).
Fire once only: Ziel-Entity wird nur einmal aktiviert (hier einmaliges Abspielen des Sounds).