AudioEmitter

Afficher les obsolètes

*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 bouton qui peut être connecté à un ou plusieurs Wires .Tous les flux connectés à un AudioEmitter sont diffusés dans le monde à partir de la position du parent de l'émetteur.Si le parent est un Attachment , Camera ou PVInstance , la position mondiale du parent sera utilisée.Si le parent n'est pas l'une de ces Classes, le AudioEmitter est effectivement silencieux.

AudioEmitters sont entendus par AudioListeners afin d'implémenter la spatialisation 3D.

Échantillons de code

Playing one asset from multiple 3d locations at once

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

Méthodes

Évènements

Propriétés

AngleAttenuation

BinaryString
Sécurité Roblox
Lecture parallèle

Représente une courbe volume-sur-angle qui affecte la façon dont un AudioListener entendra fortement le AudioEmitter , en fonction de l'angle entre eux et du LookVector associé au AudioEmitter .

Cette propriété est interne et ne peut pas être accessible par des scripts ; elle existe pour soutenir la réplication. Voir SetAngleAttenuation() pour les détails d'utilisation.

AudioInteractionGroup

Lecture parallèle

Si un AudioEmitter et un AudioListener partagent un groupe d'interaction, le récepteur est capable d'entendre l'émetteur.

DistanceAttenuation

BinaryString
Sécurité Roblox
Lecture parallèle

Représente une courbe de volume à distance qui affecte la façon dont un AudioListener entendra fortement le AudioEmitter, en fonction de la distance entre eux.

Cette propriété est interne et ne peut pas être accessible par des scripts ; elle existe pour soutenir la réplication. Voir SetDistanceAttenuation() pour les détails d'utilisation.

Lecture parallèle

Méthodes

GetAngleAttenuation

Renvoie un angle de mapping de table au volume.Les clés sont des nombres entre 0 et 180 (inclus), tandis que les valeurs sont des nombres entre 0 et 1 (inclus) décrivant comment le volume s'atténue en fonction de la direction.Cette méthode renvoie une table vide si la courbe d'atténuation de l'angle par défaut est utilisée.


Retours

Angle de mapping de table vers le volume, comme décrit ci-dessus.

GetAudibilityFor

Paramètres

listener: AudioListener
Valeur par défaut : ""

Retours

GetConnectedWires

Instances

Retourne un ensemble d'Wires qui sont connectés au épinglerspécifié. AudioEmitter a un épingler« Entrée ».

Paramètres

pin: string
Valeur par défaut : ""

Retours

Instances

GetDistanceAttenuation

Renvoie une distance de mapping de table vers le volume.Les clés sont des nombres supérieurs ou égaux à 0, tandis que les valeurs sont des nombres entre 0 et 1 (inclus) décrivant comment le volume s'atténue à distance.Cette méthode renvoie une table vide si la courbe de réduction de distance par défaut est utilisée.


Retours

GetInputPins


Retours

GetInteractingListeners

Instances

Retours

Instances

GetOutputPins


Retours

SetAngleAttenuation

()

Définit une courbe de volume par rapport à l'angle qui affecte la façon dont un AudioListener entendra fortement le AudioEmitter , en fonction de l'angle entre eux et du LookVector associé au AudioEmitter .

La courbe est représentée par des clés de mapping de table pour les valeurs de volume.Les clés sont attendues comme des nombres uniques entre 0 et 180 (inclus), tandis que les valeurs sont attendues comme des nombres entre 0 et 1 (inclus).Les tables contenant jusqu'à 400 paires clé-valeur sont prises en charge.

Le volume du AudioEmitter de la perspective d'un AudioListener à un angle a est déterminé par l'interpolation linéaire entre les niveaux de volume pour les points sur la courbe dont les valeurs d'angle sont directement au-dessus et en dessous de a .S'il n'y a pas de point au-dessous de a ou de point au-dessus de a, le niveau de volume de l'autre point est choisi.Fondamentalement, la courbe est une séquence de points connectés par des lignes droites, et au-delà de ses extrémités gauche et droite, la courbe s'étend vers l'extérieur à leurs niveaux de volume respectifs.

Ce volume sera multiplié par les volumes de toutes les autres courbes d'atténuation (y compris ceux sur la réception AudioListener ) pour obtenir l'audibilité finale.

Si la table est vide ou nil , le AudioEmitter défaut utilise une courbe d'atténuation d'angle avec la valeur de volume constant de 1 .

Paramètres

curve: Dictionary
Valeur par défaut : ""

Retours

()

SetDistanceAttenuation

()

Définit une courbe de volume à distance qui affecte la façon dont un AudioListener entendra fortement le AudioEmitter, en fonction de la distance entre eux.

La courbe est représentée par des clés de distance de mapping de table vers des valeurs de volume.Les clés sont attendues comme des nombres uniques supérieurs ou égaux à 0, tandis que les valeurs sont attendues comme des nombres entre 0 et 1 (inclusifs).Les tables contenant jusqu'à 400 paires clé-valeur sont prises en charge.

Le volume du AudioEmitter de la perspective d'un AudioListener à une distance d est déterminé par l'interpolation linéaire entre les niveaux de volume pour les points sur la courbe dont les valeurs de distance sont directement au-dessus et en dessous de d .S'il n'y a pas de point au-dessous de d ou de point au-dessus de d, le niveau de volume de l'autre point est choisi.Fondamentalement, la courbe est une séquence de points connectés par des lignes droites, et au-delà de ses extrémités gauche et droite, la courbe s'étend à l'infini vers l'extérieur à leur niveau de volume respectif.

Ce volume sera multiplié par les volumes de toutes les autres courbes d'atténuation (y compris ceux sur la réception AudioListener ) pour obtenir l'audibilité finale.

Si la table est vide ou nil , le AudioEmitter défaut utilise une courbe d'atténuation de distance déterminée par la loi inverse-carré.

Paramètres

curve: Dictionary
Valeur par défaut : ""

Retours

()

Échantillons de code

Custom Distance Attenuation

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

Évènements

WiringChanged

Événement qui se déclenche après qu'un Wire devienne connecté ou déconnecté, et que Wire soit maintenant ou ait été précédemment connecté à un bouton sur le AudioEmitter et à une autre instance wirable.

Paramètres

connected: boolean

Si l'instance s'est connectée ou déconnectée.

pin: string

L'épingle sur le AudioEmitter que les cibles Wire .

wire: Wire

Le Wire entre la AudioEmitter et l'autre instance.

instance: Instance

L'autre instance qui est ou était connectée via le Wire.