SoundService

Visualizza obsoleti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Non costruibile
Assistenza

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

Sistema di riverberazione dinamica

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à

Metodi

Proprietà

AmbientReverb

Lettura Parallela

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

Sicurezza Plugin
Lettura Parallela

DefaultListenerLocation

Sicurezza Plugin
Lettura Parallela

Determina dove posizionare un AudioListener per impostazione predefinita. Vedi Enum.ListenerLocation per descrizioni dettagliate di ciascuna opzione.

DistanceFactor

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Lettura Parallela

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

Non programmabile
Lettura Parallela

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

()
Sicurezza Plugin

Parametri

selectedCurveObjects: Instances
Valore predefinito: ""

Restituzioni

()

OpenDirectionalCurveEditor

()
Sicurezza Plugin

Parametri

selectedCurveObjects: Instances
Valore predefinito: ""

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

sound: Instance

Il Sound da riprodurre.

Valore predefinito: ""

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

listenerType: Enum.ListenerType

Il Enum.ListenerType del lettore.

Valore predefinito: ""

Restituzioni

()

Eventi