AudioEmitter

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

AudioEmitter เปิดสตรีมอินพุตเข้าสู่

AudioEmitters ได้ยินโดย AudioListeners เพื่อให้เปิดใช้งาน 3D สเปซไดรฟ์

ตัวอย่างโค้ด

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

สรุป

คุณสมบัติ

  • AngleAttenuation:BinaryString
    การรักษาความปลอดภัยของ Roblox
    อ่านพร้อมๆ กัน

    เป็นตัวแทนว่าปริมาณเสียงที่รับรู้ของเสียงที่ปล่อยออกจะเปลี่ยนแปลงตามมุมระหว่าง AudioListener และ LookVector ที่เกี่ยวข้องกับ AudioEmitter

  • อ่านพร้อมๆ กัน

    ควบคุมซึ่ง AudioListeners สามารถได้ยินนี่ AudioEmitter .

  • DistanceAttenuation:BinaryString
    การรักษาความปลอดภัยของ Roblox
    อ่านพร้อมๆ กัน

    แสดงวิธีที่ระดับเสียงที่ได้รับการเปลี่ยนแปลงตามระยะทางระหว่าง AudioListener และ AudioEmitter เพิ่มขึ้น

วิธีการ

  • รับค่าเฉลี่ยมุมที่ใช้โดย AudioEmitter หรือรับตารางว่างหากใช้ค่าเฉลี่ยมุมเริ่มต้น

  • GetConnectedWires(pin : string):Instances

    กลับรายการ Wires ปักหมุด

  • รับค่าความเสียหายทางระยะที่ใช้โดย AudioEmitter หรือรับค่าความเสียหายทางระยะที่ว่างเปล่าหากใช้ค่าความเสียหายทางระยะเริ่มต้น

  • ตั้งค่าความเสียหายเหลี่ยมของมุมที่ AudioEmitter ควรใช้หรือใช้ความเสียหายเหลี่ยมของมุมที่ 1 หากไม่มีให้

  • ตั้งค่าความเสียหายเวลาที่เกิดขึ้นจริงที่ AudioEmitter ควรใช้หรือใช้ความเสียหายเวลาถอยหลังหากไม่มีให้

คุณสมบัติ

AngleAttenuation

BinaryString
การรักษาความปลอดภัยของ Roblox
อ่านพร้อมๆ กัน

เป็นตัวแทนของโค้งสี่เหลี่ยมที่มีความเคลื่อนไหวของมุมที่ส่งผลกระทบต่อความดังของ AudioListener โดยมีมุมระหว่างพวกเขาและ AudioEmitter ที่เกี่ย

สมบัตินี้เป็นสมบัติภายในและไม่สามารถเข้าถึงได้โดยสคริปต์; มันมีไว้เพื่อสนับสนุนการเลียนแบบ ดู SetAngleAttenuation() สำหรับรายละเอียดการใช้งาน.

AudioInteractionGroup

อ่านพร้อมๆ กัน

หาก AudioEmitter และ AudioListener แชร์กลุ่มการโต้ตอบ ผู้ฟังจะสามารถได้ยินเอมิตเตอร์

DistanceAttenuation

BinaryString
การรักษาความปลอดภัยของ Roblox
อ่านพร้อมๆ กัน

แทนที่คันเลื่อนระยะเวลาที่มีผลกระทบต่อปริมาณเสียงที่ได้ยินได้ระหว่างพวกเขา โดยพิจารณาจากระยะเวลาระหว่างพวกเขา

สมบัตินี้เป็นสมบัติภายในและไม่สามารถเข้าถึงได้โดยสคริปต์; มันมีไว้เพื่อสนับสนุนการเลียนแบบ ดู SetDistanceAttenuation() สำหรับรายละเอียดการใช้งาน.

วิธีการ

GetAngleAttenuation

กลับมุมมองโต๊ะสู่พิเศษ กุญแจเป็นตัวเลขระหว่าง 0 และ 180 (รวมทั้ง), ขณะที่ค่าเป็นตัวเลขระหว่าง 0 และ 1> 1


ส่งค่ากลับ

มุมการจัดเค้าโต๊ะสู่ปริมาณเสียง ตามที่อธิบายไว้ด้านบน

GetConnectedWires

Instances

กลับรายการ Wires ที่เชื่อมต่อกับเข็มขัดที่กำหนด AudioEmitter มีหนึ่ง "ปักหมุด" พิน

พารามิเตอร์

pin: string

ส่งค่ากลับ

Instances

GetDistanceAttenuation

กลับระยะการแปลงตารางไปเป็นความดังของเสียง คีย์เป็นตัวเลขมากกว่าหรือเท่ากับ 0 ในขณะที่ค่าเป็นตัวเลขระหว่าง 0 และ 1 (รวมทั้ง) อธิบายวิธีการที่ความดังเสียงลดลงเมื่อเวลาผ่านไป


ส่งค่ากลับ

GetInteractingListeners

Instances

ส่งค่ากลับ

Instances

SetAngleAttenuation

void

ตั้งค่าโค้งสูงข้างมุมที่ส่งผลกระทบต่อความดังของ AudioListener โดยอาศัยจุดมุ่งหมายระหว่างพวกเขาและ AudioEmitter ที่เกี่ยวข้องกับ LookVector

เครื่องกำเนิดเป็นรูปตัวอักษรที่มีความลึกของชุดตารางที่เป็นตัวแทนของค่าเป็นรูปสี่เหลี่ยมผืน คีย์คาดหวังว่าจะเป็นตัวเลขที่ไม่เหม

ปริมาณของ AudioEmitter จากมุมมองของ AudioListener ที่มีมุมมองอยู่ระหว

ระดับนี้จะถูกคูณกับระดับจากโค้งการลดลงทั้งหมด (รวมทั้งโค้งการลดลงที่อยู่ในตัวรับ AudioListener ) เพื่อให้ได้ความสามารถในการได้ยินสุดท้าย

หากตารางเปล่าหรือ nil ให้ค่าความเรียบของมุมโดยใช้ค่าความเรียบของมุมที่คงที่ของ AudioEmitter

พารามิเตอร์

curve: Dictionary

ส่งค่ากลับ

void

SetDistanceAttenuation

void

ตั้งค่าโค้งส้นเสียงที่เกิดขึ้นระหว่าง AudioListener และ AudioEmitter ตามระยะทางระหว่างพวกเขา

สัญลักษณ์นี้แสดงโดยระยะการแปลงของตารางสู่ค่าเป็นรูปตัวอักษร คีย์คาดหวังว่าจะเป็นตัวเลขที่ใหญ่กว่าหรือเท่ากับ 0 ในขณะที่ค่าคือตัวเลขระหว่าง 0 และ 1 (รวมทั้ง) ตารางที่มีได

ปริมาณของ AudioEmitter จากมุมมองของ AudioListener ที่อยู่ไกลออกไป

ระดับนี้จะถูกคูณกับระดับจากโค้งการลดลงทั้งหมด (รวมทั้งโค้งการลดลงที่อยู่ในตัวรับ AudioListener ) เพื่อให้ได้ความสามารถในการได้ยินสุดท้าย

หากตารางเปล่าหรือ nil ให้ค่าเริ่มต้นของ AudioEmitter คือการใช้เวลาลดลงที่กำหนดโดยกฎของเวลากลางสอง

พารามิเตอร์

curve: Dictionary

ส่งค่ากลับ

void

ตัวอย่างโค้ด

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

อีเวนต์