AudioEmitter

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

AudioEmitter dünyaya ses yayınları yayınlayır.Bir veya daha fazla ile bağlanabilen tek bir Giriş düğmesi sağlar.Herhangi bir yayın, AudioEmitter bir yayıncının ebeveyn konumundan dünyaya yayınlanır.Ebeveyn bir Attachment , Camera veya PVInstance ise, ebeveynin dünya konumu kullanılacaktır.Ebeveyn bu sınıflardan biri değilse, AudioEmitter etkili olarak sessizdir.

AudioEmitters 3B uzaylaştırmayı uygulamak için AudioListeners tarafından duyulur.

Kod Örnekleri

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

Özet

Özellikler

Yöntemler

Etkinlikler

Özellikler

AngleAttenuation

BinaryString
Roblox Güvenliği
Paralel oku

Bir AudioListener 'nin AudioEmitter 'yi ne kadar yüksek sesle duyacağını etkileyen bir açı-üzerinde-hacim eğrisini temsil eder, aralarındaki açı ve LookVector ile bağlantılı olan AudioEmitter ile ilgili.

Bu özellik içseldir ve skriptler tarafından erişilemez; replikasyonu desteklemek için var olur. Kullanım ayrıntılarına SetAngleAttenuation().

AudioInteractionGroup

Paralel oku

Bir AudioEmitter ve bir AudioListener bir etkileşim gruppaylaşırsa, dinleyici yayıncıyı duyabilir.

DistanceAttenuation

BinaryString
Roblox Güvenliği
Paralel oku

Aralarındaki mesafeye göre ne kadar yüksek sesle duyacağını etkileyen bir hacim-mesafe eğrisini temsil eder, buna göre mesafe arasındaki.

Bu özellik içseldir ve skriptler tarafından erişilemez; replikasyonu desteklemek için var olur. Kullanım ayrıntılarına SetDistanceAttenuation().

Paralel oku

Yöntemler

GetAngleAttenuation

Bir tabloyu hacime yönlendiren bir tablo açısı döndürür.Anahtarlar 0 ve 180 (dahil) arasındaki sayılardır, değerler ise 0 ve 1 (dahil) arasındaki sayılar, hacmin yönüne bağlı olarak azaldığını tanımlar.Bu yöntem varsayılan açı azaltma eğrisi kullanılıyorsa boş bir tablo döndürür.


Dönüşler

Aşağıda açıklandığı gibi tablo sınırlama açısının hacme dönüştürülmesi.

GetAudibilityFor

Parametreler

listener: AudioListener
Varsayılan değer: ""

Dönüşler

GetConnectedWires

Instances

Belirtilen sabitlebağlı bir dizi Wires döndürür. AudioEmitter 'in bir "Giriş" sabitlevardır.

Parametreler

pin: string
Varsayılan değer: ""

Dönüşler

Instances

GetDistanceAttenuation

Bir tabloyu hacime yönlendiren mesafe uzaklığını döndürür.Anahtarlar 0'dan büyük veya eşit olan sayılardır, değerler ise 0 ile 1 arasındaki sayılardır (dahil), hacmin mesafeye nasıl azaldığını tanımlar.Bu yöntem varsayılan mesafe azaltma eğrisi kullanılıyorsa boş bir tablo döndürür.


Dönüşler

GetInputPins


Dönüşler

GetInteractingListeners

Instances

Dönüşler

Instances

GetOutputPins


Dönüşler

SetAngleAttenuation

()

Bir AudioListener 'nin AudioEmitter 'yi ne kadar yüksek sesle duyacağını etkileyen bir açı-üzerinde-hacim eğrisi ayarlar, aralarındaki açı ve LookVector ile bağlantılı olan AudioEmitter ile ilgili.

Eğilim, hacim değerlerine bir tablo eşleştirme açısı anahtarları ile temsil edilir.Anahtarlar 0 ve 180 (dahil) arasında benzersiz sayılar olması beklenirken, değerler 0 ve 1 (dahil) arasında olmalıdır.400 anahtar-değer çiftine kadar içeren tablolar desteklenir.

bir açıda bir çizginin noktalarının açı değerleri doğrudan üstünde ve aşağıda bulunan volüm seviyeleri arasında lineer olarak yer değiştirerek çizginin hacmi, eğil açısından bir bakış açısından belirlenir.Eğer aşağıda a veya yukarıda a nokta yoksa, diğer noktanın ses seviyesi seçilir.Temel olarak, eğilim düz çizgilerle bağlantılı bir nokta dizisidir ve sol ve sağ uç noktalarının ötesinde, eğilim kendi hacim seviyelerinde dışarı genişler.

Bu hacim, tüm diğer azaltma eğrilerinin (alıcı AudioListener dahil) hacimleriyle çarpılacak ve son kullanılabilirliği elde edilecektir.

Tablo boş veya nil ise, AudioEmitter sabit hacim değeri ile bir açı azaltma eğrisi kullanmaya varsayılır 1.

Parametreler

curve: Dictionary
Varsayılan değer: ""

Dönüşler

()

SetDistanceAttenuation

()

Aralarındaki mesafeye göre ne kadar yüksek sesle AudioListener duyacağını etkileyen bir hacim-mesafe eğrisi ayarlar, AudioEmitter , onlar arasındaki mesafeye göre.

Eğilim, bir tablo aracılığıyla hacim değerlerine yönlendiren bir tablo aracılığıyla temsil edilir. The curve is represented by a table mapping distance keys to volume values.Anahtarlar 0'dan büyük veya eşit olan benzersiz sayılar olması beklenirken, değerler 0 ile 1 arasında olmalıdır (dahil).400 anahtar-değer çiftine kadar içeren tablolar desteklenir.

uzaktaki bir çizginin noktalarının uzaklık değerleri doğrudan üstünde veya aşağıda olan volüm seviyeleri arasında lineer olarak yer değiştirilerek hacmin belirlenir. The volume of the from the perspective of a at a distance is determined by linearly interpolating between the volume levels for the points on the curve whose distance values are directly above and below .Eğer aşağıda d veya yukarıda d nokta yoksa, diğer noktanın ses seviyesi seçilir.Temel olarak, eğilim düz çizgilerle bağlantılı bir nokta serisidir ve sol ve sağ uç noktalarının ötesinde, eğilim sınırsız olarak kendi hacim seviyelerinde dışarı genişler.

Bu hacim, tüm diğer azaltma eğrilerinin (alıcı AudioListener dahil) hacimleriyle çarpılacak ve son kullanılabilirliği elde edilecektir.

Tablo boş veya nil ise, varsayılan AudioEmitter ters kare yasası tarafından belirlenen bir mesafe azaltma eğrisi kullanır.

Parametreler

curve: Dictionary
Varsayılan değer: ""

Dönüşler

()

Kod Örnekleri

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

Etkinlikler

WiringChanged

Bir bağlantı kurulduktan veya bağlantı kesildikten sonra ateşlenen olay, şimdi şu veya daha önce başka bir sabit parçaya ve bazı diğer kullanılabilir durumlara bağlandı veya bağlantı kesildi.

Parametreler

connected: boolean

Instans bağlandı veya bağlantı kesildi.

pin: string

Hedeflerin AudioEmitter üzerindeki düğme. The pin on the that the Wire targets.

wire: Wire

Wire arasındaki AudioEmitter ve diğer durumarasındaki.

instance: Instance

Wire aracılığıyla bağlantı kurulan diğer örnek.