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 grubunu paylaşı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

Ses simülasyonunun bu için ne kadar detaylı olması gerektiğini kontrol eder, örneğin veya gibi.

AudioEmitters ve AudioListeners ki gerekli ayrıntı seviyesinde hemfikir olmayanlar daha az ayrıntılı seçeneği kullanacak.

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

Bu yayıncının belirli bir AudioListener için ne kadar duyulabilir olduğunu hesaplar.Sonuçlanan hacim, 0 ile 1 arasında değişen, yayıncı ve alıcı üzerinde mesafe ve açı azaltmasını temsil eder.

Parametreler

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

Dönüşler

GetConnectedWires

Instances

Belirtilen pine bağlı bir dizi Wires döndürür. AudioEmitter 'in bir "Giriş" pini vardı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

Yayıncı ile paylaşan bir AudioListeners dizi döndürür AudioInteractionGroup ile yayıncı.


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

Özel Mesafe Azaltma

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 -- 10 mil mesafede, dinleyiciler bu yayıncıyı tüm ses seviyesinde duyar
curve[100] = 0.4 -- 100 mil uzaklıkta, dinleyiciler bu yayıncıyı %40 oranında duyar
curve[300] = 0 -- 300 miltten daha uzak herhangi bir mesafede, dinleyiciler bu yayıcıyı duyamaz
emitter:SetDistanceAttenuation(curve)
-- Eski ses uygulamasından yuvarlanma eğrisini yeniden yapın
-- Yeni ses API'si olmadan varsayılan ses, 7 ila 80 damga arasında kare düşüş kullanır
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 örnek arasındaki.

instance: Instance

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