SoundService

Pokaż przestarzałe

*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.

Brak możliwości tworzenia
Usługa

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.

Dynamic Reverb System

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

Metody

Właściwości

AmbientReverb

Odczyt równoległy

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

Zabezpieczenia dodatku plug-in
Odczyt równoległy

DefaultListenerLocation

Zabezpieczenia dodatku plug-in
Odczyt równoległy

Określa, gdzie domyślnie umieścić AudioListener przez domyślny. Zobacz Enum.ListenerLocation dla szczegółowych opisów każdej opcji.

DistanceFactor

Odczyt równoległy

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

Odczyt równoległy

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

Odczyt równoległy

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

Odczyt równoległy

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

Brak możliwości dodawania do skryptu
Odczyt równoległy

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

()
Zabezpieczenia dodatku plug-in

Parametry

selectedCurveObjects: Instances
Wartość domyślna: ""

Zwroty

()

OpenDirectionalCurveEditor

()
Zabezpieczenia dodatku plug-in

Parametry

selectedCurveObjects: Instances
Wartość domyślna: ""

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

sound: Instance

The Sound do odtworzenia.

Wartość domyślna: ""

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

listenerType: Enum.ListenerType

The Enum.ListenerType of the listener.

Wartość domyślna: ""

Zwroty

()

Zdarzenia