AudioEmitter

Hiển Thị Bản Đã Lỗi Thời

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

AudioEmitter phát luồng âm thanh ra thế giới.Nó cung cấp một đầu nhập duy nhất có thể được kết nối với bởi một hoặc nhiều Wires .Bất kỳ luồng nào được kết nối với một AudioEmitter được phát sóng ra thế giới từ vị trí của cha của người phát.Nếu cha là một Attachment , Camera hoặc PVInstance , vị trí thế giới của cha sẽ được sử dụng.Nếu cha không phải là một trong những lớp này, AudioEmitter là hiệu quả im lặng.

AudioEmitters được nghe bởi AudioListeners để thực hiện không gian hóa 3D.

Mẫu mã

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

Tóm Tắt

Thuộc Tính

Phương Pháp

Sự Kiện

Thuộc Tính

AngleAttenuation

BinaryString
Bảo Mật Roblox
Đọc Song Song

Biểu diễn một đường cong âm lượng-theo-góc ảnh hưởng đến cách lớn tiếng một AudioListener sẽ nghe được AudioEmitter , dựa trên góc giữa chúng và LookVector liên quan đến AudioEmitter .

Thuộc tính này là nội bộ và không thể truy cập bởi các kịch bản; nó tồn tại để hỗ trợ sao chép. Xem SetAngleAttenuation() đối với chi tiết sử dụng.

AudioInteractionGroup

Đọc Song Song

Nếu một AudioEmitter và một AudioListener chia sẻ một nhóm tương tác, thì người lắng nghe có thể nghe được người phát.

DistanceAttenuation

BinaryString
Bảo Mật Roblox
Đọc Song Song

Biểu diễn một đường cong âm lượng qua khoảng cách ảnh hưởng đến cách mạnh mẽ mà AudioListener sẽ nghe được AudioEmitter , dựa trên khoảng cách giữa chúng.

Thuộc tính này là nội bộ và không thể truy cập bởi các kịch bản; nó tồn tại để hỗ trợ sao chép. Xem SetDistanceAttenuation() đối với chi tiết sử dụng.

Đọc Song Song

Phương Pháp

GetAngleAttenuation

Trả về một góc độ bản đồ bảng lên khối lượng.Các chìa khóa là số từ 0 đến 180 (bao gồm), trong khi các giá trị là số từ 0 đến 1 (bao gồm) mô tả cách giảm âm lượng tùy thuộc vào hướng.Phương pháp này trả về một bảng trống nếu đường cong giảm thiểu góc mặc định đang được sử dụng.


Lợi Nhuận

Góc định vị bảng đến âm lượng, như đã mô tả ở trên.

GetAudibilityFor

Tham Số

listener: AudioListener
Giá Trị Mặc Định: ""

Lợi Nhuận

GetConnectedWires

Instances

Trả về một array của Wires được kết nối với ghimđầu vào được chỉ định. AudioEmitter có một ghim"Input".

Tham Số

pin: string
Giá Trị Mặc Định: ""

Lợi Nhuận

Instances

GetDistanceAttenuation

Trả về khoảng cách bản đồ bảng lên khối lượng.Chìa khóa là số lớn hơn hoặc bằng 0, trong khi giá trị là số nằm giữa 0 và 1 (bao gồm) mô tả cách giảm âm lượng theo khoảng cách.Phương pháp này trả về một bảng trống nếu đường cong giảm khoảng cách mặc định đang được sử dụng.


Lợi Nhuận

GetInputPins


Lợi Nhuận

GetInteractingListeners

Instances

Lợi Nhuận

Instances

GetOutputPins


Lợi Nhuận

SetAngleAttenuation

()

Đặt một đường cong âm lượng-theo-góc ảnh hưởng đến cách lớn tiếng một AudioListener sẽ nghe được AudioEmitter , dựa trên góc giữa chúng và LookVector liên quan đến AudioEmitter .

Đường cong được biểu diễn bằng các phím đại diện cho góc bản đồ bảng đến giá trị khối lượng.Các chìa khóa được mong đợi là các số duy nhất giữa 0180 (bao gồm), trong khi các giá trị được mong đợi là các số giữa 01 (bao gồm).Các bảng chứa tối đa 400 cặp chìa khóa-giá trị được hỗ trợ.

Âm lượng của AudioEmitter từ quan điểm của một AudioListener ở một góc a được xác định bằng cách dịch chuyển song song giữa các cấp độ âm lượng cho các điểm trên đường cong mà các giá trị góc của chúng nằm trực tiếp trên và dưới a .Nếu không có điểm nào dưới a hoặc không có điểm nào trên a , cấp độ âm lượng của điểm khác được chọn.Về cơ bản, đường cong là một chuỗi các điểm được kết nối bởi các đường thẳng, và ngoài các điểm cuối cùng bên trái và bên phải, đường cong mở rộng ra ngoài tại các mức âm lượng tương ứng của chúng.

Khối lượng này sẽ được nhân với các khối lượng từ tất cả các đường cong giảm thanh khác (bao gồm cả những khối lượng trên đường nhận AudioListener ) để có được độ lớn cuối cùng.

Nếu bảng trống hoặc nil , AudioEmitter mặc định sử dụng một đường cong giảm góc với giá trị tĩnh của volume là 1 .

Tham Số

curve: Dictionary
Giá Trị Mặc Định: ""

Lợi Nhuận

()

SetDistanceAttenuation

()

Đặt một đường cong âm lượng qua khoảng cách ảnh hưởng đến cách to lớn một AudioListener sẽ nghe được AudioEmitter , dựa trên khoảng cách giữa chúng.

Đường cong được đại diện bởi các phím định vị khoảng cách bản đồ bảng đến giá trị khối lượng.Các chìa khóa được mong đợi là các số duy nhất lớn hơn hoặc bằng 0, trong khi các giá trị được mong đợi là các số từ 0 đến 1 (bao gồm cả).Các bảng chứa tối đa 400 cặp chìa khóa-giá trị được hỗ trợ.

Âm lượng của AudioEmitter từ quan điểm của một AudioListener ở một khoảng cách d được xác định bằng cách dịch chuyển song song giữa các mức âm lượng cho các điểm trên đường cong có giá trị khoảng cách trực tiếp trên và dưới d .Nếu không có điểm nào dưới d hoặc không có điểm nào trên d , cấp độ âm lượng của điểm khác được chọn.Về cơ bản, đường cong là một chuỗi các điểm được kết nối bởi các đường thẳng, và ngoài các điểm cuối cùng bên trái và bên phải, đường cong mở rộng vô cực tại các mức âm lượng tương ứng của chúng.

Khối lượng này sẽ được nhân với các khối lượng từ tất cả các đường cong giảm thanh khác (bao gồm cả những khối lượng trên đường nhận AudioListener ) để có được độ lớn cuối cùng.

Nếu bảng trống hoặc nil , AudioEmitter mặc định sử dụng một đường cong giảm khoảng cách được xác định bởi luật đảo ngược vuông góc.

Tham Số

curve: Dictionary
Giá Trị Mặc Định: ""

Lợi Nhuận

()

Mẫu mã

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

Sự Kiện

WiringChanged

Sự kiện xảy ra sau khi một Wire được kết nối hoặc mất kết nối, và sự kiện Wire bây giờ hoặc đã từng kết nối với một chốt trên AudioEmitter và một số ví ví dụ / trường hợpkhác có thể kết nối được.

Tham Số

connected: boolean

Whether ví dụ đã kết nối hay mất kết nối.

pin: string

Chốt trên AudioEmitter mà mục tiêu Wire nhắm.

wire: Wire

Các Wire giữa AudioEmitter và ví dụ / trường hợpkhác.

instance: Instance

Các ví dụ khác được kết nối thông qua Wire .