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ę grupą interakcji, 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

Oblicza, jak słyszalny jest ten emiter dla konkretnego AudioListener.Wynikowa objętość, wahająca się od 0 do 1, stanowi odległość i zmniejszenie kąta na obu emiterze i odbiorcy.

Parametry

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

Zwroty

GetConnectedWires

Instances

Zwraca tablicę Wires, która jest połączona z określonym przypinką. AudioEmitter ma jedną przypinkę "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

Zwraca tablicę AudioListeners, która dzieli się AudioInteractionGroup z emiterem.


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

Niestandardowa redukcja dystansu

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 -- W odległości 10 metrów słuchacze słyszą ten emiter w pełnym głośności
curve[100] = 0.4 -- Na odległość 100 metrów słuchacze słyszą ten emiter przy głośności 40%
curve[300] = 0 -- Na dowolnej odległości dalej niż 300 metrów słuchacze nie mogą usłyszeć tego emitera
emitter:SetDistanceAttenuation(curve)
-- Odtwórz krzywą wycofania z poprzedniej implementacji głosu
-- Domyślny głos bez nowego interfejsu audio używa wykładniczej redukcji o zakresie od 7 do 80 szpilkami
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ą instancją.

instance: Instance

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