AudioEmitter

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

AudioEmitter emituje strumienie audio do świata.Zapewnia pojedynczą przepustkę Wejścia , którą można połączyć z jednym lub więcej Wires.Każdy strumień podłączony do AudioEmitter zostanie rozpuszczony w świecie z pozycji rodzica nadawcy.Jeśli rodzic jest Attachment , Camera lub PVInstance , pozycja świata rodzica zostanie wykorzystana.Jeśli rodzic nie jest jedną z tych klas, AudioEmitter jest skutecznie milczący.

AudioEmitters są słyszane przez AudioListeners w celu wdrożenia 3D spacjalizacji.

Przykłady kodu

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

Podsumowanie

Właściwości

Metody

Zdarzenia

Właściwości

AngleAttenuation

BinaryString
Zabezpieczenia na platformie Roblox
Odczyt równoległy

Reprezentuje krzywą objętości-przez-kąt, która wpływa na to, jak głośno AudioListener usłyszy AudioEmitter , w oparciu o kąt między nimi i LookVector związany z AudioEmitter .

Właściwość ta jest wewnętrzna i nie może być dostępna dla skryptów; istnieje, aby wspierać replikację. Zobacz SetAngleAttenuation() dla szczegółów użytkowania.

AudioInteractionGroup

Odczyt równoległy

Jeśli AudioEmitter i AudioListener dzielą się grupainterakcji, słuchacz jest w stanie usłyszeć nadawcę.

DistanceAttenuation

BinaryString
Zabezpieczenia na platformie Roblox
Odczyt równoległy

Reprezentuje krzywą objętości na odległość, która wpływa na to, jak głośno AudioListener usłyszy AudioEmitter, w oparciu o odległość między nimi.

Właściwość ta jest wewnętrzna i nie może być dostępna dla skryptów; istnieje, aby wspierać replikację. Zobacz SetDistanceAttenuation() dla szczegółów użytkowania.

Odczyt równoległy

Kontroluje, jak szczegółowa powinna być symulacja audio dla tego AudioEmitter , podobnie jak MeshPart.CollisionFidelity lub MeshPart.RenderFidelity .

AudioEmitters i AudioListeners które nie zgadzają się z niezbędnym poziomem szczegółowości, użyją mniej szczegółowej opcji.

Metody

GetAngleAttenuation

Zwraca kąt mapowania tabeli do objętości.Klucze to liczby pomiędzy 0 a 180 (włącznie), podczas gdy wartości to liczby pomiędzy 0 a 1 (włącznie) opisujące, w jaki sposób zmniejsza się objętość w zależności od kierunku.Ta metoda zwraca pustą tabelę, jeśli używana jest domyślna krzywa zmniejszenia kąta.


Zwroty

Kąt mapowania tabeli do objętości, jak opisano powyżej.

GetAudibilityFor

Parametry

listener: AudioListener
Wartość domyślna: ""

Zwroty

GetConnectedWires

Instances

Zwraca tablicę Wires, która jest połączona z określonym przypinać. AudioEmitter ma jedną przypinać"Wejście".

Parametry

pin: string
Wartość domyślna: ""

Zwroty

Instances

GetDistanceAttenuation

Zwraca odległość mapowania tabeli do objętości.Klucze to liczby większe lub równe 0, podczas gdy wartości to liczby pomiędzy 0 a 1 (włącznie) opisujące, w jaki sposób zmniejsza się głośność na odległość.Ta metoda zwraca pusty stół, jeśli używana jest domyślna krzywa ograniczenia dystansu.


Zwroty

GetInputPins


Zwroty

GetInteractingListeners

Instances

Zwroty

Instances

GetOutputPins


Zwroty

SetAngleAttenuation

()

Ustawia krzywą głośności-na-kąt, która wpływa na to, jak głośno AudioListener usłyszy AudioEmitter , w oparciu o kąt między nimi i LookVector związany z AudioEmitter .

Krzywa jest reprezentowana przez klucze mapowania tablicy do wartości objętości.Oczekuje się, że klucze będą unikalnymi numerami pomiędzy 0 a 180 (włącznie), podczas gdy wartości będą numerami pomiędzy 0 a 1 (włącznie).Wspierane są tabele zawierające do 400 par kluczowych wartości.

Głosność AudioEmitter z perspektywy AudioListener w kącie a jest określana przez liniową interpolację między poziomami objętości dla punktów na krzywej, których wartości kąta są bezpośrednio powyżej i poniżej a .Jeśli nie ma punktu poniżej a lub punktu powyżej a, wybierany jest poziom głośności innego punktu.Zasadniczo krzywa jest sekwencją punktów połączonych liniami proste, a poza jej lewym i prawym końcem krzywa rozciąga się na zewnątrz na ich odpowiednich poziomach głośności.

Ta objętość zostanie pomnożona przez objętości z wszystkich innych krzywych wygłuszania (w tym tych na odbiorze AudioListener ), aby uzyskać ostateczną słyszalność.

Jeśli tabela jest pusta lub nil , domyślnie używa się AudioEmitter kursu ograniczenia kąta z wartością stałej objętości 1 .

Parametry

curve: Dictionary
Wartość domyślna: ""

Zwroty

()

SetDistanceAttenuation

()

Ustawia krzywą głośności na odległość, która wpływa na to, jak głośno AudioListener usłyszy AudioEmitter, w oparciu o odległość między nimi.

Krzywa jest reprezentowana przez klucze mapowania tablicy do wartości objętości.Oczekuje się, że klucze będą unikalnymi numerami większymi niż lub równymi 0, podczas gdy wartości mają być liczbami pomiędzy 0 a 1 (włącznie).Wspierane są tabele zawierające do 400 par kluczowych wartości.

Głosność AudioEmitter z perspektywy AudioListener z odległością d jest określana przez liniową interpolację między poziomami głośności dla punktów na krzywej, których wartości odległości są bezpośrednio powyżej i poniżej d .Jeśli nie ma punktu poniżej d lub punktu powyżej d, wybierany jest poziom głośności innego punktu.Zasadniczo krzywa jest sekwencją punktów połączonych liniami proste, a poza jej lewym i prawym końcem krzywa rozciąga się w nieskończoność na ich odpowiednich poziomach głośności.

Ta objętość zostanie pomnożona przez objętości z wszystkich innych krzywych wygłuszania (w tym tych na odbiorze AudioListener ), aby uzyskać ostateczną słyszalność.

Jeśli tabela jest pusta lub nil , domyślnie AudioEmitter używa krzywej wygładzania dystansu określonej przez prawo odwróconego kwadratu.

Parametry

curve: Dictionary
Wartość domyślna: ""

Zwroty

()

Przykłady kodu

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

Zdarzenia

WiringChanged

Wydarzenie, które wystrzeliwuje po tym, jak Wire łączy się lub odłącza się, a które Wire jest teraz połączone lub było wcześniej połączone z przypinką na AudioEmitter i z niektórymi innymi dostępnymi instancjami.

Parametry

connected: boolean

Czy instancja została połączona czy odłączona.

pin: string

Przypinka na AudioEmitter , która jest przeznaczona dla celów Wire.

wire: Wire

The Wire pomiędzy AudioEmitter i inną instancja.

instance: Instance

Inna instancja, która jest lub była połączona za pośrednictwem Wire.