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 Kelasini, 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 grupinteraksi, 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

Parameter

listener: AudioListener
Nilai Default: ""

Memberikan nilai

GetConnectedWires

Instances

Kembalikan array dari Wires yang terhubung ke mengepinyang ditentukan. AudioEmitter memiliki satu mengepin"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

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

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

Acara

WiringChanged

Peristiwa yang menembak setelah Wire terhubung atau terputus, dan bahwa Wire sekarang atau sebelumnya terhubung ke pin di AudioEmitter dan ke beberapa kejadianlain 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 .