วัตถุเสียงแบบ modular ของ Roblox ช่วยให้คุณสามารถควบคุมเสียงและการแชทด้วยเสียงได้อย่างไดนามิกในประสบการณ์ของคุณเกือบทุกวัตถุเสียงตรงกับอุปกรณ์เสียงในโลกแห่งความจริงและทั้งหมดก็ทำงานร่วมกันเพื่อบันทึกและเล่นเสียงเช่นเดียวกับเพื่อนร่วมงานทางกายภาพ
ตัวอย่างเช่น แต่ละวัตถุเสียงมีความคิดทางด้านการจัดหมวดหมู่ดังต่อไปนี้:
- วัตถุที่ ผลิต สตรีมเสียง เช่น เล่นเพลง
- วัตถุที่ บริโภค สตรีมเสียง เช่น ตัวเร่งเสียง
- วัตถุที่ แก้ไข สตรีมเสียง เช่น เอฟเฟกต์เสียง
- วัตถุที่ ส่งสตรีมเสียงจากวัตถุเสียงหนึ่งไปยังอีกวัตถุหนึ่งเช่นสายเคเบิล เมื่อคุณอ่านคู่มือนี้และเรียนรู้เกี่ยวกับวิธีที่วัตถุเสียงเหล่านี้ทั้งหมดทำงานร่วมกันเพื่อส่งเสียงคุณจะเรียนรู้วิธีการจับและส่งเสียงเพลง เสียงเอฟเฟกต์ และเสียงพูดของมนุษย์จากประสบการณ์ไปยังผู้เล่นและกลับกัน
เล่นเสียง
เพื่อเล่นเสียงภายในประสบการณ์ของคุณ สิ่งสำคัญคือต้องเข้าใจบทบาทของแต่ละวัตถุเสียงที่มีอยู่:
- การโหลดและเล่น AudioPlayer ไฟล์เสียง โดยใช้อินเทอร์เฟซเสียงที่กําหนดไว้ โดยใช้ ID สื่อเสียงที่กําหนดไว้
- An AudioEmitter เป็น ลำโพงเสมือน ที่ส่งเสียงไปยังสภาพแวดล้อม 3D
- An AudioListener เป็นไมโครโฟนเสมือน ที่รับเสียงจากสภาพแวดล้อม 3D * An AudioDeviceOutput เป็นอุปกรณ์ฮาร์ดแวร์ทางกายภาพ ภายในโลกแห่งความจริง เช่นลำโพงหรือหูฟัง
- An AudioDeviceInput เป็น ไมโครโฟนทางกายภาพ ภายในโลกแห่งความจริง
- A Wire ส่งสตรีมเสียง จากวัตถุเสียงหนึ่งไปยังอีกวัตถุหนึ่ง
วิธีที่คุณจับคู่วัตถุเสียงเหล่านี้ร่วมกันขึ้นอยู่กับว่าคุณต้องการส่งเสียงโดยตรงไปยังลำโพงหรือหูฟังของผู้เล่นหรือจากวัตถุในพื้นที่ 3D หรือไม่ส่วนต่อไปนี้อธิบายทั้งสองสถานการณ์
เสียง 2D
เสียง 2D เป็นเสียงที่ไม่มีทิศทางที่เล่นจากสถานที่ใดโดยเฉพาะ และยังคงอยู่ที่ระดับเดียวกันไม่ว่าตำแหน่งหรือทิศทางของผู้เล่นในพื้นที่ 3D จะเป็นอย่างไรประเภทเสียงนี้ต้องการสามวัตถุเสียง:
- เครื่องเล่นเสียงเพื่อผลิตสตรีมเสียง
- อุปกรณ์ฮาร์ดแวร์ทางกายภาพเพื่อเล่นสตรีมเสียงในโลกแห่งความจริง
- สายเพื่อนำสตรีมเสียงจากเครื่องเล่นเสียงไปยังอุปกรณ์ออก
เพื่อแสดงวิธีการกำหนดค่าวัตถุเสียงเหล่านี้ใน Studio สําหรับเสียง 2D ดิagram ต่อไปนี้เปรียบเทียบแต่ละวัตถุกับอุปกรณ์เครื่องเสียงโลกแบบจริงสรุป:
- การโหลด AudioPlayer และเล่นสินทรัพย์เสียงของคุณด้วยการตั้งค่าที่กำหนด
- The AudioDeviceOutput ช่วยให้ผู้เล่นสามารถได้ยินเสียงผ่านลำโพงหรือหูฟังได้
- การเชื่อมต่อ Wire เชื่อมต่อกับเครื่องเล่นเสียงด้วยคุณสมบัติ SourceInstance และกับอุปกรณ์ฮาร์ดแวร์ทางกายภาพด้วยคุณสมบัติ TargetInstanceจากนั้นก็ทำหน้าที่เป็นสะพานเพื่อส่งสตรีมเสียงจากเครื่องเล่นเสียงไปยังอุปกรณ์ออกผลของผู้เล่น

เพื่อเล่นเสียงที่ไม่มีทิศทาง:
- ในหน้าต่าง สํารวจ ค้นหาไปที่ SoundService จากนั้น
- ใส่วัตถุ เล่นเสียง แหล่งที่มา
- ใส่วัตถุ AudioDeviceOutput เพื่อสร้างลำโพงที่เล่นตลอดประสบการณ์
- ใส่วัตถุ สาย เพื่อเชื่อมต่อสตรีมจากเครื่องเล่นเสียงไปยังลำโพง
- เลือก ผู้เล่นเสียง จากนั้นในหน้าต่าง คุณสมบัติ 1. ตั้ง AssetID เป็นรหัส ID เสียงที่ถูกต้อง หากคุณไม่มีเสียงที่กำหนดเองของคุณเอง คุณสามารถค้นหาเสียงที่ใช้ได้ฟรีในร้านค้าผู้สร้าง 2. เปิดใช้งาน การเล่นซ้ำ หากต้องการให้เสียงของคุณซ้ำอย่างต่อเนื่อง 3. ตั้ง ระดับเสียง ให้เป็นหน่วยของความถี่ที่คุณต้องการเล่นเสียงของคุณ
- เลือก สาย จากนั้นในหน้าต่าง คุณสมบัติ 1. ตั้ง SourceInstance ให้กับ AudioPlayer ผู้เล่น 2. ตั้ง เป้าหมายInstance ให้เป็น AudioDeviceOutput เพื่อระบุว่าคุณต้องการเล่นเสียงจากลำโพงเฉพาะนี้
จากที่นี่คุณสามารถเรียกใช้เสียงไม่ทิศทางของคุณด้วยสคริปต์เพื่อเล่นเป็นผู้เล่นเข้าร่วมประสบการณ์หรือเป็นผลมาจากกิจกรรมการเล่นเกมหรือการโต้ตอบของ UIสำหรับการอ้างอิงโค้ดตัวอย่างสำหรับกรณีการใช้งานเหล่านี้ ดูบทแนะนำการเพิ่มเสียง 2D Add 2D audio
เสียง 3D
เสียง 3D เป็นเสียงทิศทางที่เล่นจากตำแหน่งที่เฉพาะในพื้นที่ 3D เพิ่มขึ้นหรือลดลงตามตำแหน่งและทิศทางของผู้เล่นต่อเสียงประเภทเสียงนี้ต้องการวัตถุเสียงหกตัว:
- เครื่องเล่นเสียงเพื่อผลิตสตรีมเสียง
- ตัวส่งสัญญาณเสียงเพื่อส่งสตรีมเสียงภายในสภาพแวดล้อม
- ผู้ฟังที่จะรับสตรีมเสียงจากสภาพแวดล้อม
- อุปกรณ์ฮาร์ดแวร์ทางกายภาพเพื่อเล่นสตรีมเสียงในโลกแห่งความจริง
- สายสองเส้น: หนึ่งเพื่อนําสตรีมเสียงจากเครื่องเล่นเสียงไปยังตัวส่งและอีกหนึ่งเพื่อนํามันจากผู้ฟังไปยังอุปกรณ์ออก
เพื่อแสดงวิธีการกำหนดค่าวัตถุเสียงเหล่านี้ใน Studio สําหรับเสียงเสมือนจริง 3D ไดอะแกรมต่อไปนี้เปรียบเทียบแต่ละวัตถุกับอุปกรณ์เสียงจริงของพวกเขาสรุป:
- การโหลด AudioPlayer และเล่นสินทรัพย์เสียงของคุณด้วยการตั้งค่าที่กำหนด
- ตำแหน่งพ่อของ AudioEmitter ในพื้นที่ 3D กำหนดตำแหน่งที่เสียงนั้นปล่อยออกมาภายในสภาพแวดล้อม
- The AudioListener รับเสียงจากตัวส่งจากกล้องท้องถิ่นหรือภายในตัวละครผู้เล่น Humanoid.RootPart ขึ้นอยู่กับที่ที่คุณตั้งตำแหน่งผู้ฟังเริ่มต้น
- The AudioDeviceOutput ช่วยให้ผู้เล่นสามารถได้ยินเสียงผ่านลำโพงหรือหูฟังได้
- คอนเน็กเตอร์แรก Wire เชื่อมต่อกับเครื่องเล่นเสียงด้วยคุณสมบัติ SourceInstance และกับเอมิตเตอร์ด้วยคุณสมบัติ TargetInstanceจากนั้นก็ทำหน้าที่เป็นสะพานเพื่อส่งสตรีมเสียงจากผู้เล่นเสียงไปยังผู้ส่ง
- คู่ที่สอง Wire เชื่อมต่อกับผู้ฟังด้วยคุณสมบัติ SourceInstance และกับอุปกรณ์ฮาร์ดแวร์ทางกายภาพด้วยคุณสมบัติ TargetInstanceจากนั้นก็ทำหน้าที่เป็นสะพานเพื่อส่งสตรีมเสียงจากผู้ฟังไปยังอุปกรณ์ออกผลของผู้เล่น

เพื่อเล่นเสียงตำแหน่ง:
เลือกที่ที่คุณต้องการสร้าง ผู้ฟังเสียง เมื่อผู้เล่นเกิดในประสบการณ์
- ในหน้าต่าง สํารวจ เลือก SoundService 2. ในหน้าต่าง คุณสมบัติ ตั้ง ตำแหน่งผู้ฟัง กำลังติดตาม:
- ค่าเริ่มต้น - สร้างและเป็นพ่อของผู้ฟังให้กับ Workspace.CurrentCamera ในประสบการณ์ที่เปิดใช้งานการแชทด้วยเสียง
- ไม่มี - ไม่สร้างผู้ฟัง ตัวเลือกนี้มีประโยชน์หากคุณต้องการสร้างผู้ฟังผ่านสคริปต์
- ตัวละคร - สร้างและเป็นพ่อแม่ของผู้ฟังต่อตัวละครของผู้เล่นท้องถิ่น
- กล้อง - สร้างและเป็นพ่อของผู้ฟังไปยัง Workspace.CurrentCamera
ในหน้าต่าง สํารวจ ค้นหาวัตถุ 3D เสียงจากนั้น:
- ใส่วัตถุ เล่นเสียง แหล่งที่มา
- ใส่วัตถุ เอาต์พุตเสียง เพื่อส่งสตรีมตำแหน่งจากวัตถุ 3D
- ใส่วัตถุ สาย เพื่อเชื่อมต่อสตรีมจากเล่นเพลงไปยังเอมิตเตอร์เสียง
เลือก ผู้เล่นเสียง จากนั้นในหน้าต่าง คุณสมบัติ 1. ตั้ง AssetID เป็นรหัส ID เสียงที่ถูกต้อง หากคุณไม่มีเสียงที่กำหนดเองของคุณเอง คุณสามารถค้นหาเสียงที่ใช้ได้ฟรีในร้านค้าผู้สร้าง 2. เปิดใช้งาน การเล่นซ้ำ หากต้องการให้เสียงของคุณซ้ำอย่างต่อเนื่อง 3. ตั้ง ระดับเสียง ให้เป็นหน่วยของความถี่ที่คุณต้องการเล่นเสียงของคุณ
เลือก ตัวปล่อยเสียง จากนั้นในหน้าต่าง คุณสมบัติ ตั้ง การลดระยะเวลาเสียง เป็นเส้นโค้งที่กำหนดระดับเสียงที่ผู้ฟังได้ยินเอาต์พุตตามระยะทางระหว่างพวกเขา
ตัวอย่างเช่น สัญญาณโค้งต่อไปนี้ลดระดับเสียงของเสียงลงครึ่งหนึ่งเมื่อผู้ฟังอยู่ห่างจากเอมิตเตอร์ 50 สตัด จากนั้นจะลดระดับเสียงลงเป็นศูนย์เมื่อผู้ฟังอยู่ห่างจากเอมิตเตอร์ 70 สตัด
เลือก สาย จากนั้นในหน้าต่าง คุณสมบัติ 1. ตั้ง SourceInstance ให้กับ AudioPlayer ผู้เล่น 2. ตั้ง เป้าหมายInstance ให้กับ AudioEmitter เพื่อระบุว่าคุณต้องการเล่นเสียงจากตัวเร่งเสียงเฉพาะนี้
จากที่นี่คุณสามารถเรียกใช้เสียงเชิงทิศทางด้วยสคริปต์เพื่อเล่นเป็นผู้เล่นเข้าร่วมประสบการณ์หรือเป็นผลมาจากกิจกรรมการเล่นเกมหรือการโต้ตอบ UIสำหรับการอ้างอิงโค้ดตัวอย่างสำหรับกรณีการใช้งานเหล่านี้ ดูบทแนะนำการเพิ่มเสียง 3D Add 3D audio
ปรับแต่งเสียง
เอฟเฟกต์เสียงช่วยให้คุณสามารถแก้ไขหรือปรับปรุงสตรีมเสียงได้โดยไม่ทําลายก่อนที่จะถึงหูผู้เล่นคุณสามารถใช้เอฟเฟกต์เหล่านี้เพื่อทำให้เสียงของคุณมีความสมจริงมากขึ้นภายในประสบการณ์ เช่น ใช้วัตถุ AudioEqualizer เพื่อทำให้เสียงฝนเบาลง ใช้วัตถุ AudioCompressor เพื่อควบคุมระดับเสียงสูงสุดของเสียง หรือ AudioReverb เพื่อเพิ่มการสะท้อนเสียงที่เป็นจริงมากขึ้นในพื้นที่ภายใน
สำหรับคำแนะนำเกี่ยวกับวิธีการกำหนดเอฟเฟกต์เสียงรวมถึงการเปรียบเทียบแบบข้างต้นระหว่างก่อนและหลังที่คุณปรับแต่งเสียงของคุณดูที่ เอฟเฟกต์เสียง


เรียกเสียง
คุณสามารถเรียกบริบทเสียงได้โดยใช้สคริปต์โดยการเรียก Play() บนวัตถุ AudioPlayer ที่เชื่อมต่อถูกต้องตัวอย่างเช่น ผู้เล่นคุณสามารถเรียกใช้สินทรัพย์เสียงผ่านสิ่งเช่นนี้ได้:
local audio = script.Parent
local something = ...
something.SomeEvent:Connect(function()
audio:Play()
end)
สำหรับตัวอย่างโค้ดที่ซับซ้อนมากขึ้นเพื่อเรียกการเล่นเสียง เช่น สำหรับความคิดเห็นเกี่ยวกับเกม การโต้ตอบระหว่างผู้ใช้ และเสียงพื้นหลังการเล่นซ้ำ ดูวิธีการ เพิ่มเสียง 2D และ เพิ่มเสียง 3D ในบทสอน