วัตถุเสียง

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

การเล่นเสียงเกิดขึ้นผ่าน Sound ซึ่งปล่อยเสียงภายในประสบการณ์ Roblox จะกำหนดให้แต่ละ สินทรัพย์เสียง มี ID ที่ไม่ซ้ำกัน ซึ่งคุณสามารถกำหนดให้กับ Sound เพื่อเล่นเอฟเฟคเสียงหรือเพลงเฉพาะได้ คุณสามารถตั้งค่าให้เสียงนี้เล่นอัตโนมัติเมื่อรันโปรแกรม หรือเรียกใช้ให้ เล่นจากสคริปต์

เพื่อปรับการเล่นเสียงของ 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 สำหรับเสียงโวลูเมตริก:

  1. ในหน้าต่าง Explorer ให้เลือก SoundService

  2. ในหน้าต่าง Properties ให้ไปที่คุณสมบัติ VolumetricAudio แล้วตั้งค่าเป็น Enabled

  3. ในหน้าต่าง Explorer ให้เคอร์เซอร์ไปเหนือ BasePart แล้วคลิกที่ปุ่ม ⊕ เมนูบริบทจะปรากฏขึ้น

  4. จากเมนู ให้แทรก Sound

  5. ในหน้าต่าง Properties ให้ไปที่คุณสมบัติ SoundId และป้อน ID สินทรัพย์เสียงที่ถูกต้อง.

  6. (ทางเลือก) หากคุณต้องการให้เสียงเริ่มเล่นเมื่อประสบการณ์เริ่มต้น ให้เปิดคุณสมบัติ Playing

เสียงจุด

แตกต่างจากเสียงโวลูเมตริก เสียงจุดจะปล่อยเสียงจากแหล่งเสียงจุดเดียวเท่านั้น เสียงประเภทนี้เหมาะสำหรับการระเบิด เสียงกระแทก อุปกรณ์อิเล็กทรอนิกส์ และการสนทนา

เพื่อสร้างวัตถุ Sound สำหรับเสียงจุด:

  1. ในหน้าต่าง Explorer ให้เคอร์เซอร์ไปเหนือการติดตั้ง ทรัส แผ่นตัด หรือมุมที่ตัด จากนั้นคลิกที่ปุ่ม ⊕ เมนูบริบทจะปรากฏขึ้น
  2. จากเมนูให้แทรก Sound
  3. ในหน้าต่าง Properties ให้ไปที่คุณสมบัติ SoundId และป้อน ID สินทรัพย์เสียงที่ถูกต้อง.
  4. (ทางเลือก) หากคุณต้องการให้เสียงเริ่มเล่นเมื่อประสบการณ์เริ่มต้น ให้เปิดคุณสมบัติ Playing

เสียงพื้นหลัง

เสียงพื้นหลังเล่นด้วยระดับเสียงเดียวกันไม่ว่าผู้ใช้จะเดินทางไปที่ไหนในประสบการณ์ของคุณ เสียงประเภทนี้เหมาะสำหรับเพลงที่คุณต้องการเล่นให้กับผู้ใช้ โดยเฉพาะเมื่อคุณต้องการสร้างซาวด์แทร็กจากไฟล์เสียงหลายไฟล์

ดีที่สุดคือให้เก็บวัตถุ Sound สำหรับเสียงพื้นหลังในสถานที่เดียวกันของ Workspace เพื่อวัตถุประสงค์ในการจัดระเบียบขณะที่คุณยังคงเพิ่มและแก้ไขเสียงภายในประสบการณ์ของคุณ ตัวอย่างต่อไปนี้เก็บวัตถุ Sound ใหม่นี้ภายใต้คอนเทนเนอร์ SoundService เนื่องจากบริการนี้กำหนดว่าวัตถุ Sound จะเล่นในประสบการณ์อย่างไร

เพื่อสร้างวัตถุ Sound สำหรับเสียงพื้นหลัง:

  1. ในหน้าต่าง Explorer ให้เคอร์เซอร์ไปเหนือ SoundService แล้วคลิกที่ปุ่ม ⊕ เมนูบริบทจะปรากฏขึ้น
  2. จากเมนูให้แทรก Sound
  3. ในหน้าต่าง Properties ให้ไปที่คุณสมบัติ SoundId และป้อน ID สินทรัพย์เสียงที่ถูกต้อง.
  4. (ทางเลือก) หากคุณต้องการให้เสียงเริ่มเล่นเมื่อประสบการณ์เริ่มต้น ให้เปิดคุณสมบัติ Playing
  5. (ทางเลือก) หากวัตถุ Sound นี้เป็นเพียงแทร็กเดียวที่คุณต้องการเล่นในสถานที่ ให้เปิดคุณสมบัติ Looped

ปรับแต่งวัตถุเสียง

คุณสมบัติของวัตถุ Sound ทำงานร่วมกันเพื่อมีอิทธิพลต่อวิธีที่ผู้ใช้สัมผัสเสียงของคุณ เช่น:

  • ระดับเสียงที่พวกเขาได้ยินเสียงเฉพาะตัวและเทียบกับเสียงอื่น (ระดับเสียง).
  • วิธีที่พวกเขารับรู้ระดับเสียงเมื่อพวกเขาเคลื่อนที่ออกไปจากแหล่งเสียง (RollOffMinDistance, RollOffMaxDistance, และ RollOffMode)
  • ส่วนใดของเสียงที่พวกเขาสามารถฟังได้ (TimePosition).
  • ความเร็วและระดับเสียงที่พวกเขาฟัง (PlaybackSpeed).
  • ถ้าเสียงเล่นซ้ำอัตโนมัติเมื่อเสร็จสิ้น (Looped).

ระดับเสียง

คุณสมบัติ Volume ช่วยให้คุณตั้งค่าระดับเสียงของเสียงของคุณได้ทุกที่ตั้งแต่ 0 (เงียบ) ถึง 10 (เสียงดังก้อง) หากคุณต้องการเปลี่ยนระดับเสียงของวัตถุ Sound หลายตัวพร้อมกัน ให้จัดกลุ่มพวกมันไว้ใน กลุ่มเสียง.

RollOffMinDistance และ RollOffMaxDistance

RollOffMinDistance และ RollOffMaxDistance กำหนดระยะของการที่ผู้ใช้รับรู้ระดับเสียงจากเสียงตำแหน่ง สำหรับเสียงโวลูเมตริก, RollOffMinDistance คือระยะขั้นต่ำใน studs ที่เสียงเริ่มลดระดับเสียงเมื่อผู้ฟังของไคลเอนต์ เคลื่อนที่ออกจาก BasePart และคุณสมบัติ RollOffMaxDistance คือระยะสูงสุดใน studs ที่ผู้ฟังของไคลเอนต์สามารถได้ยินเสียงจากพื้นผิวของวัตถุ

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

RollOffMode

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

RollOffModeคำอธิบาย
Inverse (ค่าเริ่มต้น)ระดับเสียงจะลดลงอย่างฉับพลันจาก RollOffMinDistance แต่ระดับเสียงที่ลดลงจะช้าลงมากขึ้นเมื่อผู้ใช้เข้าใกล้ถึง RollOffMaxDistance เมื่อพวกเขาถึง RollOffMaxDistance เสียงจะเงียบ
Linearเสียงจะลดระดับเสียงอย่างเป็นเส้นตรงระหว่าง RollOffMinDistance และ RollOffMaxDistance เมื่อผู้ใช้ถึง RollOffMaxDistance เสียงจะเงียบ
InverseTaperedระดับเสียงตามโมเดลผกผันเมื่อใกล้กับ RollOffMinDistance และโมเดลเส้นตรงเมื่อผู้ใช้ใกล้กับ RollOffMaxDistance เสียงจะเข้าใกล้ความเงียบที่ระยะทางสูงสุด
LinearSquareเสียงจะลดระดับเสียงระหว่าง RollOffMinDistance และ RollOffMaxDistance ด้วยความสัมพันธ์เชิงเส้นกำลังสอง เสียงจะเข้าใกล้ความเงียบที่ระยะทางสูงสุด

PlaybackSpeed

คุณสมบัติ PlaybackSpeed ช่วยให้คุณกำหนดความเร็วที่เสียงของคุณเล่นได้ ตัวอย่างเช่น หากคุณตั้งค่า PlaybackSpeed เป็นค่า 2 เสียงของคุณจะเล่นเร็วขึ้นสองเท่าและมีความถี่สูงขึ้นหนึ่งอ็อคตาฟ สำหรับค่า 0.5 เสียงจะเล่นช้าลงสองเท่าและมีความถี่ต่ำลงหนึ่งอ็อคตาฟ

TimePosition

คุณสมบัติ 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

คุณสมบัติ Looped ช่วยให้คุณทำซ้ำเสียงหลังจากที่มันเล่นจบ เมื่อเปิดเป็น true เสียงของวัตถุ Sound จะเล่นอีกครั้ง นี่มีประโยชน์ในการใช้สำหรับ เสียงพื้นหลัง เพื่อให้แน่ใจว่าประสบการณ์ของคุณไม่มีช่วงเวลาที่เงียบอย่างกะทันหัน

สคริปต์วัตถุเสียง

เล่นเสียงตามบริบท

นอกจากการเล่นเสียงอัตโนมัติผ่านคุณสมบัติ Playing ของวัตถุ Sound คุณสามารถเล่นเสียงตามบริบทจาก LocalScript โดยเรียกใช้ Play() บนวัตถุ Sound ที่เกี่ยวข้อง ตัวอย่างเช่น:


local Workspace = game:GetService("Workspace")
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://9120386436"
sound.Looped = true
sound.Parent = Workspace
sound:Play()

อีกวิธีหนึ่ง ถ้าสถานที่จะมีหลายเพลง คุณสามารถเล่นเพลงเฉพาะจาก LocalScript:


local SoundService = game:GetService("SoundService")
local musicTrack = SoundService:FindFirstChild("LucidDream")
if not musicTrack.IsPlaying then
musicTrack:Play()
end

เล่นเสียงส่วนติดต่อ

คุณสามารถเล่นเสียงส่วนติดต่อสำหรับ GuiObjects เช่น ปุ่ม โดยการเชื่อมต่อวัตถุ Sound เข้ากับตัวฟังเหตุการณ์ Activated นี่ช่วยให้คุณให้ข้อเสนอแนะแบบเสียงแก่ผู้ใช้ เช่น เมื่อพวกเขาเลื่อนเมาส์ไปหรือกดปุ่ม

เพื่อเล่นเสียงวัตถุ Sound เมื่อผู้ใช้เปิดการใช้งาน TextButton หรือ ImageButton:

  1. ในหน้าต่าง Explorer ให้เคอร์เซอร์ไปเหนือ TextButton หรือ ImageButton แล้วคลิกที่ปุ่ม ⊕ เมนูบริบทจะปรากฏขึ้น
  2. จากเมนูให้แทรก LocalScript หรือ Script พร้อมตั้งค่า RunContext เป็น Enum.RunContext.Client
  3. วางโค้ดต่อไปนี้ลงในสคริปต์ แล้วแทนที่ 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)
©2026 Roblox Corporation. Roblox, โลโก้ Roblox และ Powering Imagination เป็นส่วนหนึ่งของเครื่องหมายการค้าที่จดทะเบียน และไม่ได้จดทะเบียนของเราในสหรัฐฯ และประเทศอื่นๆ