Przejdź do głównej zawartości

System dźwięku

System dźwięku w Gothic obsługuje efekty dźwiękowe (SFX), takie jak kroki, zamachy bronią, okrzyki potworów i dźwięki otoczenia. W przeciwieństwie do systemu muzyki, który używa DirectMusic, system SFX odtwarza standardowe pliki audio.

Formaty plików​

Gothic używa plików WAV dla efektów dźwiękowych.

RozszerzenieFormatOpis
.wavPCM WaveStandardowe nieskompresowane audio.

Właściwości​

Oryginalne pliki dźwiękowe Gothic zazwyczaj mają następujące właściwości:

  • Kanały: Mono (1 kanał)
  • Częstotliwość próbkowania: 44100 Hz (44.1 kHz)
  • Głębia bitowa: 16-bit (Gothic 1/2) lub kompresja ADPCM
informacja

Pliki stereo i inne częstotliwości próbkowania mogą działać, ale mogą powodować problemy lub błędy w pozycjonowaniu 3D. Mono jest zalecane dla wszystkich dźwięków przestrzennych.

Struktura plików​

Pliki dźwiękowe znajdują się w _work/Data/Sound/:

  • SFX/ - Ogólne efekty dźwiękowe (broń, magia, przedmioty).
  • Speech/ - Kwestie dialogowe (odwoływane przez AI_Output w skryptach).

Skrypty​

Efekty dźwiękowe są definiowane w Daedalusie przy użyciu klasy C_SFX. Pliki definiujące te instancje zazwyczaj znajdują się w System/SFX/ (np. SfxInst.d).

Definicja klasy​

class C_SFX {
var string file; // Nazwa pliku (np. "MySound.wav")
var int pitchOff; // Przesunięcie tonu (półtony)
var int pitchVar; // Wariancja tonu (losowa zmienność)
var int vol; // Głośność (0..127)
var int loop; // Zapętlenie (0=nie, 1=tak)
var int loopStartOffset; // Punkt startu pętli
var int loopEndOffset; // Punkt końcowy pętli
var float reverbLevel; // Poziom pogłosu
var string pfxName; // Nazwa powiązanego efektu cząsteczkowego
};

Przykład instancji​

instance Mobs_Blacksmith_Hamm_A0(C_SFX_DEF) {
file = "Hammer_A0.wav";
pitchOff = 0;
pitchVar = 0;
vol = 127;
loop = 0;
loopStartOffset = 0;
loopEndOffset = 0;
reverbLevel = 0;
pfxName = "";
};

Odtwarzanie dźwięków​

Możesz odtwarzać dźwięki ze skryptów przy użyciu różnych funkcji zewnętrznych:

  • Wld_PlayEffect(effectName, vob, ...): Odtwarza efekt wizualny lub dźwiękowy w lokalizacji określonego obiektu.
    Wld_PlayEffect("spellFX_Fireball", hero, hero, 0, 0, 0, FALSE);
  • Snd_Play(instanceName): Odtwarza dźwięk jako dźwięk globalny 2D (UI, menu).
  • Snd_Play3D(instanceName, vob): Odtwarza dźwięk w lokalizacji obiektu.

Mowa (Speech)​

Kwestie dialogowe (Speech/) nie są definiowane jako instancje C_SFX. Są odwoływane bezpośrednio przez nazwę pliku w komendach AI_Output. Zobacz dokumentację Daedalus po więcej szczegółów.