AudioEmitter

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

AudioEmitter memancarkan aliran audio ke dunia.Ini menyediakan satu Input pin yang dapat terhubung ke oleh satu atau lebih Wires .Setiap aliran yang terhubung ke AudioEmitter diberikan ke dunia dari posisi orangtua pemancar.Jika orangtua adalah Attachment , Camera , atau PVInstance , posisi dunia orangtua akan digunakan.Jika orangtua bukan salah satu kelas ini, AudioEmitter efektif diam.

AudioEmitters didengar oleh AudioListeners untuk menerapkan spasialisasi 3D.

Contoh Kode

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

Rangkuman

Properti

Metode

Acara

Properti

AngleAttenuation

BinaryString
Keamanan Roblox
Baca Paralel

Mewakili kurva volume-over-angle yang mempengaruhi seberapa keras AudioListener akan mendengar AudioEmitter , berdasarkan sudut di antara mereka dan LookVector yang terkait dengan AudioEmitter .

Properti ini internal dan tidak dapat diakses oleh skrip; ada untuk mendukung replikasi. Lihat SetAngleAttenuation() untuk rincian penggunaan.

AudioInteractionGroup

Baca Paralel

Jika AudioEmitter dan AudioListener berbagi kelompok interaksi, maka pendengar dapat mendengar pemancar.

DistanceAttenuation

BinaryString
Keamanan Roblox
Baca Paralel

Mewakili kurva volume-over-jarak yang mempengaruhi seberapa keras AudioListener akan mendengar AudioEmitter, berdasarkan jarak di antara mereka.

Properti ini internal dan tidak dapat diakses oleh skrip; ada untuk mendukung replikasi. Lihat SetDistanceAttenuation() untuk rincian penggunaan.

Baca Paralel

Mengontrol seberapa terperinci simulasi audio harus untuk ini AudioEmitter , mirip dengan MeshPart.CollisionFidelity atau MeshPart.RenderFidelity .

AudioEmitters dan AudioListeners yang tidak setuju dengan tingkat rincian yang diperlukan akan menggunakan opsi yang kurang terperinci.

Metode

GetAngleAttenuation

Kembalikan sudut pemetaan tabel ke volume.Kunci adalah angka di antara 0 dan 180 (termasuk), sementara nilai adalah angka di antara 0 dan 1 (termasuk) yang menggambarkan bagaimana volume berkurang tergantung pada arah.Metode ini menghasilkan tabel kosong jika kurva penurunan sudut default digunakan.


Memberikan nilai

Sudut peta tabel ke volume, seperti yang dijelaskan di atas.

GetAudibilityFor

Menghitung seberapa terdengar pemancar ini untuk khusus AudioListener .Volume yang dihasilkan, berkisar dari 0 hingga 1 , menyumbang penurunan jarak dan sudut pada pemancar dan pendengar.

Parameter

listener: AudioListener
Nilai Default: ""

Memberikan nilai

GetConnectedWires

Instances

Kembalikan array dari Wires yang terhubung ke pin yang ditentukan. AudioEmitter memiliki satu pin "Input".

Parameter

pin: string
Nilai Default: ""

Memberikan nilai

Instances

GetDistanceAttenuation

Kembalikan jarak pemetaan tabel ke volume.Kunci adalah angka lebih besar atau sama dengan 0, sementara nilai adalah angka antara 0 dan 1 (termasuk) yang menggambarkan bagaimana volume menurun dari jarak.Metode ini men返回 kosong meja jika kurva penyusutan jarak default digunakan.


Memberikan nilai

GetInputPins


Memberikan nilai

GetInteractingListeners

Instances

Kembalikan array dari AudioListeners yang berbagi AudioInteractionGroup dengan pemancar.


Memberikan nilai

Instances

GetOutputPins


Memberikan nilai

SetAngleAttenuation

()

Mengatur kurva volume-over-angle yang mempengaruhi seberapa keras AudioListener akan mendengar AudioEmitter , berdasarkan sudut di antara mereka dan LookVector yang terkait dengan AudioEmitter .

Lengkungan diwakili oleh kunci peta tabel ke nilai volume.Diharapkan kunci menjadi angka unik di antara 0 dan 180 (termasuk), sementara nilai diharapkan menjadi angka di antara 0 dan 1 (termasuk).Tabel yang berisi hingga 400 pasangan kunci-nilai dapat didukung.

Volume dari AudioEmitter dari perspektif sebuah AudioListener pada sudut a ditentukan dengan interpolasi linier di antara tingkat volume untuk titik-titik pada kurva yang nilai sudutnya berada langsung di atas dan di bawah a .Jika tidak ada poin di bawah a atau tidak ada poin di atas a , tingkat volume dari titik lain dipilih.Pada dasarnya, kurva adalah serangkaian titik yang terhubung oleh garis lurus, dan di luar titik akhir kiri dan kanannya, kurva memanjang ke luar pada tingkat volume masing-masing.

Volume ini akan dikalikan dengan volume dari semua kurva penyempurnaan lainnya (termasuk yang di terima AudioListener ) untuk mendapatkan audibilitas akhir.

Jika tabel kosong atau nil , AudioEmitter default menggunakan kurva penurunan sudut dengan nilai konstan volume 1 .

Parameter

curve: Dictionary
Nilai Default: ""

Memberikan nilai

()

SetDistanceAttenuation

()

Mengatur kurva volume-over- jarak yang mempengaruhi seberapa keras AudioListener akan mendengar AudioEmitter, berdasarkan jarak di antara mereka.

Lengkungan diwakili oleh kunci peta tabel ke jarak volume.Diharapkan kunci adalah angka unik lebih besar dari atau sama dengan 0, sementara nilai diharapkan menjadi angka antara 0 dan 1 (termasuk).Tabel yang berisi hingga 400 pasangan kunci-nilai dapat didukung.

Volume dari AudioEmitter dari perspektif sebuah AudioListener pada jarak d ditentukan dengan interpolasi linier di antara tingkat volume untuk titik-titik pada kurva yang jaraknya langsung di atas dan di bawah d .Jika tidak ada poin di bawah d atau tidak ada poin di atas d , tingkat volume dari titik lain dipilih.Pada dasarnya, kurva adalah serangkaian titik yang terhubung oleh garis lurus, dan di luar titik akhir kiri dan kanannya, kurva memanjang tanpa batas di tingkat volume masing-masing.

Volume ini akan dikalikan dengan volume dari semua kurva penyempurnaan lainnya (termasuk yang di terima AudioListener ) untuk mendapatkan audibilitas akhir.

Jika tabel kosong atau nil , AudioEmitter default menggunakan kurva penurunan jarak yang ditentukan oleh hukum kuadrat terbalik.

Parameter

curve: Dictionary
Nilai Default: ""

Memberikan nilai

()

Contoh Kode

Penurunan Jarak Kustom

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 -- Dalam jarak 10 stud, pendengar mendengar emitor ini dengan volume penuh
curve[100] = 0.4 -- Pada jarak 100 stud, pendengar mendengar emitor ini pada volume 40%
curve[300] = 0 -- Pada jarak lebih dari 300 stud, pendengar tidak dapat mendengar emitor ini
emitter:SetDistanceAttenuation(curve)
-- Replikasikan kurva rolloff dari implementasi suara lama
-- Suara default tanpa API audio baru menggunakan rolloff quadrat yang berkisar dari 7 hingga 80 stud
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

Acara

WiringChanged

Peristiwa yang menembak setelah Wire terhubung atau terputus, dan bahwa Wire sekarang atau sebelumnya terhubung ke pin di AudioEmitter dan ke beberapa instansi lain yang dapat ditransmisikan.

Parameter

connected: boolean

Apakah instansi terhubung atau terputus.

pin: string

Pin pada AudioEmitter yang menjadi target Wire .

wire: Wire

The Wire antara AudioEmitter dan instansi lainnya.

instance: Instance

Instansi lain yang terhubung atau terhubung melalui Wire .