AudioEmitter
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
AudioEmitter émet des flux audio dans le monde. Il fournit un seul entrée pin
AudioEmitters sont entendus par AudioListeners afin d'implémenter la spatialisation 3D.
Échantillons de code
local part1 : BasePart = workspace.Speakers.Left
local part2 : BasePart = workspace.Speakers.Right
local player : AudioPlayer = workspace.AudioPlayer
local leftEmitter = Instance.new("AudioEmitter")
local rightEmitter = Instance.new("AudioEmitter")
local toLeft = Instance.new("Wire")
local toRight = Instance.new("Wire")
leftEmitter.Parent = part1
rightEmitter.Parent = part2
toLeft.Parent = leftEmitter
toLeft.SourceInstance = player
toLeft.TargetInstance = leftEmitter
toRight.Parent = rightEmitter
toRight.SourceInstance = player
toRight.TargetInstance = rightEmitter
player:Play()
Résumé
Propriétés
Représente comment le volume perçu du son émis change en fonction de l'angle entre un AudioListener et un LookVector associé avec le AudioEmitter .
Contrôles que AudioListeners sont capables d'entendre ceci AudioEmitter .
Représente la façon dont le volume perçu du son change en fonction de la distance entre un AudioListener et un AudioEmitter.
Méthodes
Obtient la courbe d'atténuation d'angle que l' AudioEmitter utilise, ou une table vide si elle utilise la courbe par défaut.
Retourne un tableau de Wires qui sont connectés à l'épinglerspécifié.
Obtient la courbe de réduction de distance que l' AudioEmitter utilise, ou une table vide si elle utilise la courbe par défaut.
Définit la courbe d'atténuation d'angle que le AudioEmitter devrait utiliser, ou utilise une courbe de volume constante 1 si aucune n'est fournie.
Définit la courbe d'atténuation de distance que le AudioEmitter doit utiliser, ou utilise une courbe de roulis inversé si aucune n'est fournie.
Propriétés
AngleAttenuation
Représente une courbe de volume au-dessus de l'angle qui affecte le volume d'un AudioListener , en fonction de l'angle entre eux et le AudioEmitter associé au LookVector .
Cette propriété est interne et ne peut pas être utilisée par les scripts ; elle existe pour prendre en charge la réplication. Voir SetAngleAttenuation() pour plus de détails d'utilisation.
AudioInteractionGroup
Si un AudioEmitter et un AudioListener partagent un groupe d'interaction, le lecteur est capable d'entendre l'émetteur.
DistanceAttenuation
Représente une courbe de volume-sur-距離 qui affecte le volume d'une AudioListener , basé sur la distance entre eux.
Cette propriété est interne et ne peut pas être utilisée par les scripts ; elle existe pour prendre en charge la réplication. Voir SetDistanceAttenuation() pour plus de détails d'utilisation.
Méthodes
GetAngleAttenuation
Renvoie un angle de mise en relation de table au volume. Les clés sont des numéros entre 0 et 180 (inclusif), alors que les valeurs sont des numéros entre 0 et 1> 11> (inclusif) décrivant comment la mise en relation du volume varie en fonction de la direction. Ce méthode renvoie une table vide si la courbe d'angle par défaut est utilis
Retours
Angle de mise à l'échelle de la table pour le volume, comme décrit ci-dessus.
GetConnectedWires
Retourne un tableau de Wires qui sont connectés à l'écrou spécifié. AudioEmitter a un seul épingler« entrée ».
Paramètres
Retours
GetDistanceAttenuation
Renvoie une distance de table de mise en volume. Les clés sont des nombres supérieurs ou égaux à 0, tandis que les valeurs sont des nombres entre 0 et 1 (y compris) décrivant comment le volume s'atténue au fil du temps. Cette méthode renvoie une table vide si la courbe d'atténuation de distance par défaut est utilisée.
Retours
GetInteractingListeners
Retours
SetAngleAttenuation
Définit une courbe de volume-over-angle qui affecte le volume d'une AudioListener , basé sur l'angle entre eux et le AudioEmitter associé avec le LookVector .
La courbe est représentée par une table de mise en relation des angles des clés des valeurs de volume. Les clés sont attendues d'être des numéros uniques entre 0 et 180 (inclusif), alors que les valeurs sont attendues d'être des numéros entre 0 et 1> 11> (inclusif). Les tables contenant jusqu'à 400 paires de clés de vale
Le volume du AudioEmitter à partir de la perspective d'un AudioListener à un angle a est déterminé par l'interpolation linéaire entre les niveaux de volume pour les
Ce volume sera multiplié par le volume des autres courbes d'atténération (y compris ceux sur la réception AudioListener ) pour obtenir la finalité d'audibilité.
Si la table est vide ou nil, le AudioEmitter par défaut utilise une courbe d'atténuation d'angle avec la valeur de volume constante de 1.
Paramètres
Retours
SetDistanceAttenuation
Définit une courbe de volume-over-Distance qui affecte la force d'un AudioListener à l'oreille, en fonction de la distance entre eux.
La courbe est représentée par des clés de table de distance de mise en relation avec les valeurs de volume. Les clés sont attendues d'être des numéros uniques supérieurs à ou égaux à 0, tandis que les valeurs sont attendues d'être des nombres entre 0 et 1 (y compris). Les tables contenant jusqu'à 400 paires de clés de valeur sont prises en charge.
Le volume du AudioEmitter à partir de la perspective d'un AudioListener à une distance d est déterminé par l'interpolation linéaire entre les niveaux de volume
Ce volume sera multiplié par le volume des autres courbes d'atténération (y compris ceux sur la réception AudioListener ) pour obtenir la finalité d'audibilité.
Si la table est vide ou nil, le AudioEmitter par défaut utilise une courbe d'atténuation de distance déterminée par la loi de l'inverse carré.
Paramètres
Retours
Échantillons de code
local Players = game:GetService("Players")
local emitterPart = Instance.new("Part")
emitterPart.Anchored = true
emitterPart.Position = Vector3.new(0, 0, 0)
emitterPart.Parent = workspace
local emitter : AudioEmitter = Instance.new("AudioEmitter")
emitter.Parent = emitterPart
local curve = {}
curve[10] = 1 -- Within a distance of 10 studs, listeners hear this emitter at full volume
curve[100] = 0.4 -- At a distance of 100 studs, listeners hear this emitter at 40% volume
curve[300] = 0 -- At any distance farther than 300 studs, listeners cannot hear this emitter
emitter:SetDistanceAttenuation(curve)
-- Replicate the rolloff curve from the old voice implementation
-- Default voice without the new audio API uses quadratic rolloff ranging from 7 to 80 studs
local MIN_DISTANCE = 7
local MAX_DISTANCE = 80
local CURVE_STEP_SIZE = 2
local voiceCurve = {}
for i = MIN_DISTANCE, MAX_DISTANCE, CURVE_STEP_SIZE do
voiceCurve[i] = ((i - MIN_DISTANCE) - (MAX_DISTANCE - MIN_DISTANCE))^2 / (MAX_DISTANCE - MIN_DISTANCE)^2
end
voiceCurve[MAX_DISTANCE] = 0
local function setVoiceCurve(character)
local voiceEmitter : AudioEmitter = character:WaitForChild("AudioEmitter")
voiceEmitter:SetDistanceAttenuation(voiceCurve)
end
for _, player in Players:GetPlayers() do
if player.Character then
setVoiceCurve(player.Character)
end
player.CharacterAdded:Connect(setVoiceCurve)
end