AudioEmitter
*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
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
Yayılan sesin algılanan sesi, ve ile bağlantılı olan açıya göre nasıl değiştiğini temsil eder.
Bunu duyabilen kontroller AudioListeners . Bu AudioEmitter .
Yayılan sesin algılanan sesi, bir AudioListener ve AudioEmitter arasındaki mesafe arttıkça nasıl değiştiğini temsil eder.
Yöntemler
AudioEmitter tarafından kullanılan açı azaltma eğrisini alır veya varsayılan eğriyi kullanıyorsa boş bir tablo.
Belirtilen sabitlebağlı bir dizi Wires döndürür, ki bu pine bağlıdır.
AudioEmitter tarafından kullanılan mesafe azaltma eğrisini alır veya varsayılan eğriyi kullanıyorsa boş bir tablo.
AudioEmitter kullanması gereken açı azaltma eğrisini ayarlar veya verilmezse sabit bir hacim eğrisi kullanır 1 .
AudioEmitter tarafından kullanılması gereken mesafe azaltma eğrisini ayarlar veya verilmezse ters bir azalma eğrisi kullanır.
Etkinlikler
Başka bir örnek AudioEmitter üzerinden bir Wire aracılığıyla bağlanır veya bağlantı kesilirse ateş eder.
Özellikler
AngleAttenuation
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
Bir AudioEmitter ve bir AudioListener bir etkileşim gruppaylaşırsa, dinleyici yayıncıyı duyabilir.
DistanceAttenuation
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().
SimulationFidelity
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.
GetConnectedWires
Belirtilen sabitlebağlı bir dizi Wires döndürür. AudioEmitter 'in bir "Giriş" sabitlevardır.
Parametreler
Dönüşler
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
GetInteractingListeners
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
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
Dönüşler
Kod Örnekleri
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
Instans bağlandı veya bağlantı kesildi.
Hedeflerin AudioEmitter üzerindeki düğme. The pin on the that the Wire targets.
Wire arasındaki AudioEmitter ve diğer durumarasındaki.