SoundService
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Un service qui détermine divers aspects de la façon dont Sounds joue dans l'expérience.SoundService est également souvent utilisé pour stocker SoundGroups, bien que ce ne soit pas obligatoire pour que les groupes fonctionnent.
SoundService les propriétés telles que AmbientReverb , DistanceFactor , DopplerScale et RolloffScale peuvent être utilisées pour changer la façon dont tout le Sounds joue dans l'expérience, et la fonction SetListener() vous permet de définir la position à partir de laquelle les sons sont entendus.
Échantillons de code
Le code dans cet exemple, lorsqu'il est exécuté à partir d'un LocalScript , changera la propriété SoundService.AmbientReverb de SoundService lorsque le joueur se trouve dans une balise BasePart marquée à l'aide de CollectionService .
Pour ajouter ou supprimer des balises et des types de réverbération, modifiez les entrées dans la table '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,
}
-- récupérer des parties et les regrouper par tag
local parts = {}
for reverbTag, reverbType in pairs(reverbTags) do
for _, part in pairs(CollectionService:GetTagged(reverbTag)) do
parts[part] = reverbType
end
end
-- fonction pour vérifier si une position se trouve dans les limites d'une partie
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
-- par défaut à aucune réverbération
local newReverbType = Enum.ReverbType.NoReverb
if character and character.PrimaryPart then
local position = character.PrimaryPart.Position
-- aller à travers toutes les parties indexées
for part, type in pairs(parts) do
-- voir si le caractère est à l'intérieur d'eux
if positionInPart(part, position) then
-- si oui, choisissez ce type de réverbération
newReverbType = type
break
end
end
end
-- définir le type de réverbération s'il a changé
if newReverbType ~= reverbType then
SoundService.AmbientReverb = newReverbType
reverbType = newReverbType
end
end
Résumé
Propriétés
L'environnement sonore ambiant préréglé utilisé par SoundService.
Détermine où (si n'importe où) placer par défaut un AudioListener par défaut.
Le nombre de studs à prendre en compte comme un mètre par SoundService lors du calcul de l'atténuation du volume de Sounds parenté à un BasePart ou Attachment .
Dégré auquel la hauteur d'un Sound varie en raison de l'effet Doppler.
Définit si la lecture à partir d'un client se répliquera sur le serveur. Sound
Définit à quelle vitesse le volume Sound s'atténue.
Méthodes
Renvoie le type d'écouteur actuel SoundService et ce qui est défini comme écouteur.
Joue un Sound localement, ce qui signifie que le son ne sera entendu que par le client appelant cette méthode, peu importe où il est hérité.
Définit l'écouteur pour le SoundService.
Propriétés
AmbientReverb
Chaque option Enum.ReverbType pour cette propriété correspond à un préset disponible dans le moteur son FMOD.Par exemple, lorsque AmbientReverb est réglé sur Enum.ReverbType.Hangar, le son résonnera différemment pour simuler être dans un grand espace fermé.
Changer AmbientReverb affecte les propriétés suivantes utilisées par le moteur sonore de Roblox.
- Temps de décroissance de la réverbération.
- Temps de retard de réflexion initial.
- Temps de retard de réverbération tardive par rapport au temps de réflexion initiale.
- Référence haute fréquence.
- Ration de temps de décroissance de fréquence élevée à moyenne.
- Valeur qui contrôle la densité d'écho dans la dégradation de réverbération tardive.
- Valeur qui contrôle la densité modale dans la dégradation de réverbération tardive.
- Faible fréquence de référence.
- Niveau d'effet de pièce relative à faible fréquence.
- Niveau d'effet de pièce relative à hautes fréquences.
- Niveau de réflexion précoce relative à l'effet de la salle.
- Niveau d'effet de salle à des fréquences moyennes.
CharacterSoundsUseNewApi
DefaultListenerLocation
Détermine où placer par défaut un AudioListener par défaut. Voir Enum.ListenerLocation pour les descriptions détaillées de chaque option.
DistanceFactor
Le nombre de studs à prendre en compte comme un mètre par SoundService lors du calcul de l'atténuation du volume de Sounds parenté à un BasePart ou Attachment .
Par défaut, cette propriété est 3.33 , ce qui signifie qu'un compteur est considéré comme 3,33 studs aux fins d'atténuation du volume.Plus le DistanceFactor est grand, plus le son s'atténuera progressivement.
Il est recommandé de ne modifier cette propriété que si votre expérience utilise une redimensionnerdifférente.Par exemple, lors de l'utilisation de personnages personnalisés plus grands, vous pouvez vouloir réduire DistanceFactor .
DopplerScale
Cette propriété détermine le degré dans lequel la hauteur d'un Sound varie en raison de l'effet Doppler, un phénomène par lequel la hauteur d'un son change lorsque la source et l'observateur du son se déplacent plus loin ou plus près l'un de l'autre.Ne touche que Sounds celles qui sont parentées à un BasePart ou Attachment .
L'augmentation de cette valeur exagère l'impact de l'effet Doppler, tandis que sa diminution le minimise.Par défaut, la valeur de cette propriété est 1 .
RespectFilteringEnabled
Cette propriété détermine si la lecture Sound est répliquée du client au serveur, et donc du serveur.En d'autres termes, lorsqu'un LocalScript appelle Play() et que cette propriété est true, le son ne se jouera que sur le client respectif.Si cette propriété est false , d'autres clients entendront également le son.
La valeur par défaut est true , ce qui signifie que le filtrage est activé.
RolloffScale
Définit à quelle vitesse le volume Sound s'atténue.Plus le RolloffScale est élevé, plus rapidement le volume d'un son diminuera à mesure que la distance entre l'écouteur et le son augmente.
Notez que cette propriété ne s'applique qu'à Sounds dont la propriété RollOffMode est définie sur Inverse (par défaut) ou InverseTapered .Linear et LinearSquare modes utilisent un modèle d'atténuation différent qui n'est pas influencé par cette propriété.Cette propriété n'a pas non plus d'impact sur Sounds qui ne sont pas parentés à un BasePart ou Attachment .
VolumetricAudio
Méthodes
GetListener
Cette méthode renvoie le type d'écouteur actuel SoundService et ce qui est défini comme écouteur, ce qui signifie le point à partir duquel l'audio dans l'expérience est "entendu" par le joueur.Par défaut, l'écouteur est configuré à Workspace.CurrentCamera .L'écouteur peut être modifié en utilisant SetListener() .
Le premier résultat retourné est le Enum.ListenerType du récepteur et le deuxième résultat dépend de ce taper:
<th>Avertissement</th></tr></thead><tbody><tr><td><code>Enum.ListenerType.Caméra</code></td><td>Ne retourne pas d'objet d'écouteur comme <code>Class.Workspace.CurrentCamera|CurrentCamera</code> est toujours utilisé.</td></tr><tr><td><code>Enum.ListenerType.CFrame</code></td><td>Retourne le <code>Datatype.CFrame</code> utilisé dans <code>Class.SoundService:SetListener()|SetListener()</code> .</td></tr><tr><td><code>Enum.ListenerType.ObjectPosition</code></td><td>Retourne la classe <code>Class.BasePart</code> utilisée dans <code>Class.SoundService:SetListener()|SetListener()</code>.</td></tr><tr><td><code>Enum.ListenerType.ObjectCFrame</code></td><td>Retourne la classe <code>Class.BasePart</code> utilisée dans <code>Class.SoundService:SetListener()|SetListener()</code>.</td></tr></tbody>
Type d'écouteur |
---|
Retours
L'actuel Enum.ListenerType et ce que l'écouteur a été défini pour. L'écouteur peut être un BasePart , un CFrame ou nil .
OpenAttenuationCurveEditor
Paramètres
Retours
OpenDirectionalCurveEditor
Paramètres
Retours
PlayLocalSound
Joue un Sound localement, ce qui signifie que le son ne sera entendu que par le client appelant cette méthode, peu importe où il est hérité.Cette méthode est la plus utile pour jouer un Sound localement dans le client Studio, par exemple dans un Script pour un Plugin .
Paramètres
Retours
SetListener
Définit l'écouteur utilisé par le client, ce qui signifie le point à partir duquel l'audio dans l'expérience est «entendu» par le joueur.Pour Sounds le parent à un BasePart ou Attachment , le récepteur influence le volume et l'équilibre gauche/droite d'un son en train de jouer.
Par défaut, l'écouteur est réglé sur Workspace.CurrentCamera , mais une gamme de différents types d'écouteurs peut être utilisée.
L'écouteur peut être récupéré en utilisant GetListener() .
Paramètres
Le Enum.ListenerType du récepteur.
Dépendant du Enum.ListenerType.Utilisez un BasePart pour Enum.ListenerType.ObjectPosition ou Enum.ListenerType.ObjectCFrame , un CFrame pour Enum.ListenerType.CFrame , ou nil pour Enum.ListenerType.Camera.