SoundService
*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.
Un servizio che determina vari aspetti di come Sounds gioca nell'esperienza.SoundService è spesso anche usato per archiviare SoundGroups, anche se questo non è obbligatorio per i gruppi per lavorare.
SoundService proprietà come AmbientReverb , DistanceFactor , DopplerScale e RolloffScale possono essere utilizzate per cambiare il modo in cui tutti i Sounds suoni giocano nell'esperienza, e la funzione SetListener() ti consente di impostare la posizione da cui vengono sentiti i suoni.
Campioni di codice
Il codice in questo esempio, quando viene eseguito da un LocalScript , cambierà la proprietà SoundService.AmbientReverb di SoundService quando il giocatore è all'interno di un BasePart contrassegnato usando CollectionService .
Per aggiungere o rimuovere etichette e tipi di riverbero, modifica le voci nella tabella '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,
}
-- raccogli parti e gruppali per tag
local parts = {}
for reverbTag, reverbType in pairs(reverbTags) do
for _, part in pairs(CollectionService:GetTagged(reverbTag)) do
parts[part] = reverbType
end
end
-- funzione per controllare se una posizione è all'interno degli estremi di una parte
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
-- predefinito a nessuna risonanza
local newReverbType = Enum.ReverbType.NoReverb
if character and character.PrimaryPart then
local position = character.PrimaryPart.Position
-- passa attraverso tutte le parti indexate
for part, type in pairs(parts) do
-- vedi se il personaggio è dentro di loro
if positionInPart(part, position) then
-- se sì, scegli quel tipo di riverbero
newReverbType = type
break
end
end
end
-- imposta il tipo di riverbero se è cambiato
if newReverbType ~= reverbType then
SoundService.AmbientReverb = newReverbType
reverbType = newReverbType
end
end
Sommario
Proprietà
L'ambiente sonoro predefinito utilizzato da SoundService .
Determina dove (se ovunque) posizionare un AudioListener per impostazione predefinita.
Il numero di borchie da considerare un metro da SoundService quando si calcola l'attenuazione del volume di Sounds genitori a un BasePart o Attachment .
Grado al quale la pendenza di un Sound varia a causa dell'effetto Doppler.
Imposta se il riproduzione Sound da un client si replicherà sul Server.
Imposta la velocità con cui il volume Sound si attenua.
Metodi
Restituisce il tipo attuale di ascoltatore SoundService e ciò che è impostato come ascoltatore.
Riproduce un Sound localmente, il che significa che il suono sarà udito solo dal client che chiama questo metodo, indipendentemente da dove è parentedato.
Imposta l'ascoltatore per il SoundService .
Proprietà
AmbientReverb
Ogni opzione Enum.ReverbType per questa proprietà corrisponde a un preset disponibile nel motore sonoro FMOD.Ad esempio, quando AmbientReverb è impostato su Enum.ReverbType.Hangar , il suono si riverbererà in modo diverso per simulare di essere in un grande Spaziochiuso.
Cambiare AmbientReverb influisce sulle seguenti proprietà utilizzate dal motore sonoro di Roblox.
- Tempo di decadimento della reverberazione.
- Tempo di ritardo di riflessione iniziale.
- Tempo di ritardo della risonanza tardiva rispetto al tempo di riflessione iniziale.
- Frequenza di riferimento alta.
- Rapporto tempo di decadimento ad alta frequenza a medio frequenza.
- Valore che controlla la densità dell'eco nella decadenza della riverberazione tardiva.
- Valore che controlla la densità modale nel decadimento della riverberazione tardiva.
- Frequenza di riferimento bassa.
- Livello di effetto della stanza relativa a frequenze basse.
- Livello di effetto della stanza relativa a frequenze elevate.
- Livello di riflessione precoce rispetto all'effetto della stanza.
- Livello di effetto della stanza alle frequenze medie.
CharacterSoundsUseNewApi
DefaultListenerLocation
Determina dove posizionare un AudioListener per impostazione predefinita. Vedi Enum.ListenerLocation per descrizioni dettagliate di ciascuna opzione.
DistanceFactor
Il numero di borchie da considerare un metro da SoundService quando si calcola l'attenuazione del volume di Sounds genitori a un BasePart o Attachment .
Per impostazione predefinita, questa proprietà è 3.33 , il che significa che un metro è considerato 3.33 studs ai fini dell'attenuazione del volume.Più grande è il DistanceFactor , più gradualmente il suono si attenuerà.
Si consiglia di modificare questa proprietà solo se la tua esperienza utilizza una Ridimensionarediversa.Ad esempio, quando si utilizzano caratteri personalizzati più grandi, potresti voler ridurre DistanceFactor .
DopplerScale
Questa proprietà determina il grado in cui la pendenza di un Sound varia a causa dell'effetto Doppler, un fenomeno per cui la pendenza di un suono cambia come la fonte e l'osservatore del suono si muove più lontano o più vicino insieme.Affecta solo Sounds quelli che sono parented a un BasePart o Attachment .
Aumentare questo valore esagera l'impatto dell'effetto Doppler, mentre diminuirlo lo minimizza.Per impostazione predefinita, il valore di questa proprietà è 1 .
RespectFilteringEnabled
Questa proprietà determina se il riproduzione Sound viene replicata dal client al Servere quindi dal Server.In altre parole, quando un LocalScript chiama Play() e questa proprietà è true , il suono si riproducirà solo sul rispettivo client.Se questa proprietà è false , anche altri client sentiranno il suono.
Il predefinito è true , il che significa che il filtraggio è abilitato.
RolloffScale
Imposta la velocità con cui il volume Sound si attenua.Più alto è il RolloffScale , più rapidamente il volume di un suono si attenua alla diminuzione della distanza tra l'ascoltatore e il suono.
Nota che questa proprietà si applica solo a Sounds la cui proprietà RollOffMode è impostata su Inverse (predefinito) o InverseTapered .Linear e LinearSquare modalità utilizzano un diverso modello di attenuazione che non è influenzato da questa Proprietà.Questa proprietà non ha alcun impatto su Sounds che non sono parented a un BasePart o Attachment .
VolumetricAudio
Metodi
GetListener
Questo metodo restituisce il SoundService attuale tipo di ascoltatore e ciò che viene impostato come ascoltatore, intendendo il punto da cui l'audio nell'esperienza viene "udito" dal Giocatore.Per impostazione predefinita, il lettore è impostato su Workspace.CurrentCamera .L'ascoltatore può essere cambiato utilizzando SetListener() .
Il primo risultato restituito è quello del lettore di Enum.ListenerType e il secondo risultato è dipendente da quel inserisci / scrivi:
<th>Descrizione</th></tr></thead><tbody><tr><td><code>Enum.ListenerType.Camera</code></td><td>Non restituisce un oggetto ascoltatore come <code>Class.Area di lavoro.CurrentCamera|CurrentCamera</code> è sempre utilizzato.</td></tr><tr><td><code>Enum.ListenerType.CFrame</code></td><td>Restituisce il <code>Datatype.CFrame</code> utilizzato in <code>Class.SoundService:SetListener()|SetListener()</code> .</td></tr><tr><td><code>Enum.ListenerType.ObjectPosition</code></td><td>Restituisce la <code>Class.BasePart</code> utilizzata in <code>Class.SoundService:SetListener()|SetListener()</code> .</td></tr><tr><td><code>Enum.ListenerType.ObjectCFrame</code></td><td>Restituisce la <code>Class.BasePart</code> utilizzata in <code>Class.SoundService:SetListener()|SetListener()</code> .</td></tr></tbody>
Tipo di ascoltatore |
---|
Restituzioni
L'attuale Enum.ListenerType e ciò che il ricevitore è stato impostato su. L'ascoltatore può essere un BasePart , un CFrame , o nil .
OpenAttenuationCurveEditor
Parametri
Restituzioni
OpenDirectionalCurveEditor
Parametri
Restituzioni
PlayLocalSound
Riproduce un Sound localmente, il che significa che il suono sarà udito solo dal client che chiama questo metodo, indipendentemente da dove è parentedato.Questo metodo è più utile per giocare a un Sound localmente nel client Studio, ad esempio in un Script per un Plugin .
Parametri
Restituzioni
SetListener
Imposta l'ascoltatore utilizzato dal client, cioè il punto da cui l'audio nell'esperienza viene "udito" dal Giocatore.Per Sounds genitori a un BasePart o Attachment , il lettore influenza il volume e l'equilibrio sinistra/destra di un suono in riproduzione.
Per impostazione predefinita, l'ascoltatore è impostato su Workspace.CurrentCamera , ma si può utilizzare un'ampia gamma di diversi tipi di ascoltatori.
L'ascoltatore può essere recuperato utilizzando GetListener() .
Parametri
Il Enum.ListenerType del lettore.
Dipendente dal Enum.ListenerType .Usa un BasePart per Enum.ListenerType.ObjectPosition o Enum.ListenerType.ObjectCFrame , un CFrame per Enum.ListenerType.CFrame , o nil per Enum.ListenerType.Camera.