การเล่นเสียงเกิดขึ้นผ่านวัตถุ Sound ที่ออกเสียงภายในประสบการณ์Roblox กำหนด ID ที่ไม่ซ้ำกันสำหรับแต่ละสื่อ เสียง ที่คุณสามารถกำหนดให้กับวัตถุ Sound เพื่อเล่นเอฟเฟกต์เสียงหรือเพลงเฉพาะคุณสามารถตั้งค่าเสียงนี้ให้เล่นอัตโนมัติในระหว่างการทำงาน หรือกระตุ้นให้เล่นจากสคริปต์ ได้
เพื่อปรับแต่งการเล่นของหลายวัตถุ คุณสามารถกำหนดให้พวกเขาเป็นกลุ่มเสียง และควบคุมระดับเสียงทั้งหมดของกลุ่ม รวมทั้งใช้ เอฟเฟกต์ไดนามิก
สร้างวัตถุเสียง
มีสามตำแหน่งที่คุณสามารถสร้างวัตถุ Sound และแต่ละตำแหน่งกำหนดวิธีที่เสียงจะออกและการเปลี่ยนแปลงระดับเสียงในความสัมพันธ์กับตำแหน่งของผู้ใช้ภายในประสบการณ์
สถานที่ | วิธีที่เสียงออก | วิธีการเปลี่ยนแปลงปริมาณ |
---|---|---|
บุตรของบล็อก ทรงกลม หรือทรงกระบอก BasePart . | เสียงออกจากพื้นที่ทั้งหมดของชิ้นส่วน | การเปลี่ยนแปลงระดับเสียงขึ้นอยู่กับระยะห่างระหว่างผู้ฟังเสียงของผู้ใช้และตำแหน่งของชิ้นส่วนรวมถึงขนาดของมัน |
บุตรของ Attachment , MeshPart , TrussPart , WedgePart หรือ CornerWedgePart . | เสียงออกจากจุดหรือส่วนศูนย์กลางเดียว | การเปลี่ยนแปลงระดับเสียงขึ้นอยู่กับระยะห่างระหว่างผู้ฟังเสียงของผู้ใช้และตําแหน่งส่วน/ชิ้นส่วน |
ภายใน SoundService หรือ Workspace . | เสียงจะออกไปทั่วประสบการณ์ | ตําแหน่งของระดับเสียงและแผ่นยังคงเหมือนเดิมไม่ว่าตําแหน่งผู้ฟังเสียงของผู้ใช้หรือการหมุนจะเป็นอย่างไร |
เสียงตำแหน่ง
เสียงตำแหน่งคือเสียงที่ผู้ใช้สามารถได้ยินได้เฉพาะใกล้ตำแหน่งที่เฉพาะเจาะจงภายในประสบการณ์มีสองประเภทของเสียงตำแหน่งที่คุณสามารถใช้ได้: แหล่งที่มา
ภาพรวม
เสียงภาคพื้นที่เป็นตัวเลือกเสียงที่สมจริงที่สุด เนื่องจากมันเปลี่ยนแปลงได้ตามตำแหน่งของผู้ใช้เมื่อเทียบกับแหล่งเสียงตัวอย่างเช่น หากผู้ใช้อยู่ภายใน BasePart ที่มีวัตถุลูก Sound เสียงจะเล่นทั่วทั้งผู้ใช้ คล้ายกับเพลงในหูฟังที่เล่นในระดับเสียงเดียวกันในแต่ละลำโพงเมื่อผู้ใช้ออกจากส่วน เสียงจะลดลงอย่างช้าๆ ในปริมาณและกลายเป็นมากขึ้นทิศทางต่อลำโพง เคลื่อนไปรอบๆ หัวของผู้ใช้เมื่อผู้ฟังหมุนสำหรับข้อมูลเกี่ยวกับคุณสมบัติที่ควบคุมความดังของเสียงของคุณในระยะทางที่แตกต่างจากส่วน ดู RollOffMinDistance และ RollOffMaxDistance
ขนาดของ BasePart ยังมีผลต่อระดับเสียงของเสียง เนื่องจากเสียงที่ใหญ่กว่า BaseParts ผลิตพื้นที่ที่กว้างขึ้นซึ่งผู้ใช้สามารถได้ยินเสียงและเมื่อผู้ใช้นำทางออกจากพื้นที่ขนาดใหญ่ BasePart ระดับเสียงลดลงช้าตัวอย่างต่อไปนี้แสดง BasePart ที่เป็นขนาดของเมืองที่มีวัตถุ Sound เล่นเสียงสิ่งแวดล้อมผู้ใช้ A และ B ประสบการณ์เสียงแตกต่างกัน: ผู้ใช้ B อยู่ใกล้กับ BasePart ที่ใหญ่กว่า และพวกเขาส่วนใหญ่ได้ยินเสียงรอบความดังเดียวกันในทั้งสองลำโพงในทางกลับกันผู้ใช้ A อยู่ไกลจากเมืองดังนั้นเสียงที่พวกเขาได้ยินจะเงียบกว่าและเป็นทิศทางมากกว่าผู้ใช้ B ที่เล่นในระดับเสียงที่แตกต่างกันในแต่ละลำโพง

เสียงภาคพื้นที่มีประโยชน์สำหรับเสียงใดๆ ที่ต้องการให้ผู้ใช้มีส่วนร่วมและเปลี่ยนแปลงได้ตามความต้องการของผู้ใช้ เช่น เวทีคอนเสิร์ตหรือโซนบรรยากาศเช่นฝนตกเมื่อคุณทดลองวางวัตถุ Sound บน BaseParts ขนาดและตำแหน่งที่แตกต่างกันจากผู้ใช้คุณสามารถได้ยินว่าเสียงโวลูมิเตรกระจายอย่างลึกซึ้งสามารถเป็นอย่างไร
เพื่อสร้างวัตถุ Sound สําหรับเสียงภาคภูมิศาสตร์:
ในหน้าต่าง สํารวจ เลือก SoundService
ในหน้าต่าง คุณสมบัติ ค้นหาคุณสมบัติ VolumetricAudio จากนั้นตั้งค่าเป็น เปิดใช้งาน
ในหน้าต่าง สํารวจ เลื่อนเมาส์ไปเหนือ BasePart แล้วคลิกปุ่ม ⊕ จะปรากฏเมนูบริบท
จากเมนูใส่ เสียง .
ในหน้าต่าง คุณสมบัติ ค้นหาคุณสมบัติ SoundId และใส่ ID สื่อเสียงที่ถูกต้อง
(ตัวเลือก) หากคุณต้องการให้เสียงเริ่มเล่นเมื่อประสบการณ์เริ่มต้น ให้เปิดใช้งานคุณสมบัติ การเล่น
แหล่งที่มา
ต่างจากเสียงภาคภูมิศาสตร์เสียงจุดที่มาจากจุดเดียวเท่านั้นจะออกจากจุดเดียวประเภทเสียงนี้มีประโยชน์สำหรับการระเบิด เสียงกระทบ อุปกรณ์อิเล็กทรอนิกส์ และบทสนทนา
เพื่อสร้างวัตถุ Sound สำหรับแหล่งเสียงจุด:
- ในหน้าต่าง สํารวจ เลื่อนเมาส์ไปเหนือส่วนแนบเนียน, แทรส, บล็อกลิ่ม หรือมุมลิ่ม จากนั้นคลิกที่ปุ่ม ⊕ จะปรากฏเมนูบริบท
- จากเมนูใส่ เสียง .
- (ตัวเลือก) หากคุณต้องการให้เสียงเริ่มเล่นเมื่อประสบการณ์เริ่มต้น ให้เปิดใช้งานคุณสมบัติ การเล่น
เสียงพื้นหลัง
เสียงพื้นหลังเล่นในระดับเดียวกันไม่ว่าผู้ใช้จะเดินทางไปที่ใดภายในประสบการณ์ของคุณประเภทเสียงนี้มีประโยชน์สำหรับเพลงที่คุณต้องการเล่นสำหรับผู้ใช้โดยเฉพาะอย่างยิ่งเมื่อคุณต้องการสร้างเพลงประกอบของไฟล์เสียงหลายไฟล์
เป็นการดีที่สุดที่จะเก็บวัตถุทั้งหมด Sound สำหรับเสียงพื้นหลังในตำแหน่งเดียวของพื้นที่ทำงานเพื่อวัตถุประสงค์ทางองค์กรในขณะที่คุณยังคงเพิ่มและแก้ไขเสียงภายในประสบการณ์ของคุณตัวอย่างต่อไปนี้จะเก็บวัตถุใหม่ Sound ภายใต้คอนเทนเนอร์ SoundService เนื่องจากบริการนี้กำหนดวิธีที่วัตถุ Sound เล่นในประสบการณ์
เพื่อสร้างวัตถุ Sound สำหรับเสียงพื้นหลัง:
- ในหน้าต่าง สํารวจ เลื่อนเมาส์ไปที่ SoundService จากนั้นคลิกปุ่ม ⊕ แสดงเมนูบริบท
- จากเมนูใส่ เสียง .
- (ตัวเลือก) หากคุณต้องการให้เสียงเริ่มเล่นเมื่อประสบการณ์เริ่มต้น ให้เปิดใช้งานคุณสมบัติ การเล่น 5. (เลือกได้) หากวัตถุนี้ Sound เป็นเพลงเดียวที่คุณต้องการเล่นในสถานที่ ให้เปิดใช้งานคุณสมบัติ ซ้ำ ของมัน
ปรับแต่งวัตถุเสียง
Sound คุณสมบัติวัตถุทำงานร่วมกันเพื่อมีอิทธิพลต่อวิธีที่ผู้ใช้ประสบการณ์เสียงของคุณ เช่น:
- เสียงดังแค่ไหนที่พวกเขาได้ยินเสียงเฉพาะในแต่ละรายการและในความสัมพันธ์กับอีกรายการหนึ่ง ( ระดับเสียง ).
- วิธีที่พวกเขารับรู้ระดับเสียงเมื่อพวกเขาย้ายออกจากแหล่งเสียง ( RollOffMinDistance , RollOffMaxDistance และ RollOffMode )
- ส่วนของเสียงที่พวกเขาสามารถฟังได้ ( ตำแหน่งเวลา ).
- เร็วแค่ไหนและในระดับที่พวกเขาได้ยินมัน ( ความเร็วในการเล่น ).
- หากเสียงเล่นซ้ำโดยอัตโนมัติเมื่อเสร็จสิ้น ( ซ้ำ ).
ระดับเสียง
คุณสามารถตั้งค่าความละเอียดของเสียงของคุณได้ทุกที่ตั้งแต่ Volume (เงียบ) ถึง 10 (ก้องกังวาน) โดยใช้คุณสมบัติ 0หากต้องการเปลี่ยนระดับเสียงของหลายวัตถุ Sound ในครั้งเดียว ให้พ่วงพวกเขาภายใต้กลุ่มเสียง เสียง
ระยะห่างโรลออฟและระยะห่างโรลออฟสูงสุด
RollOffMinDistance และ RollOffMaxDistance กำหนดช่วงที่ผู้ใช้รับรู้เสียงจากเสียงตำแหน่งสำหรับเสียงเชิงปริมาณ เป็นระยะขั้นต่ำในสตัดที่เสียงเริ่มลดลงในปริมาณเมื่อผู้ฟังของไคลเอนต์ ย้ายออกไปจากพ่อแม่ และคุณสมบัติ เป็นระยะทางสูงสุดในสตัดที่ผู้ฟังของไคลเอนต์สามารถได้ยินเสียงจากพื้นผิวของวัตถุ

สำหรับแหล่งเสียงจุด, RollOffMinDistance และ RollOffMaxDistance ทำงานคล้ายกับเสียงระดับภูมิภาค แต่ระยะทางที่ควบคุมคุณสมบัติเหล่านี้ไม่รอบวัตถุ แหล่งที่มา

โหมดยกเลิกการหมุน
คุณสมบัติ RollOffMode ช่วยให้คุณตัดสินใจได้ว่าเสียงจะจางไปอย่างไรเมื่อระยะห่างระหว่างผู้ฟังของผู้ใช้และวัตถุ Sound ของพ่อเพิ่มขึ้นคุณสามารถตั้งค่าคุณสมบัตินี้เป็นหนึ่งในสี่ค่าของ enum Enum.RollOffMode

โหมดยกเลิกการหมุน | คําอธิบาย |
---|---|
Inverse (เริ่มต้น) | ปริมาณเริ่มแจ่มชัดจาก RollOffMinDistance ในตอนแรก แต่ปริมาณการลดลงกลายเป็นค่อยๆมากขึ้นเมื่อผู้ใช้ใกล้จะถึง RollOffMaxDistance มากขึ้นเมื่อพวกเขาถึง RollOffMaxDistance เสียงจะเงียบ |
Linear | ปริมาณจางไปอย่างต่อเนื่องระหว่าง RollOffMinDistance และ RollOffMaxDistance เมื่อผู้ใช้ถึง RollOffMaxDistance เสียงจะเงียบ |
InverseTapered | ปริมาณทำตามรูปแบบย้อนกลับเมื่อใกล้ถึง RollOffMinDistance และรูปแบบสี่เหลี่ยมเชิงเส้นเมื่อผู้ใช้อยู่ใกล้ถึง RollOffMaxDistanceการเข้าถึงเสียงจะเงียบที่จุดระยะสูงสุด |
LinearSquare | ปริมาณจางระหว่าง RollOffMinDistance และ RollOffMaxDistance ด้วยความสัมพันธ์เชิงเส้นสี่เหลี่ยม เสียงเข้าใกล้ความเงียบที่จุดระยะสูงสุด |
ความเร็วในการเล่น
คุณสมบัติ PlaybackSpeed ช่วยให้คุณสามารถกำหนดความเร็วที่ออดิโอเล่นได้ตัวอย่างเช่น หากคุณตั้งค่า PlaybackSpeed เป็นค่า 2 เสียงของคุณจะเล่นเร็วขึ้นสองเท่าและสูงขึ้นหนึ่งโอเวอร์ในเพลงเช่นเดียวกับถ้าคุณตั้งค่าเป็นมูลค่า 0.5 เสียงของคุณจะเล่นช้าสองเท่าและต่ำกว่าหนึ่งโอเคในเพลง
PlaybackSpeed = 0.5 | PlaybackSpeed = 1.0 | PlaybackSpeed = 2.0 |
ตําแหน่งเวลา
คุณสมบัติ TimePosition แสดงในเวลาไม่กี่วินาทีสิ่งที่ตำแหน่งภายในตัวอย่างเสียงที่ผู้ใช้กำลังได้ยินอยู่คุณสมบัตินี้มีประโยชน์สำหรับการเล่นส่วนหนึ่งของตัวอย่างเสียงเท่านั้น หรือการเรียกการเหตุการณ์เกิดขึ้นเมื่อเสียงถึงตำแหน่งที่กำหนดไว้ตัวอย่างโค้ดต่อไปนี้ทำให้ตัวปล่อยอนุภาคปล่อยอนุภาควงแหวนสีขาวเหนือส่วนภายในช่วงเวลาจํากัดของเสียงเพลง
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
-- สร้างชิ้นส่วนใหม่
local part = Instance.new("Part")
part.Anchored = true
part.Color = Color3.new(0.75, 0.2, 0.5)
part.Size = Vector3.new(2, 1, 2)
part.Material = Enum.Material.Neon
part.Position = Vector3.new(0, 4, 0)
part.Parent = Workspace
-- สร้างไฟล์แนบบนส่วน
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 0.5, 0)
attachment.Parent = part
-- สร้างตัวปล่อยอนุภาคบนแนบ
local emitter = Instance.new("ParticleEmitter")
emitter.Rate = 5
emitter.Lifetime = NumberRange.new(1.5, 1.5)
emitter.Texture = "rbxassetid://1266170131"
emitter.Speed = NumberRange.new(1, 1)
emitter.Size = NumberSequence.new{NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(1, 6)}
emitter.Transparency = NumberSequence.new{NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.25, 0), NumberSequenceKeypoint.new(1, 1)}
emitter.Orientation = Enum.ParticleOrientation.VelocityPerpendicular
emitter.Parent = attachment
-- สร้างเสียงบนแนบไฟล์
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://1835405646"
sound.Parent = attachment
-- เล่นเสียง
sound:Play()
-- เริ่มตรวจสอบว่าควรเปิดใช้งานเอมิตเตอร์หรือไม่
RunService.Heartbeat:Connect(function()
-- เปิดใช้งานตัวส่งภายในช่วงเวลาของเสียง; มิฉะนั้นให้ปิดใช้งาน
emitter.Enabled = sound.TimePosition >= 5 and sound.TimePosition < 20
end)
ซ้ำ
คุณสมบัติ Looped ช่วยให้คุณสามารถทำซ้ำเสียงได้หลังจากเสร็จสิ้นการเล่นเมื่อตั้งค่าเป็น true เสียงของวัตถุ Sound จะเล่นอีกครั้งนี่มีประโยชน์ในการใช้ เสียงพื้นหลัง เพื่อให้แน่ใจว่าประสบการณ์ของคุณไม่มีช่วงเวลาที่เงียบสงัดอย่างกะทันหัน
วัตถุเสียงสคริปต์
เล่นเนื้อหาเสียงในบริบท
นอกจากการเล่นเสียงอัตโนมัติผ่านคุณสมบัติ ของวัตถุ คุณสามารถเล่นเสียงในบริบทได้โดยโทรไปที่ จากวัตถุที่เหมาะสม ตัวอย่าง:
local Workspace = game:GetService("Workspace")local sound = Instance.new("Sound")sound.SoundId = "rbxassetid://9120386436"sound.Looped = truesound.Parent = Workspacesound:Play()
หรือถ้าสถานที่จะมีสนามแข่งหลายสนาม คุณสามารถเล่นสนามแข่งเฉพาะจาก LocalScript :
local SoundService = game:GetService("SoundService")local musicTrack = SoundService:FindFirstChild("LucidDream")if musicTrack not musicTrack.IsPlaying thenmusicTrack:Play()end
เล่นอินเทอร์เฟซเสียง
คุณสามารถเล่นเสียงอินเทอร์เฟซสำหรับ GuiObjects เช่น ปุ่ม โดยการเชื่อมต่อวัตถุ Sound กับผู้ฟังอีเวนต์ Activatedสิ่งนี้ช่วยให้คุณสามารถให้ข้อเสนอแนะทางการได้ยินแก่ผู้ใช้ เช่น เมื่อพวกเขาเลื่อนหรือกดมัน
เพื่อเล่นเสียงของวัตถุ Sound เมื่อผู้ใช้เปิดใช้งาน TextButton หรือ ImageButton :
- ในหน้าต่าง สํารวจ เลื่อนเมาส์ไปที่ TextButton หรือ ImageButton จากนั้นคลิกปุ่ม ⊕ เมนูบริบทจะปรากฏขึ้น
- ใส่โค้ดต่อไปนี้ลงในสคริปต์แล้วแทนที่ SOUND_NAME ด้วยชื่อของวัตถุ Sound ที่อยู่ภายในคอนเทนเนอร์ SoundService
local SoundService = game:GetService("SoundService")
local button = script.Parent
local sound = SoundService:FindFirstChild("SOUND_NAME")
if not sound.isLoaded then
sound.Loaded:Wait()
end
local function onButtonActivated()
if sound and not sound.IsPlaying then
sound:Play()
end
end
button.Activated:Connect(onButtonActivated)