Inhaltsverzeichnis

Sounds & Geräusche

Geräusche verleihen dem Level immer ein bißchen mehr Atmosphäre. Sie wirken dadurch lebendiger. Deshalb habe ich mich rangemacht und ein Sound-/GeräuscheTutorial geschrieben. Dazu benötigen wir eigentlich nur ein ambient_generic.

Einfache Sounds

Dieses ambient_generic setzen wir in die Nähe des Objektes das ein Geräusch machen soll. Ich nehme für mein Tutorial einen Wasserfall. Wir gehen dann auf properties und stellen folgendes ein:

Dann sollte man unbedingt noch unter Flags ein paar Einstellungen vornehmen.

Da nun nicht jeder einen Wasserfall machen möchte und trotzdem nicht auf Geräusche verzichten möchte, sollte man die Pfade (paths) der unterschiedlichsten wav-Dateien wissen. Es gibt aber so viele, das ich sie hier nicht auflisten kann. Deshalb empfehle ich den PakExplorer oder Wally. Damit kann man die pak0.pak aus dem valve Verzeichnis öffnen( Bzw mit gcfscape die GCF-Files bei Steamusern). Dann öffnet man dort den sound Ordner und sucht sich den Ordner mit der wav-Datei aus (meistens ambience).Diesen muß man dann auch unter path angeben. Danach sucht man sich die wav-Datei. Man kann sie auch mit dem PakExplorer direkt abspielen.

Fade in/out

Für diesen Effekt, wie für die noch folgenden sollte ein geloopter Sound verwendet werden, z.B. Sounds aus dem „ambience“-Ordner von HL. Folgende einstellungen sind für Fadeeffekte wichtig:

Ist eine Voreistellung ausgewählt (außer „none“), werden alle restlichen Einstellungen die dieser hier folgen ignoriert. Diese Voreinstellungen können mit den folgenden Keys nachgemacht, und nach eigenen wünschen verändert werden. Fade in/out (Voreinstellung bei Dynamic Presents: Fade in/slow/quick)

Beispiel

ambient_generic

Die übrigen Einstellungen bleiben unverändert.

Der Flag „is not looped“ bzw. „not toggled“ darf nicht gesetzt werden. Warum, versteht sich eigendlich von selbst. Wer Zweifel hat: Ausprobieren und Ergebnis verstehen. Nun noch einen func_button dazu um das Ambient_generic an- und abzuschalten.

Ergebnis

Der Lautstärke des Sounds, nachdem er getriggert wurde, nimmt langsam zu, bis er seine endgültige Lautstärke erreicht hat. Wird er erneut getriggert nimmt er wieder ab bis er aus ist. Probiere auch andere Einstellungen um unterschiede zu hören.

Spin up/down

Beispiel zu Nachmachen

ambient_generic

Die übrigen Einstellungen bleiben unverändert.

Nun noch einen func_button dazu um das Ambient_generic an- und abzuschalten.

Ergebnis

Der Tonhöhe des Sounds, nachdem er getriggert wurde, nimmt langsam zu, bis er seine endgültige Tonhöhe erreicht hat. Wird er erneut getriggert nimmt sie wieder ab bis der Sound aus ist.

Probiere auch andere Einstellungen um unterschiede zu hören.

Jetzt kann das erste Beispiel (in Teil 1) mit dem Zweiten verbunden werden. Das Ergebnis dürfte klar sein.

(Voreinstellung bei Dynamic Presents: Machine/big/huge)

Incremental spin up count

Dieser Key verändert das Verhalten des Ambient_generic grundlegend. Ist hier ein Wert bestimmt, beginnt der Sound, nachdem er getriggert wurde mit der Tonlage die beim Key „Start Pitch“ definiert wurde. Jedes mal wenn der Sound erneut getriggert wird, erhöht sich seine Tonlage bis das absolute Maximum erreicht wird. Der hier angegebene Wert bestimmt wie oft das Ambient_generic getriggert werden muß, bevor es von seinem Ausgangspitch das absolute Maximum erreicht. Das bedeutet: Umso größer der Wert, desto kleiner werden die „Spin up“ schritte. Wichtig: Damit das ganze funktioniert MUSS zumindest ein „Spin up time“-Wert bestimmt sein.

Anmerkungen

Der Key „Pitch“ wird gegenstandslos. Das Ambient_generic läßt sich nicht mehr abschalten! Das Ganze funktioniert nur in eine Richtung, nähmlich hoch.

(Voreinstellung bei Dynamic Presents: Incremental spinup)

LFO

Mit LFO (Low frequency oscillator) kann das Verhalten des Sounds insgesammt geändert werden.

0 - off ist dieses Ausgewählt, ist LFO abgeschaltet. Alle übrigen LFO-Einstellungen werden ignoriert.

1 - sqr(square), läßt sich vielleicht am besten mit dem Begriff „Pulse“ beschreiben. Der Sound springt zwischen 2 Punkten hin und her (z.B. zwischen 2 Lautstärken).

2 - tri(triangle), läßt sich vielleicht am besten mit dem Begriff „Oscillate“ beschreiben.Der Sound springt nicht zwischen 2 Punkten, sondern beschreibt eine Kurve. Er wird also ständig auf- und abgeblendet.

3 - rnd(random), „Random“ sagt eigendlich schon alles. Der Sound springt zufällig zwischen einer Vielzahl von Punkten hin und her.

Beispiel 1

Pulse (Voreinstellung bei Dynamic Presents: Pulse/slow/quick). Um das Ergebnis besser hörbar zu machen, benutze ich hier einen schnellen „Pulse“.

ambient_generic

Alle übrigen Einstellungen behalten ihren Default-Wert. Button zum an- und abschalten nicht vergessen.

Ergebnis 1

Der Sound wechselt ständig zwischen zwei Lautstärken, er pulsiert.

Beispiel 2

Oscillate (Voreinstellung bei Dynamic Presents: Oscillator/slow/quick)

ambient_generic

Alle übrigen Einstellungen behalten ihren Default-Wert. Button zum an- und abschalten nicht vergessen.

Ergebnis 2

Der Tonhöhe des Sounds nimmt, wie bei einer Sirene, ständig auf und ab. Natürlich lassen sich beide LFO-Einstellung noch jeweils mit Pitch bzw. Volume modifizieren, das jedoch dürft ihr selbst ausprobieren, genau wie LFO 3.

Andere Dynamic Presets

Nicht erwähnt habe ich bisher die „Dynamic Presents“ Einstellungen „Oscillate spin up/down“ und „Pulse spin up/down“. Die Bezeichnungen dürften selbsterklärend sein, allerdings weiß ich nicht wie man sie nachmacht, ich schätze das es auch nicht geht.

Ebenfalls habe ich die Einstellungen Alien, Bizzare, Planet X und Haunted nicht erwähnt. Dies sind einfache Effekte die leicht nachzumachen sind.

Eigene Sounds erstellen

Natürlich soll auch nicht vorenthalten bleiben, wie man eigene Sounds in HL erstellt. Dazu einmal eine Erklärung des Half-Life Soundformats und dann Vorgehensweisen in einigen Soundeditoren.

Das Half-Life Soundformat

HL benutzt als Soundformat das Microsoft Windows PCM Waveformat. Dieses darf man nicht verwechseln mit dem Microsoft ADPCM Waveformat, denn beide Formate haben die Dateiendung .WAV und sind von außen her nicht zu unterscheiden!

Damit HL eine WAV-Datei auch abspielen kann, muß der gesampelte Sound folgendes interne Format aufweisen:

Die Einstellungen für CoolEdit 2000 sehen dabei folgendermaßen aus:

Die Einstellungen für GoldWave 4.2x sehen dagegen so aus:

Man lädt die Sounddatei und geht über Effects → Resample in den Resamplerdialog. Dort stellt man die gewünschte Frequenzrate (11025 oder 22050 Hz) ein und klickt auf OK. Dabei ist zu beachten, daß wie oben beschrieben die 11er Frequenz nur für Monosamples gilt und die 22er Frequenz für Stereosamples! Anders als bei CoolEdit 2000 wird hier vorerst nur die Frequenz modifiziert, aber nicht die Bitauflösung (das geschieht erst beim Abspeichern):

Wie gesagt wird die Bitauflösung erst beim Abspeichern definiert. Bei der 11er Frequenz sind es 8 Bit Mono und bei der 22er Frequenz 16 Bit Mono. Das Speicherformat ist ebenfalls PCM WAV. Man geht auf File → Save as… und kommt in folgenden Dialog:

Je kleiner die Frequenzrate ist (also z.B. 11 kHz), desto grisseliger hört sich der Sound ingame an. 11 kHz ist nämlich der Telefonübertragungsstandard und jeder weiß, wie ärmlich die dort modulierte Qualität der Geräusche sich anhört. 22 kHz dagegen ist schon recht akzeptabel, verdoppelt aber den Speicherbedarf gegenüber eines identischen 11 kHz Samples.

8 Bit Auflösungen lassen den Sound dumpfer erscheinen als 16 Bit Auflösungen. Auch hier gilt: 16 Bit Auflösungen verdoppeln den Speicherbedarf eines Samples gegenüber 8 Bit.

→ Der HL Sound muß stets Mono sein.

Man sollte (falls möglich) die Dithering- und Samplingfilterfunktionen des benutzen Audioprogramms beim Speichern des Sounds ausnutzen, um bei niedrigeren Bitauflösungen und/oder Frequenzgängen unerwünschtes Noise (Rauschen) zu eliminieren.

Und generell gilt: Bis zum Schluß in CD-Qualität arbeiten (falls möglich): 44,1 kHz - 16 Bit - Stereo. Erst wenn alles fertig ist, sollte der Sound downgesampelt werden! Ist die Quelle allerdings schon unterhalb der CD-Qualität, dann nützt auch ein Upsampling nichts mehr! Dann sollte man in der Quellqualität arbeiten.

Beste Samplingqualität eines HL-Sounds:

22 kHz - 16 Bit - Mono

Schlechteste Samplingqualität eines HL-Sounds:

11 kHz - 8 Bit - Mono

Soundloops mit Cool Edit 2000

Gerade Umgebungssounds, die man mit dem ambient_generic Entity in die Welt setzen will, sind oftmals gelooped, d.h. sie wiederholen sich automatisch nach dem Erreichen des Endes. Dieses Verhalten ist übrigens nicht davon abhängig, ob man bei den Flags von ambient_generic das Häkchen It's NOT looped gesetzt hat oder nicht!

Wenn man nun mit dem Audioprogramm Cool Edit 2000 eine 22 kHz - 16 Bit - Mono Datei geöffnet hat, dann kann man diesen Sound loopen. Der Schlüssel zum Erfolg liegt in den sogenannten Cuepoints, das sind Start- und Endmarkierungen innerhalb des Sounds. HL liest solche Cuepoints aus und weiß dadurch, wo der Sound offiziell anfängt und ab wann der Sound wieder von vorne abgespielt werden soll. Wichtig ist, daß pro Sound nur ein Cuepoint-Pärchen gesetzt werden darf, ansonsten kann HL nichts damit anfangen bzw. der erste Start- und der erste Endpunkt werden genommen, egal ob der Sound inhaltlich bereits soweit ist oder nicht!

Am besten ist, man cutted sich den Sound soweit im Editor zurecht, bis das gewünschte (Teil)Stück des Sounds komplett im Editor vorhanden ist. Seemless Sounds, also solche, die übergangslos ineinander verschmelzen, sind mit CoolEdit 2000 auch herstellbar, erfordern aber bereits einen größeren Aufwand und werden deshalb hier (vorerst) nicht behandelt. Der zurechtgeschnittene Sound sollte nun das gesamt Wavespektrum ausfüllen. Jetzt muß man eigentlich nur noch folgende Schritte abklappern:

  1. STRG-A drücken und die gesamte Waveform wird selektiert
  2. F8 drücken („Add current selection to cue list“). Es gibt auch noch einen anderen Weg (siehe unten)
  3. Irgendwo in die Waveform klicken, damit die Selektion verschwindet.
  4. Im Menü FILE auf SAVE AS… klicken (man sollte ein etwaiges Original nie überschreiben)
  5. Das Format „Windows PCM (*.wav)“ auswählen
  6. Den Haken setzen bei „Save extra non-audio information“ (WICHTIG!!!)
  7. Abspeichern

Jetzt ist der Sound HL-fähig gelooped worden und kann per ambient_generic abgespielt werden. Der zweite Weg, die Cuepoints zu setzen ist dieser:

  1. STRG-A drücken und die gesamte Waveform wird selektiert
  2. Im Menü VIEW auf den Punkt CUE LIST klicken
  3. Im aufpoppenden Dialog auf ADD klicken und danach auf DONE.
  4. Irgendwo in die Waveform klicken, damit die Selektion verschwindet.
  5. Im Menü FILE auf SAVE AS… klicken (man sollte ein etwaiges Original nie überschreiben)
  6. Das Format „Windows PCM (*.wav)“ auswählen
  7. Den Haken setzen bei „Save extra non-audio information“ (WICHTIG!!!)
  8. Abspeichern

Bei beiden Vorgängen ist wichtig, daß beim Speichern das Häkchen bei Safe extra non-audio information gesetzt wird. Vergißt man das Häkchen, dann speichert Cool Edit 2000 nämlich die Cuepoints nicht mit ab und der Sound ist dann logischerweise nicht mehr gelooped.

Soundloops mit GoldWave 4.2x

Gerade Umgebungssounds, die man mit dem ambient_generic Entity in die Welt setzen will, sind oftmals gelooped, d.h. sie wiederholen sich automatisch nach dem Erreichen des Endes. Dieses Verhalten ist übrigens nicht davon abhängig, ob man bei den Flags von ambient_generic das Häkchen It's NOT looped gesetzt hat oder nicht!

Wenn man nun mit dem Audioprogramm GoldWave 4.2x eine 22 kHz - 16 Bit - Mono Datei geöffnet hat, dann kann man diesen Sound loopen. Der Schlüssel zum Erfolg liegt in den sogenannten Cuepoints, das sind Start- und Endmarkierungen innerhalb des Sounds. HL liest solche Cuepoints aus und weiß dadurch, wo der Sound offiziell anfängt und ab wann der Sound wieder von vorne abgespielt werden soll. Wichtig ist, daß pro Sound nur ein Cuepoint-Pärchen gesetzt werden darf, ansonsten kann HL nichts damit anfangen bzw. der erste Start- und der erste Endpunkt werden genommen, egal ob der Sound inhaltlich bereits soweit ist oder nicht!

Am besten ist, man cutted sich den Sound soweit im Editor zurecht, bis das gewünschte (Teil)Stück des Sounds komplett im Editor vorhanden ist. GoldWave selektiert standardmäßig das gesamte Spektrum der Datei, so daß man sich nicht selber darum kümmern muß (Die Wellenform ist dann hellgrün auf blauem Hintergrund, wie man nachfolgend sehen kann).

Seemless Sounds, also solche, die übergangslos ineinander verschmelzen, sind mit GoldWave auch herstellbar, erfordern aber bereits einen größeren Aufwand und werden deshalb hier (vorerst) nicht behandelt. Der zurechtgeschnittene Sound sollte nun das gesamt Wavespektrum ausfüllen. Jetzt muß man eigentlich nur noch folgende Schritte abklappern:

  1. STRG-A drücken und die gesamte Waveform wird paßgenau ins Fenster eingezoomt (selektiert ist sie bereits)
  2. Menüpunkt Tools → Cue points… wählen

Im darauf erscheinenden Cue points Dialog sollte die Markierungsart auf Start marker stehen:

Nun im Textfeld Name einen Bezeichner für den Cue Point eingeben, hier habe ich mal Begin gewählt. Dann auf den Button Add klicken und der Startpoint erscheint in dier Liste:

Nun wiederholt man das ganze nochmal, setzt aber die Markierungsart auf Finish marker, erteilt dem Cue Point den Namen End und klickt wieder auf Add. Nun ist das Ende der Selektion als zweiter Cuepoint in der Liste erschienen:

  1. Menüpunkt File → Save as… wählen (man sollte ein etwaiges Original nie überschreiben)
  2. Das Format „Wave (*.wav)“ auswählen
  3. Die Speicherform „8 bit mono unsigned“ bei 11 kHz Frequenz wählen oder
  4. Die Speicherform „16 bit mono signed“ bei 22 kHz Frequenz wählen
  5. Abspeichern

Jetzt ist der Sound HL-fähig gelooped worden und kann per ambient_generic abgespielt werden. GoldWave speichert anders als Cool Edit 2000 zusätzliche Audioinformationen immer ab, so daß man hier kein Extrahäkchen setzen muß oder sowas.

Soundloops mit CueListTool

Das kostenlose Programm CueListTool ermöglicht ebenfalls das einfache Setzen von CuePoints.