การเล่นเสียงเกิดขึ้นผ่าน Sound วัตถุที่เปิดเสียงภายในประสบการณ์ โรบ็อกส์กำหนดเลขรหัสเฉพาะที่คุณสามารถกำหนดได้สำหรับ เสียง
เพื่อปรับแต่งการเล่นของวัตถุ Sound หลายราย คุณสามารถกำหนดไว้ให้พวกเขาไปที่ กลุ่มเสียง เสียง และควบคุมปริมาณเสียงของกลุ่มโดยรวม นอกจากนี้คุณยังสามารถใช้ เอฟเฟ็กต์
การสร้างวัตถุเสียง
มีสามสถานที่ที่คุณสามารถสร้างวัตถุ Sound และแต่ละสถานที่จะกำหนดวิธีที่เสียงปล่อยออกและเปลี่ยนแปลงปริมาณในเชิงสัมพันธ์กับตำแหน่งของผู้ใช้ในประสบการณ์
สถานที่ | เรื่องเสียง | เปลี่ยนแปลงปริมาณ |
---|---|---|
ลูกบาศก์ของบล็อก BasePart | เสียงประกายออกจากพื้นผิวทั้งหมดของชิ้นส่วน | การเปลี่ยนแปลงปริมาณขึ้นอยู่กับระยะทางระหว่างผู้ใช้เครื่องฟังเสียงและตำแหน่งของชิ้นส่วน รวมถึงขนาดของมัน |
ลูกของ Attachment ลูกของ MeshPart ลูกของ TrussPart ลูกของ 1> Class.WedgePart1> หรือ 4> Class.CornerWedgePart4> | เสียงส่งออกจากจุดหนึ่งหรือศูนย์กลางการแขวนติด | การเปลี่ยนแปลงปริมาณขึ้นอยู่กับระยะทางระหว่างเครื่องฟังเสียงของผู้ใช้และตำแหน่งอุปกรณ์/ชิ้นส่วน |
ภายใน SoundService หรือ Workspace | เสียงประกายทั่วประสบการณ์ | ตำแหน่งและตำแหน่งของกระทะยังคงเหมือนกันไม่ว่าจะเป็นตำแหน่งของผู้ใช้หรือตำแหน่งการหมุน |
เสียงตำแหน่ง
เสียงตำแหน่งเป็นเสียงที่ผู้ใช้สามารถได้ยินได้เฉพาะในตำแหน่งที่กำหนดในประสบการณ์ มีสองประเภทของเสียงตำแหน่งที่คุณสามารถใช้ได้: เสียงตำแหน่ง volumetric และ point แหล่งที่มา
ตัวชี้วัด
เสียงรอบตัวเป็นตัวเลือกเสียงที่เป็นจริงที่สุดเนื่องจากมันเปลี่ยนแปลง
ขนาดของ
เสียงระดับอวกาศเป็นประโยชน์สำหรับเสียงที่ต้องการให้อยู่รอบ ๆ ผู้ใช้และเปลี่ยนแปลงได้ตามตำแหน่งผู้ใช้ เช่นเวทีคอนเสิร์ตหรือเขต
เพื่อสร้างวัตถุ Sound สำหรับเสียงปริมาณ:
ใน หน้าต่าง Explorer เลือก SoundService
ในหน้าต่าง โปรพีเพอร์ตี้ ค้นหาไปยังโปรพีเพอร์ตี้ VolumetricAudio แล้วตั้งค่าให้เป็น เปิดใช้งาน
ใน หน้าต่าง Explorer ห้ามเลื่อนเมาส์ไปที่ BasePart แล้วคลิกปุ่ม ⊕ เมนู上下컨텍สต์จะปรากฏขึ้น หน้าต่างบริบท
จากเมนู ใส่ เสียง
ในหน้าต่าง โปรพีเพอร์ตี้ ค้นหาไปยังสมบัติสมบัติ SoundId และป้อน รหัสสมบัติสมบัติ ที่ถูกต้อง
(อpcional) หากคุณต้องการให้เสียงเริ่มเล่นเมื่อประสบการณ์เริ่มต้นเล่นให้เปิด พรรคเล่น สมบัติสมบัติ
แหล่งจุด
ต่างจากเสียงทรงปริภูมิ, เสียงที่มาจากจุดเดียวเท่านั้นจะปล่อยออกจากจุดเดียว นี่เป็นประเภทของเสียงที่มีประโยชน์สำหรับระเบิดเสียง, เสียงผลกระทบ, อุปกรณ์อิเล็กทรอนิกส์, และการแชท
เพื่อสร้างวัตถุ Sound สำหรับเสียงจุด:
ใน หน้าต่าง Explorer ห้ามเลื่อนเมาส์ไปที่อุปกรณ์อื่น ๆ รั้ว ขอค้อน หรือมุมหมุน แล้วคลิกปุ่ม ⊕ เมนูบริบทรรมน์จะปรากฏขึ้น
จากเมนู ใส่ เสียง
ในหน้าต่าง โปรพีเพอร์ตี้ ค้นหาไปยังสมบัติสมบัติ SoundId และป้อน รหัสสมบัติสมบัติ ที่ถูกต้อง
(อpcional) หากคุณต้องการให้เสียงเริ่มเล่นเมื่อประสบการณ์เริ่มต้นเล่นให้เปิด พรรคเล่น สมบัติสมบัติ
เสียงพื้นหลัง
เสียงพื้นหลังเล่นที่เสียงเดียวกันไม่ว่าผู้ใช้จะอยู่ที่ไหนในประสบการณ์ของคุณ ประเภทของเสียงนี้มีประโยชน์สำหรับดนตรีที่คุณต้องการเล่นสำหรับผู้ใช้เป็นพิเศษเมื่อคุณต้องการสร้างเสียงแทร็กขอ
ดีกว่าจะเก็บไว้ทั้งหมด Sound วัตถุสำหรับเสียงพื้นหลังในสถานที่เดียวของ Workspace สำหรับจุดมุ่งหมายขององค์กรเมื่อคุณเพิ่มและ
เพื่อสร้างวัตถุ Sound สำหรับเสียงพื้นหลัง:
ใน หน้าต่าง Explorer ให้เลื่อนเมาส์ไปที่ SoundService แล้วคลิกปุ่ม ⊕ ตัวเรื่อง เมนูบริบทรัพย์แสดงขึ้นมา
จากเมนู ใส่ เสียง
ในหน้าต่าง โปรพีเพอร์ตี้ ค้นหาไปยังสมบัติสมบัติ SoundId และป้อน รหัสสมบัติสมบัติ ที่ถูกต้อง
(อpcional) หากคุณต้องการให้เสียงเริ่มเล่นเมื่อประสบการณ์เริ่มต้นเล่นให้เปิด พรรคเล่น สมบัติสมบัติ
(อpcional) หากวัตถุนี้ Sound นี้เป็นวัตถุเดียวที่คุณต้องการเล่นในสถานที่, เปิด โปรประวัติ ของมัน Looped
การปรับแต่งวัตถุเสียง
Sound ตัวอย่างโครงสร้างของวัตถุทำงานร่วมกันเพื่อส่งผลกระทบต่อวิธีการที่ผู้ใช้ประสบการณ์เสียงของคุณ เช่น:
- พวกเขาได้ยินเสียงที่แน่นอนในแต่ละรายการและในความสัมพันธ์กัน (ปริมาณ)
- พวกเขารับรู้ความดังเมื่อพวกเขาเคลื่อนไปออกจากที่อยู่แห่งแหล่งเสียง ( ระยะเวลาการเลื่อนออกของมินิดิสทรัคท์ , ระยะเวลาการเลื่อนออกของมินิดิสทรัคท์ และ ระยะเวลาการเลื่อนออ
- ส่วนใดของเสียงที่พวกเขาสามารถฟังได้ ( ตําแหน่งเวลา )
- พวกเขาได้ยินเสียงเร็วแค่ไหนและที่ความเร็วใด ( ความเร็วการเล่นได้รับการเล่นได้รับการเล่นได้รับการเล่นได้รับการเล่นได้รับการเล่นได้รับการเล่นได้รับการเล่นได้รับการเล่นได้รับการเล่นได้รับการเล่นได้รับการเล่นได้ร
- หากเสียงเล่นซ้ำอัตโนมัติเมื่อสำเร็จ ( เชื่อมต่อ )
ปริมาณ
คุณสมบัติ Volume ช่วยให้คุณตั้งค่าปริมาณเสียงของเสียงของคุณทุกที่ตั้งแต่ 0 (ความชู่) ไปยัง 10 (บูม) หากคุณต้
RollOffMinDistance และ RollOffMaxDistance
RollOffMinDistance และ Class.Sound.RollOffMaxDistance|
สำหรับเสียงที่มาจากจุดเริ่มต้นของอินพุต RollOffMinDistance และ RollOffMaxDistance ทำงานได้เหมือนกับเสียงโวลูมิเตอร์ แต่ค่าระยะเวลาที่ควบคุม
โหมดโรลออฟ
คุณสมบัติ RollOffMode ช่วยให้คุณตัดสินใจได้ว่าเสียงจะลดลงเมื่อระยะระหว่างผู้ฟังของผู้ใช้และพ่อของวัตถุ Sound เป็นพ่อของเราเพิ่มขึ
โหมดโรลออฟ | คำอธิบาย |
---|---|
Inverse (ค่าเริ่มต้น) | ปริมาณเริ่มต้นจาก RollOffMinDistance แต่ปริมาณจะเริ่มต้นเป็นลำดับที่เร็วขึ้นเมื่อผู้ใช้ใกล้จะถึง RollOffMaxDistance มากขึ้น เมื |
Linear | ระดับเสียงลดลงอย่างเชิญชวนระหว่าง RollOffMinDistance และ RollOffMaxDistance เมื่อผู้ใช้ไปถึง RollOffMaxDistance แล้ว เสียงจะหยุดทำงาน |
InverseTapered | ระดับเสียงติดตามรุ่นกลับข้างหลังเมื่อใกล้ถึง RollOffMinDistance และรุ่นเส้นสายเมื่อผู้ใช้อยู่ใกล้ RollOffMaxDistance เสียงจะเข้าสู่สถานะชูติดต่อกันที่จุด |
LinearSquare | ระดับเสียงจะเริ่มต้นที่ RollOffMinDistance และ RollOffMaxDistance ด้วยความสัมพันธ์เส้นสุดที่เป็นลินเนียร์ สื่อเสียงจะหยุดที่จุดสิ้นสุดสูงสุด |
ความเร็วในการเล่น
สมบัติ PlaybackSpeed ช่วยให้คุณสามารถกำหนดความเร็วที่เสียงของคุณเล่นได้ เช่น หากคุณตั้งค่า Class.Sound.
PlaybackSpeed = 0.5 | PlaybackSpeed = 1.0 | PlaybackSpeed = 2.0 |
ตำแหน่งเวลา
สมบัติข้อมูล TimePosition ประกอบด้วยตำแหน่งในตัวอย่างเสียงที่ผู้ใช้กำลังฟังอยู่ในขณะนี้ สมบัติข้อมูลนี้มีประโยชน์สำหรับการเล่นส่ว
local RunService = game:GetService("RunService")
-- สร้างส่วนใหม่
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()
-- เปิดใช้งานตัวออกส่งในช่วงเวลาของเสียง; เปิดใช้งานตัวปิดในช่วงเวลาของเสียง
if sound.TimePosition >= 5 and sound.TimePosition < 20 then
emitter.Enabled = true
else
emitter.Enabled = false
end
end)
ซ้ำ
คุณสมบัติ Looped ช่วยให้คุณทำซ้ำเสียงหลังจากที่มันจบลงแล้ว เมื่อตั้งค่าไว้ที่ true ตัวเสียงของวัตถุ Sound จะเล่นอีกครั้ง
สคริปต์วัตถุเสียง
เล่นเสียงในบริบท
นอกเหนือจากการเล่นเสียงโดยอัตโนมัติผ่านคุณสมบัติ Sound ของ Playing โดยการเรียก LocalScript ในสถานที่เฉพา
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 เช่น ปุ่ม โดยการเชื่อมต่อวัตถุเสียง Class.Sound ไปยังผู้รับการเหยียวโดยตรง นี่ช่วยให้คุณใ
เพื่อเล่นเสียงของวัตถุ Sound เมื่อผู้ใช้เปิดใช้งาน TextButton หรือ ImageButton :
- ใน หน้าต่าง Explorer เลื่อนเมาส์ไปที่ 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)