Erweiterte Soundsteuerung

Aus LOTUS Wiki DE
Version vom 23. Oktober 2023, 22:03 Uhr von DrBlackError (Diskussion | Beiträge) (1 Version importiert: Init)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Abgesehen von der klassischen Sound-Steuerung per Variable gibt es noch ein paar Script-Funktionen für zusätzliche Möglichkeiten.

procedure SndSetIndependent(self: integer; soundname: string; soundindex: integer; contentUserID, contentSubID: integer);

Mit dieser Prozedur können die hinterlegten Sounddaten an der Stelle "soundindex" (nullbasiert gezählt) in der in der Soundquelle mit dem Namen "soundname" hinterlegten Soundquelle ausgetauscht werden.

Hierfür müssen im ContentTool mit der Funktion "Unabh. Sounds" entsprechende Sounddaten aus Wave-Dateien importiert werden. Diese werden dann unter eigener ContentID hinterlegt. Über diese erfolgt der Zugriff über diese Prozedur mit den Variablen contentUserID und contentSubID.

Sobald der Befehl ausgeführt wurde, wird der Sound wieder so wie üblich gesteuert, auch die Volumen-Kurven und Pitchen ist weiterhin möglich.

procedure GluedSoundCreateNew(self: integer);

procedure GluedSoundAdd(self: integer; contentUserID, contentSubID: integer);

procedure GluedSoundGiveSource(self: integer; soundname: string; soundindex: integer);

Diese Befehle ermöglichen das Zusammenfügen mehrerer per "Unabh. Sounds" mit ContentID hinterlegten Sounddaten zur Laufzeit des Objektes.

Zunächst wird mit GluedSoundCreateNew ein neuer, leerer Datensatz erstellt. Dann können durch Aufruf von GluedSoundAdd bliebig viele Sounds per ContentID aneinandergeheftet werden. Am Ende werden die so erstellten Sounddaten mit GluedSoundGiveSource (vergleichbar mit SndSetIndependent) auf den mit "soundindex" indizierten Sound der im Objekt mit "soundname" benannten Soundquelle kopiert.