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 ra các dòng âm thanh vào thế giớ

AudioEmitters được nghe bởi AudioListeners để thực hiện 3D spatialization.

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

Thuộc Tính

AngleAttenuation

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

Đại diện một hình dạng trục dưới góc ảnh hưởng đến âm lượng mà một AudioListener đang nghe AudioEmitter, dựa trên góc giữa họ và Datatype.CFrame.LookVector|LookVector liên kết với LookVector .

Đặt tính này là nội tại và không thể được truy cập bởi các script; nó tồn tại để hỗ trợ replication. Xem SetAngleAttenuation() để thông tin 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 thấy emitter.

DistanceAttenuation

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

Đại diện một hình dạng trên khoảng cách tác động ảnh hưởng đến âm lượng mà một AudioListener đang nghe AudioEmitter, dựa trên khoảng cách giữa họ.

Đặt tính này là nội tại và không thể được truy cập bởi các script; nó tồn tại để hỗ trợ replication. Xem SetDistanceAttenuation() để thông tin chi tiết sử dụng.

Phương Pháp

GetAngleAttenuation

Điều chỉnh góc bản đồ đến âm lượng. Các chìa khóa là số từ 0 đến 180 (bao gồm), trong khi giá trị là số từ 0 đến 1> 11> (bao gồm) mô tả cách âm


Lợi Nhuận

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

GetConnectedWires

Instances

Điều khiển trả lại một loạt các Wires được kết nối với một ghimđược xác định. AudioEmitter có một ghim"Input".

Tham Số

pin: string

Lợi Nhuận

Instances

GetDistanceAttenuation

Quy đổi khoảng cách dịch chuyển của bảng đến volume. Các chìa khóa là các số lớn hơn hoặc bằng 0, trong khi giá trị là các số từ 0 đến 1 (bao gồm) mô tả cách dịch chuyển qua khoảng cách. Phương thức này trả lại một bảng trống nếu dịch chuyển mặc định được sử dụng.


Lợi Nhuận

GetInteractingListeners

Instances

Lợi Nhuận

Instances

SetAngleAttenuation

void

Đặt một đường cong âm thanh qua góc nhìn thay đổi khối lượng của một AudioListener , dựa trên góc giữa họ và AudioEmitter được kết hợp với LookVector .

Hình dạng được diễn tả bằng một bảng tính góc dùng để đại diện giá trị âm lượng. Các chìa khóa được mong đợi là những số độc nhất trong 0180 (bao gồm), trong k

Âm lượng của AudioEmitter từ góc nhìn của một AudioListener ở một góc nhìn <

Âm lượng này sẽ được nhân với các âm lượng từ tất cả các hàm chuẩn hóa khác (bao gồm những hàm chuẩn hóa trên đang nhận AudioListener ) để có được khả năng nghe 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 giá góc với giá trị âm lượng 1 .

Tham Số

curve: Dictionary

Lợi Nhuận

void

SetDistanceAttenuation

void

Đặt một đường cong trên khoảng cách vol-over-距離 ảnh hưởng đến âm lượng mà một AudioListener đang nghe AudioEmitter, dựa trên khoảng cách giữa họ.

Hình dạng được diễn tả bằng một bảng map dữ liệu để biểu tượng giá trị âm lượng. Các chìa khóa được mong đợi là những số độc nhất hơn hoặc bằng 0, trong khi giá trị được mong đợi là những số từ 0 đến 1 (bao gồm). Các bảng có chứa lên đến 400 cặp giá

Âm lượng của AudioEmitter từ góc nhìn của một AudioListener ở khoảng c

Âm lượng này sẽ được nhân với các âm lượng từ tất cả các hàm chuẩn hóa khác (bao gồm những hàm chuẩn hóa trên đang nhận AudioListener ) để có được khả năng nghe cuối cùng.

Nếu bảng trống hoặc nil, thì AudioEmitter mặc định sử dụng một đường cong giảm giáp phản xạ được xác định bởi luật phản xạ ngược.

Tham Số

curve: Dictionary

Lợi Nhuận

void

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