AudioFilter
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
AudioFilter ปรับเนื้อหาความถี่ของสตรีมเสียงมันให้พินอินพุตหนึ่ง **** และพินออก **** หนึ่งพินซึ่งสามารถเชื่อมต่อกับ/จากโดย Wires``Class.AudioFilter ใช้คุณสมบัติ FilterType , Gain และ Q เพื่อกำหนดสิ่งที่ต้องทำรอบจุดตัดที่เฉพาะเจาะจง Frequency
ตัวอย่างโค้ด
An AudioFilter can be used to change the frequency content of audio streams. In this example, an AudioFilter is used to make the AudioEmitter output more muffled when there's a wall between it and the AudioListener.
-- This assumes the workspace contains a Part with an AudioEmitter and an AudioPlayer, and the camera has an AudioListener
local RunService = game:GetService("RunService")
local part: BasePart = workspace.Part
local camera: Camera = workspace.CurrentCamera
local audioPlayer: AudioPlayer = part.AudioPlayer
local audioEmitter: AudioEmitter = part.AudioEmitter
local audioListener: AudioListener = camera.AudioListener
local raycastParams = RaycastParams.new()
raycastParams.FilterDescendantsInstances = { audioEmitter.Parent }
raycastParams.FilterType = Enum.RaycastFilterType.Exclude
-- Create a new AudioFilter
local filter: AudioFilter = Instance.new("AudioFilter")
filter.FilterType = Enum.AudioFilterType.Lowpass12dB
filter.Frequency = 22000
filter.Q = math.sqrt(2) / 2 -- This Q value produces a flat lowpass for the 12dB slope type
filter.Parent = part
-- Put the AudioFilter between the player and the emitter
local function wireTo(source: Instance, target: Instance): Wire
local wire = Instance.new("Wire")
wire.SourceInstance = source
wire.TargetInstance = target
wire.Parent = target
end
wireTo(audioPlayer, filter)
wireTo(filter, audioEmitter)
-- Update the filter based on the positions of the emitter and listener
RunService.Heartbeat:Connect(function()
local emitterPos: Vector3 = part.Position
local listenerPos: Vector3 = camera.CFrame.Position
local raycastResult = workspace:Raycast(emitterPos, (listenerPos - emitterPos), raycastParams)
filter.Frequency = if raycastResult then 500 else 22000
end)
สรุป
คุณสมบัติ
ว่าสตรีมเสียงจะผ่านไปโดยไม่ได้รับผลกระทบจากเอฟเฟกต์นี้หรือไม่
ประเภทของบล็อกโค้งที่แสดงโดยตัวกรอง
ความถี่กลางที่ตัวกรองทำงานรอบ
สำหรับตัวกรองสูงสุดและชั้นวาง ควบคุมการเพิ่มหรือลดระดับเสียง
สำหรับการเพิ่มสูงสุด การผ่านต่ำ การผ่านสูง การผ่านแบนด์ และตัวกรองโน้ต ควบคุมความเฉพาะหรือความสัมพันธ์
วิธีการ
ส่งคืนคอลเลกชันของ Wires ปักหมุด
คืนค่าการตอบสนองของตัวกรองที่ความถี่ที่กำหนด
อีเวนต์
จะเกิดไฟไหม้เมื่ออินสแตนซ์อื่นถูกเชื่อมต่อกับหรือถูกแยกออกจาก AudioFilter ผ่าน Wire
คุณสมบัติ
Editor
FilterType
ประเภทของเส้นคำตอบความถี่ที่จะใช้ในการกรองสัญญาณเสียงแต่ละประเภทของโค้งมีผลต่อเนื้อหาความถี่ของเสียงในรูปแบบที่แตกต่างกัน
Frequency
ความถี่กลางในเฮิร์ตซ์ของโค้งที่แสดงโดยตัวกรองโดยทั่วไปการปรับค่านี้ขึ้นหรือลงจะตรงกับการเลื่อนไปในแนวนอนในความถี่โดยรวมช่วงตั้งแต่ 20 ถึง 22000
Gain
มูลค่าการได้รับในเดซิเบลที่ใช้ในการกำหนดระดับปริมาณของโค้งที่แสดงโดยตัวกรองใช้ได้เฉพาะเมื่อ FilterType เป็น Peak , LowShelf หรือ HighShelfช่วงตั้งแต่ -30 ถึง 30
มูลค่าคุณภาพที่ใช้ในการกำหนดความลาดหรือความสะท้อนของโค้งที่แสดงโดยตัวกรองใช้ได้เฉพาะเมื่อ FilterType เป็น Peak , Lowpass[x]dB , Highpass[x]dB , Bandpass หรือ Notchช่วงตั้งแต่ 0.1 ถึง 10
สำหรับ FilterType ค่าของ Lowpass12dB และ Highpass12dB , ค่า Q ของ sqrt(2) / 2 หรือ 0.707 ตรงกับฟิลเตอร์แบบแบนที่ความลาด 12dB/โอเคตาว์
วิธีการ
GetConnectedWires
ส่งคืนคอลเลกชันของ Wires ปักหมุดAudioFilter มีพิน "Input" และพิน "Output" หนึ่งอัน
พารามิเตอร์
ส่งค่ากลับ
GetGainAt
คืนค่าความได้เปรียบที่มีค่าเป็นเดซิเบลของความตอบสนองความถี่ที่แสดงโดยตัวกรองในความถี่ที่กำหนด ในเฮิร์ตซ์สิ่งนี้สามารถใช้เพื่อสำรวจรูปร่างที่แน่นอนของตัวกรองในสถานที่สำคัญหรือทั้งหมด
พารามิเตอร์
ความถี่ในเฮิร์ตซ์ที่จะตัวอย่าง
ส่งค่ากลับ
มูลค่าการได้รับ ในเดซิเบล ที่ความถี่ที่กำหนด
อีเวนต์
WiringChanged
อีเวนต์ที่จะยิงหลังจากที่ Wire เชื่อมต่อหรือถูกตัดการเชื่อมต่อและ Wire ตอนนี้หรือเคยเชื่อมต่อกับพินบน AudioFilter อินสแตนซ์
พารามิเตอร์
ว่าตัวอย่างได้เชื่อมต่อหรือถูกตัดการเชื่อมต่อ
เข็มบน AudioFilter ที่เป้าหมาย Wire
The Wire ระหว่าง AudioFilter และตัวอย่างอื่น