SoundService
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Ein Service, der verschiedene Aspekte bestimmt, wie Sounds im Erlebnis gespielt wird.SoundService wird auch oft verwendet, um SoundGroups zu speichern, obwohl dies für die Arbeit von Gruppen nicht obligatorisch ist.
SoundService eigenschaften wie AmbientReverb , DistanceFactor , DopplerScale und RolloffScale können verwendet werden, um zu ändern, wie alle Sounds im erlebnis spielen, und die SetListener() -funktion ermöglicht es ihnen, die position festzulegen, von der aus sounds gehört werden.
Code-Beispiele
Der Code in diesem Beispiel, wenn er von einem LocalScript ausgeführt wird, ändert die Eigenschaft SoundService.AmbientReverb von SoundService, wenn der Spieler in einem BasePart gekennzeichneten Tag ist, mit dem CollectionService verwendet wird.
Um Tags und Wiedergabetypen hinzuzufügen oder zu entfernen, ändere die Einträge in der Tabelle 'ReverbTags'.
local Players = game:GetService("Players")
local CollectionService = game:GetService("CollectionService")
local SoundService = game:GetService("SoundService")
local localPlayer = Players.LocalPlayer
local reverbTags = {
["reverb_Cave"] = Enum.ReverbType.Cave,
}
-- sammle teile und gruppiere sie nach tag
local parts = {}
for reverbTag, reverbType in pairs(reverbTags) do
for _, part in pairs(CollectionService:GetTagged(reverbTag)) do
parts[part] = reverbType
end
end
-- funktion, um zu überprüfen, ob eine position innerhalb der grenzen eines teils liegt
local function positionInPart(part, position)
local extents = part.Size / 2
local offset = part.CFrame:PointToObjectSpace(position)
return offset.x < extents.x and offset.y < extents.y and offset.z < extents.z
end
local reverbType = SoundService.AmbientReverb
while true do
task.wait()
if not localPlayer then
return
end
local character = localPlayer.Character
-- standard ohne nachhall
local newReverbType = Enum.ReverbType.NoReverb
if character and character.PrimaryPart then
local position = character.PrimaryPart.Position
-- gehe durch alle indexierten teile
for part, type in pairs(parts) do
-- sehen, ob der charakter sich darin befindet
if positionInPart(part, position) then
-- wenn ja, wähle diesen nachhalltyp
newReverbType = type
break
end
end
end
-- legen sie den nachhalltyp fest, wenn er sich geändert hat
if newReverbType ~= reverbType then
SoundService.AmbientReverb = newReverbType
reverbType = newReverbType
end
end
Zusammenfassung
Eigenschaften
Die Umgebungsklangumgebungsvoreinstellung, die von SoundService verwendet wird.
Bestimmt, wo (wenn überhaupt) ein AudioListener standardmäßig platziert werden soll.
Die Anzahl der Stollen, die als Meter bei SoundService bei der Berechnung der Volumenattenuation von Sounds an einen BasePart oder Attachment übertragen werden müssen.
Degree, in dem sich die Tonhöhe eines Sound aufgrund des Doppler-Effekts verändert.
Legt fest, ob Sound Wiedergabe von einem Client auf den Server repliziert wird.
Legt fest, wie schnell Sound Lautstärke abnimmt.
Methoden
Gibt den aktuellen SoundService Listenentyp und das zurück, was als Zuhörer festgelegt ist.
Spielt lokal eine Sound ab, was bedeutet, dass der Klang nur vom Client gehört wird, der diese Methode aufruft, unabhängig davon, wo er verwendet wird.
Setzt den Zuhörer für die SoundService.
Eigenschaften
AmbientReverb
Jede Enum.ReverbType für diese Eigenschaft entspricht einem Voreinstellung, die im FMOD-Sound-Engine verfügbar ist.Zum Beispiel, wenn AmbientReverb auf Enum.ReverbType.Hangar eingestellt ist, wird der Klang sich anders verbreiten, um zu simulieren, in einem großen geschlossenen Platzzu sein.
Die Änderung von AmbientReverb beeinflusst die folgenden Eigenschaften, die von Roblox's Sound-Engine verwendet werden.
- Verzerrungsverfallzeit.
- Initialer Reflexionsverzögerungszeit.
- Späte Nachhallzeit im Verhältnis zur ursprünglichen Reflexion.
- Verweis auf hohe Frequenz.
- Hochfrequenz-zu-Mittelfrequenz-Verfallzeitverhältnis.
- Wert, der die Echo-Dichte in der späten Nachhallzerfall kontrolliert.
- Wert, der die modale Dichte in der späten Resonanzzerfall kontrolliert.
- Verweise auf niedrige Frequenz.
- Relativer Raumeffekt auf niedrigen Frequenzen.
- Relativer Raumeffekt auf hohen Frequenzen.
- Frühe Reflexionsstufe im Verhältnis zum Raumeffekt.
- Raumeffektlevel bei mittleren Frequenzen.
CharacterSoundsUseNewApi
DefaultListenerLocation
Bestimmt, wo ein AudioListener standardmäßig platziert wird. Siehe Enum.ListenerLocation für detaillierte Beschreibungen jeder Option.
DistanceFactor
Die Anzahl der Stollen, die als Meter bei SoundService bei der Berechnung der Volumenattenuation von Sounds an einen BasePart oder Attachment übertragen werden müssen.
Standardmäßig ist diese Eigenschaft 3.33, was bedeutet, dass ein Meter als 3.33 Klötze für die Zwecke der Lautstärkenreduzierung betrachtet wird.Je größer die DistanceFactor , desto mehr wird der Klang allmählich abnehmen.
Es wird empfohlen, diese Eigenschaft nur zu ändern, wenn deine Erfahrung eine andere Größenverhältnisverwendet.Wenn du beispielsweise größere benutzerdefinierte Zeichen verwendest, möchtest du vielleicht DistanceFactor reduzieren.
DopplerScale
Diese Eigenschaft bestimmt den Grad, in dem sich die Tonhöhe eines Sound aufgrund des Doppler-Effekts verändert, ein Phänomen, bei dem sich die Tonhöhe eines Klangs verändert, wenn die Quelle und der Beobachter des Klangs weiter weg oder näher zusammen gehen.Betrifft nur Sounds , die einem BasePart oder Attachment zugewiesen sind.
Die Erhöhung dieses Werts übertont den Einfluss des Doppler-Effekts, während eine Verringerung ihn minimiert.Standardmäßig ist der Wert dieser Eigenschaft 1 .
RespectFilteringEnabled
Diese Eigenschaft bestimmt, ob Sound Wiedergabe vom Client zum Server und damit vom Server repliziert wird.Mit anderen Worten, wenn eine LocalScript Anrufe Play() und diese Eigenschaft true ist, wird der Ton nur auf dem jeweiligen Client abgespielt.Wenn diese Eigenschaft false ist, hören auch andere Clients den Ton.
Der Standard ist true, was bedeutet, dass die Filterung aktiviert ist.
RolloffScale
Legt fest, wie schnell Sound Lautstärke abnimmt.Je höher die RolloffScale , desto schneller wird die Lautstärke eines Sounds abnehmen, wenn die Entfernung zwischen dem Empfänger und dem Klang zunimmt.
Beachten Sie, dass diese Eigenschaft nur für Sounds gilt, deren RollOffMode Eigenschaft auf Inverse (Standard) oder InverseTapered gesetzt ist.Linear und LinearSquare-Modi verwenden ein anderes Verstärkungsmodell, das nicht von dieser Eigenschaftenbeeinflusst wird.Diese Eigenschaft hat auch keine Auswirkung auf Sounds, die nicht mit einem BasePart oder Attachment verwandt sind.
VolumetricAudio
Methoden
GetListener
Diese Methode gibt den aktuellen Zuhörertyp SoundService und das zurück, was als Zuhörer festgelegt ist, d.h. den Punkt, von dem aus Audio in der Erfahrung vom Spieler:in"gehört" wird.Standardmäßig wird der Zuhörer auf Workspace.CurrentCamera festgelegt.Der Zuhörer kann mit SetListener() geändert werden.
Das erste Ergebnis ist das des Zuhörers Enum.ListenerType und das zweite Ergebnis hängt von diesem eingebenab:
<th>Beschreibung</th></tr></thead><tbody><tr><td><code>Enum.ListenerType.Kamera</code></td><td>Gibt kein Zuhörer-Objekt als <code>Klasse.Arbeitsbereich.CurrentCamera|CurrentCamera</code> zurück, da es immer verwendet wird.</td></tr><tr><td><code>Enum.ListenerType.CFrame</code></td><td>Gibt den <code>Datentyp.CFrame</code> zurück, der in <code>Class.SoundService:SetListener()|SetListener()</code> verwendet wird.</td></tr><tr><td><code>Enum.ListenerType.Objektposition</code></td><td>Gibt die <code>Klasse.BasePart</code> zurück, die in <code>Class.SoundService:SetListener()|SetListener()</code> verwendet wird.</td></tr><tr><td><code>Enum.ListenerType.ObjectCFrame</code></td><td>Gibt die <code>Klasse.BasePart</code> zurück, die in <code>Class.SoundService:SetListener()|SetListener()</code> verwendet wird.</td></tr></tbody>
Zuhörertyp |
---|
Rückgaben
Der aktuelle Enum.ListenerType und was der Zuhörer festgelegt wurde. Der Zuhörer kann ein BasePart , ein CFrame oder nil sein.
OpenAttenuationCurveEditor
Parameter
Rückgaben
OpenDirectionalCurveEditor
Parameter
Rückgaben
PlayLocalSound
Spielt lokal eine Sound ab, was bedeutet, dass der Klang nur vom Client gehört wird, der diese Methode aufruft, unabhängig davon, wo er verwendet wird.Diese Methode ist am nützlichsten, um eine Sound lokal im Studio-Client zu spielen, zum Beispiel in einem Script für eine Plugin.
Parameter
Rückgaben
SetListener
Legt den Zuhörer fest, den der Client verwendet, d.h. den Punkt, von dem aus Audio in der Erfahrung vom Spieler:in"gehört" wird.Für Sounds an einen BasePart oder Attachment übergeben, beeinflusst der Zuhörer die Lautstärke und das linken/rechten Gleichgewicht eines abspielenden Sounds.
Standardmäßig wird der Zuhörer auf Workspace.CurrentCamera festgelegt, aber eine Reihe verschiedener Arten von Zuhörern kann verwendet werden.
Der Zuhörer kann mit GetListener() abgerufen werden.
Parameter
Die Enum.ListenerType des Zuhörers.
Abhängig von der Enum.ListenerType.Verwende ein BasePart für Enum.ListenerType.ObjectPosition oder Enum.ListenerType.ObjectCFrame , ein CFrame für Enum.ListenerType.CFrame oder nil für Enum.ListenerType.Camera.