SoundService
*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.
Usługa, która określa różne aspekty tego, jak Sounds gra w doświadczeniu.SoundService jest również często używany do przechowywania SoundGroups, choć nie jest to obowiązkowe dla grup, aby działały.
SoundService właściwości takie jak AmbientReverb , DistanceFactor , DopplerScale i RolloffScale mogą być używane do zmiany sposobu, w jaki wszystkie Sounds odtwarzają się w doświadczeniu, a funkcja SetListener() pozwala ustawić pozycję, z której słychać dźwięki.
Przykłady kodu
The code in this sample, when ran from a LocalScript, will change the SoundService.AmbientReverb property of SoundService when the player is inside a BasePart tagged using CollectionService.
To add or remove tags and reverb types, change the entries in the 'reverbTags' table.
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,
}
-- collect parts and group them by tag
local parts = {}
for reverbTag, reverbType in pairs(reverbTags) do
for _, part in pairs(CollectionService:GetTagged(reverbTag)) do
parts[part] = reverbType
end
end
-- function to check if a position is within a part's extents
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
-- default to no reverb
local newReverbType = Enum.ReverbType.NoReverb
if character and character.PrimaryPart then
local position = character.PrimaryPart.Position
-- go through all the indexed parts
for part, type in pairs(parts) do
-- see if the character is within them
if positionInPart(part, position) then
-- if so, pick that reverb type
newReverbType = type
break
end
end
end
-- set the reverb type if it has changed
if newReverbType ~= reverbType then
SoundService.AmbientReverb = newReverbType
reverbType = newReverbType
end
end
Podsumowanie
Właściwości
Ustawienie środowiska dźwiękowego otoczenia używane przez SoundService.
Określa, gdzie (jeśli w ogóle) umieścić domyślnie AudioListener .
Liczba kołków, które należy uznać za metr przez SoundService przy obliczaniu zmniejszenia objętości Sounds przypisanych do BasePart lub Attachment.
Stopień, w jakim nachylenie Sound zmienia się ze względu na efekt Dopplera.
Ustawia, czy odtwarzanie Sound z klienta zostanie powielone na serwerze.
Ustawia, jak szybko zmniejsza się objętość Sound dźwięku.
Metody
Zwraca obecny typ słuchacza SoundService i to, co jest ustawione jako słuchacz.
Odtwarza lokalnie Sound dźwięk, co oznacza, że dźwięk będzie słyszany tylko przez klienta, który wezwał tę metodę, niezależnie od tego, gdzie jest przypisany.
Ustawia słuchacz na SoundService.
Właściwości
AmbientReverb
Każda opcja Enum.ReverbType dla tej właściwości odpowiada ustawieniu dostępnemu w silniku dźwięku FMOD.Na przykład, gdy AmbientReverb jest ustawiony na Enum.ReverbType.Hangar, dźwięk będzie rezonować inaczej, aby symulować przebywanie w dużej zamkniętej przestrzeni.
Zmiana AmbientReverb wpływa na następujące właściwości używane przez silnik dźwiękowy Roblox.
- Czas rozkładu rezonansu.
- Początkowy czas opóźnienia odblokowania.
- Późny czas opóźnienia rezonansu względem czasu odzwierciedlenia początkowego.
- Odniesienie do wysokiej częstotliwości.
- Stosunek czasu rozkładu wysokiej częstotliwości do średniej częstotliwości.
- Wartość, która kontroluje gęstość echa w późnej degradacji rezonansu.
- Wartość, która kontroluje gęstość modalną w późnej degradacji rezonansu.
- Odniesienie do niskiej częstotliwości.
- Poziom efektu pokojowego względnego przy niskich częstotliwościach.
- Poziom efektu pokojowego względnego przy wysokich częstotliwościach.
- Wczesne odzwierciedlenie poziomu względem efektu pokoju.
- Poziom efektu pokojowego na średnich częstotliwościach.
CharacterSoundsUseNewApi
DefaultListenerLocation
Określa, gdzie domyślnie umieścić AudioListener przez domyślny. Zobacz Enum.ListenerLocation dla szczegółowych opisów każdej opcji.
DistanceFactor
Liczba kołków, które należy uznać za metr przez SoundService przy obliczaniu zmniejszenia objętości Sounds przypisanych do BasePart lub Attachment.
Domyślnie właściwość ta wynosi 3.33, co oznacza, że licznik jest uważany za 3.33 szpilki w celu zmniejszenia hałasu.Im większa jest DistanceFactor, tym bardziej stopniowo zmniejsza się dźwięk.
Zaleca się, abyś zmieniał tę właściwość tylko wtedy, gdy twoje doświadczenie używa innej skali.Na przykład, gdy używasz większych niestandardowych znaków, możesz chcieć zmniejszyć DistanceFactor.
DopplerScale
Właściwość ta określa stopień, w jakim nachylenie Sound zmienia się ze względu na efekt Dopplera, zjawisko, w którym nachylenie dźwięku zmienia się, gdy źródło i obserwator dźwięku przesuwa się dalej lub bliżej razem.Dotyczy tylko Sounds, które są powiązane z BasePart lub Attachment .
Zwiększanie tej wartości przesadza wpływ efektu Dopplera, podczas gdy jej zmniejszanie go minimalizuje.Domyślnie wartość tej właściwości jest 1 .
RespectFilteringEnabled
Właściwość ta określa, czy odtwarzanie Sound zostanie powielone z klienta na serwer, a więc również z serwera.Innymi słowy, gdy LocalScript wezwanie Play() i ta właściwość jest true , dźwięk będzie odtwarzany tylko na odpowiednim klientzie.Jeśli ta właściwość jest false, inni klienci również usłyszą dźwięk.
Domyślnie jest true, co oznacza, że filtrowanie jest włączone.
RolloffScale
Ustawia, jak szybko zmniejsza się objętość Sound dźwięku.Im wyższy jest RolloffScale, tym szybciej zmniejsza się głośność dźwięku wraz z zwiększeniem odległości między odbiorcą a dźwiękiem.
Zauważ, że ta właściwość dotyczy tylko Sounds osób, których właściwość RollOffMode jest ustawiona na Inverse (domyślnie) lub InverseTapered.Linear i LinearSquare tryby używają innego modelu wygaszania, który nie jest wpływany przez tę właściwość.Właściwość ta nie ma również wpływu na Sounds, które nie są powiązane z BasePart lub Attachment.
VolumetricAudio
Metody
GetListener
Ta metoda zwraca obecny typ słuchacza SoundService i to, co jest ustawione jako słuchacz, co oznacza punkt, z którego dźwięk w doświadczeniu jest "słyszany" przez gracza.Domyślnie słuchacz jest ustawiony na Workspace.CurrentCamera .Słuchacz może być zmieniony za pomocą SetListener().
Pierwszy wynik zwrócony jest adresatorem Enum.ListenerType i drugi wynik zależy od tego wpisywać:
<th>Opis</th></tr></thead><tbody><tr><td><code>Enum.ListenerType.Kamera</code></td><td>Nie zwraca obiektu słuchacza jako <code>Class.Workspace.CurrentCamera|CurrentCamera</code>, ponieważ zawsze jest używany.</td></tr><tr><td><code>Enum.ListenerType.CFrame</code></td><td>Zwraca <code>Datatype.CFrame</code> używany w <code>Class.SoundService:SetListener()|SetListener()</code> .</td></tr><tr><td><code>Enum.ListenerType.Position obiektu</code></td><td>Zwraca <code>Class.BasePart</code> używany w <code>Class.SoundService:SetListener()|SetListener()</code> .</td></tr><tr><td><code>Enum.ListenerType.ObjectCFrame</code></td><td>Zwraca <code>Class.BasePart</code> używany w <code>Class.SoundService:SetListener()|SetListener()</code> .</td></tr></tbody>
Typ słuchacza |
---|
Zwroty
Obecny Enum.ListenerType i to, na co słuchacz został ustawiony. Słuchacz może być BasePart , CFrame lub nil.
OpenAttenuationCurveEditor
Parametry
Zwroty
OpenDirectionalCurveEditor
Parametry
Zwroty
PlayLocalSound
Odtwarza lokalnie Sound dźwięk, co oznacza, że dźwięk będzie słyszany tylko przez klienta, który wezwał tę metodę, niezależnie od tego, gdzie jest przypisany.Ta metoda jest najbardziej przydatna do odtwarzania Sound lokalnie w klientze Studio, na przykład w Script dla Plugin.
Parametry
Zwroty
SetListener
Ustawia słuchacz używany przez klienta, co oznacza punkt, z którego dźwięk w doświadczeniu jest "słyszany" przez gracza.Dla Sounds rodzica do BasePart lub Attachment, słuchacz wpływa na głośność i równowagę lewą/prawą odtwarzanego dźwięku.
Domyślnie słuchacz jest ustawiony na Workspace.CurrentCamera, ale można użyć zakresu różnych typów słuchaczy.
Słuchacz może być odzyskany za pomocą GetListener() .
Parametry
The Enum.ListenerType of the listener.
Zależny od Enum.ListenerType.Użyj BasePart dla Enum.ListenerType.ObjectPosition lub Enum.ListenerType.ObjectCFrame , CFrame dla Enum.ListenerType.CFrame lub nil dla Enum.ListenerType.Camera.