AudioEmitter

Visualizza obsoleti

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

AudioEmitter emette flussi audio nel Mondo.Fornisce un singolo Input pin che può essere collegato da uno o più Wires .Qualsiasi stream collegato a un AudioEmitter viene trasmesso nel mondo dalla posizione del parentdell'emittente.Se il genitore è un Attachment , Camera o PVInstance , la posizione mondiale del parentverrà utilizzata.Se il genitore non è una di queste Classi, il AudioEmitter è effettivamente silente.

AudioEmitters sono ascoltati da AudioListeners al fine di implementare la spatializzazione 3D.

Campioni di codice

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()

Sommario

Proprietà

Metodi

Eventi

Proprietà

AngleAttenuation

BinaryString
Sicurezza Roblox
Lettura Parallela

Rappresenta una curva volume-over-angelo che influisce sul volume con cui un AudioListener ascolterà il AudioEmitter , in base all'angolo tra loro e il LookVector associato al AudioEmitter .

Questa proprietà è interna e non può essere accessibile dagli script; esiste per supportare la replicazione. Vedi SetAngleAttenuation() per i dettagli dell'uso.

AudioInteractionGroup

Lettura Parallela

Se un AudioEmitter e un AudioListener condividono un Gruppodi interazione, allora l'ascoltatore è in grado di sentire l'emittente.

DistanceAttenuation

BinaryString
Sicurezza Roblox
Lettura Parallela

Rappresenta una curva volume-over-distance che influisce sul volume con cui un AudioListener ascolterà il AudioEmitter, in base alla distanza tra loro.

Questa proprietà è interna e non può essere accessibile dagli script; esiste per supportare la replicazione. Vedi SetDistanceAttenuation() per i dettagli dell'uso.

Lettura Parallela

Controlla quanto dettagliata debba essere la simulazione audio per questo AudioEmitter , simile a MeshPart.CollisionFidelity o MeshPart.RenderFidelity .

AudioEmitters e AudioListeners che non sono d'accordo sul livello di dettaglio necessario utilizzeranno l'opzione meno dettagliata.

Metodi

GetAngleAttenuation

Restituisce un angolo di mappatura del tavolo al volume.Le chiavi sono numeri compresi tra 0 e 180 (inclusi), mentre i valori sono numeri compresi tra 0 e 1 (inclusi) che descrivono come il volume si attenua a seconda della direzione.Questo metodo restituisce una tabella vuota se viene utilizzata la curva di attenuazione angolare predefinita.


Restituzioni

Angolo di mappatura della tabella al volume, come descritto sopra.

GetAudibilityFor

Parametri

listener: AudioListener
Valore predefinito: ""

Restituzioni

GetConnectedWires

Instances

Restituisce un array di Wires che sono connessi al pin specificato. AudioEmitter ha un pin "Input".

Parametri

pin: string
Valore predefinito: ""

Restituzioni

Instances

GetDistanceAttenuation

Restituisce una distanza di mappatura del tavolo al volume.Le chiavi sono numeri maggiori o uguali a 0, mentre i valori sono numeri tra 0 e 1 (inclusi) che descrivono come il volume si attenua a distanza.Questo metodo restituisce una tabella vuota se viene utilizzata la curva di attenuazione predefinita della distanza.


Restituzioni

GetInputPins


Restituzioni

GetInteractingListeners

Instances

Restituzioni

Instances

GetOutputPins


Restituzioni

SetAngleAttenuation

()

Imposta una curva di volume-over-angolo che influisce sul modo in cui AudioListener sentirà forte il AudioEmitter , in base all'angolo tra loro e il LookVector associato al AudioEmitter .

La curva è rappresentata da chiavi di mappatura di tabelle per gli angoli ai valori di volume.Si prevede che le chiavi siano numeri unici tra 0 e 180 (inclusi), mentre si prevede che i valori siano numeri tra 0 e 1 (inclusi).Sono supportate tabelle che contengono fino a 400 coppie chiave-valore.

Il volume del AudioEmitter da parte della prospettiva di un AudioListener a un angolo a è determinato dall'interpolazione lineare tra i livelli di volume per i punti sulla curva i cui valori di angolo sono direttamente sopra e sotto a .Se non c'è alcun punto al di sotto di a o nessun punto al di sopra di a, viene scelto il livello di volume dell'altro punto.Fondamentalmente, la curva è una sequenza di punti connessi da linee dritte, e oltre ai suoi estremi sinistra e destra, la curva si estende verso l'esterno ai loro rispettivi livelli di volume.

Questo volume sarà moltiplicato con i volumi di tutte le altre curve di attenuazione (incluse quelle sul ricevitore AudioListener ) per ottenere l'audibilità finale.

Se la tabella è vuota o nil , il AudioEmitter predefinito utilizza una curva di attenuazione dell'angolo con il valore costante del volume di 1 .

Parametri

curve: Dictionary
Valore predefinito: ""

Restituzioni

()

SetDistanceAttenuation

()

Imposta una curva di volume a distanza che influisce sul volume con cui un AudioListener ascolterà il AudioEmitter, in base alla distanza tra loro.

La curva è rappresentata da chiavi di mappatura di tabella per le distanze ai valori del volume.Le chiavi sono destinate ad essere numeri unici maggiori o uguali a 0, mentre i valori sono destinati ad essere numeri tra 0 e 1 (inclusi).Sono supportate tabelle che contengono fino a 400 coppie chiave-valore.

Il volume del AudioEmitter da parte della prospettiva di un AudioListener a una distanza d è determinato dall'interpolazione lineare tra i livelli di volume per i punti sulla curva i cui valori di distanza sono direttamente sopra e sotto d .Se non c'è alcun punto al di sotto di d o nessun punto al di sopra di d, viene scelto il livello di volume dell'altro punto.Fondamentalmente, la curva è una sequenza di punti connessi da linee dritte, e oltre ai suoi estremi sinistra e destra, la curva si estende all'infinito verso l'esterno ai loro rispettivi livelli di volume.

Questo volume sarà moltiplicato con i volumi di tutte le altre curve di attenuazione (incluse quelle sul ricevitore AudioListener ) per ottenere l'audibilità finale.

Se la tabella è vuota o nil , il AudioEmitter predefinito utilizza una curva di attenuamento della distanza determinata dalla legge inversa-quadrato.

Parametri

curve: Dictionary
Valore predefinito: ""

Restituzioni

()

Campioni di codice

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

Eventi

WiringChanged

Evento che si attiva dopo che un Wire diventa connesso o disconnesso, e che Wire è ora o era precedentemente connesso a un pin sulla AudioEmitter e a qualche altra esempiowirable.

Parametri

connected: boolean

Se l'istanza è stata connessa o disconnessa.

pin: string

Il pin sul AudioEmitter che i bersagli Wire .

wire: Wire

Il Wire tra la AudioEmitter e l'altra esempio.

instance: Instance

L'altra istanza che è o era connessa attraverso il Wire .