Đối tượng âm thanh

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Phát lại âm thanh xảy ra thông qua các đối tượng Sound phát ra âm thanh trong trải nghiệm.Roblox gán cho mỗi tài nguyên âm thanh một ID duy nhất mà bạn có thể gán cho Sound để chơi một hiệu ứng âm thanh hoặc bản nhạc cụ thể.Bạn có thể hoặc đặt âm thanh này để phát tự động khi chạy thời gian thực, hoặc kích hoạt nó để phát từ các kịch bản .

Để thay đổi chơi lại của nhiều đối tượng Sound , bạn có thể gán chúng cho một nhóm âm thanh và kiểm soát toàn bộ âm lượng của nhóm, cũng như áp dụng hiệu ứng năng động .

Tạo đối tượng âm thanh

Có ba vị trí bạn có thể tạo một đối tượng Sound và mỗi vị trí xác định cách âm thanh phát ra và thay đổi âm lượng theo vị trí của người dùng trong trải nghiệm.

Vị tríLàm thế nào âm thanh phát raLàm thế nào thay đổi âm lượng
Con của một khối, cầu, hoặc xi lanh BasePart .Âm thanh phát ra từ toàn bộ bề mặt của phần.Thay đổi âm lượng tùy thuộc vào khoảng cách giữa người lắng nghe âm thanh của người dùng và vị trí của phần, cũng như kích thước của nó.
Con của một Attachment , MeshPart , TrussPart , WedgePart , hoặc CornerWedgePart .Âm thanh phát ra từ điểm hoặc phần trung tâm kết nối đơn.Thay đổi âm lượng tùy thuộc vào khoảng cách giữa người lắng nghe âm thanh của người dùng và vị trí phụ kiện/phần.
Trong SoundService hoặc Workspace.Âm thanh phát xuyên suốt trải nghiệm.Khối lượng và vị trí xoay vẫn giữ nguyên không thay đổi bất kể vị trí người lắng nghe âm thanh của người dùng hay vị trí xoay.

Âm âm thanhvị trí

Âm thanh vị trí là âm thanh mà người dùng chỉ có thể nghe gần một vị trí cụ thể trong trải nghiệm.Có hai loại âm thanh vị trí bạn có thể sử dụng: âm lượng và nguồn điểm.

Khối lượng

Âm thanh khối lượng là lựa chọn âm thanh thực tế nhất, vì nó thay đổi năng động tùy thuộc vào vị trí của người dùng đối với nguồn âm thanh.Ví dụ, nếu người dùng nằm trong một BasePart với một đối tượng con Sound , âm thanh phát xung quanh người dùng, tương tự như âm nhạc trong tai nghe chơi với cùng một âm lượng trong mỗi loa.Khi người dùng thoát khỏi phần, âm thanh dần giảm âm lượng và trở nên hướng tâm hơn theo mỗi loa, di chuyển xung quanh đầu của người dùng khi người lắng nghe của họ xoay.Đối với thông tin về các thuộc tính kiểm soát mức độ lớn của âm thanh của bạn ở các khoảng cách khác nhau từ phần, xem RollOffMinDistance và RollOffMaxDistance .

Kích thước của BasePart cũng ảnh hưởng đến âm lượng của âm thanh, vì kích thước lớn hơn BaseParts sản xuất ra khu vực rộng hơn mà người dùng có thể nghe được âm thanh và khi một người dùng di chuyển ra khỏi một khu vực lớn BasePart, âm lượng giảm chậm hơn.Ví dụ sau đây hiển thị một BasePart có kích thước của một thành phố với một đối tượng Sound chơi âm thanh môi trường.Người dùng A và B trải nghiệm âm thanh khác nhau: người dùng B ở gần BasePart lớn hơn, và họ chủ yếu nghe âm thanh xung quanh cùng mức ồn trong cả hai loa.Ngược lại, người dùng A cách xa thành phố hơn, vì vậy âm thanh mà họ nghe là yên lặng hơn và theo hướng hơn người dùng B, chơi ở độ ồn khác nhau trong mỗi loa của họ.

Âm thanh khối lượng hữu ích cho bất kỳ âm thanh nào cần được thâm nhập xung quanh người dùng và thay đổi năng động tùy thuộc vào vị trí của người dùng, chẳng hạn như một sân khấu hòa nhạc hoặc các khu vực môi trường như mưa.Khi bạn thử nghiệm với việc đặt một đối tượng Sound vào BaseParts của các kích thước và vị trí khác nhau từ người dùng, bạn có thể nghe thấy âm thanh volumetric thâm nhập như thế nào.

Để tạo một đối tượng Sound cho âm thanh khối lượng:

  1. Trong cửa sổ Explorer , hãy chọn SoundService .

  2. Trong cửa sổ Tính năng , hãy di chuyển đến thuộc tính VolumetricAudio , sau đó đặt nó thành Bật .

  3. Trong cửa sổ Explorer , di chuột qua một BasePart, sau đó nhấp vào nút ⊕. Một menu ngữ cảnh hiển thị.

  4. Từ menu, nhúng một âm thanh .

  5. Trong cửa sổ Tính năng , hãy di chuyển đến SoundId tính năng và nhập một ID âm thanh hợp lệ audio asset ID.

  6. (Tùy chọn) Nếu bạn muốn âm thanh bắt đầu phát khi trải nghiệm bắt đầu, hãy bật chọn tính năng Chơi .

Nguồn nguồn

Khác với âm thanh khối lượng, âm thanh nguồn điểm chỉ phát ra từ một nguồn điểm duy nhất.Loại âm thanh này hữu ích cho các vụ nổ, tiếng ồn va chạm, thiết bị điện tử và cuộc đối thoại.

Để tạo một đối tượng Sound cho nguồn âm thanh điểm:

  1. Trong cửa sổ Khám phá , di chuột qua một tệp đính kèm, khối trụ, góc cạnh hoặc góc cạnh, sau đó nhấp vào nút ⊕. Một menu bối cảnh hiển thị.
  2. Từ menu, nhúng một âm thanh .
  3. Trong cửa sổ Tính năng , hãy di chuyển đến SoundId tính năng và nhập một ID âm thanh hợp lệ audio asset ID.
  4. (Tùy chọn) Nếu bạn muốn âm thanh bắt đầu phát khi trải nghiệm bắt đầu, hãy bật chọn tính năng Chơi .

Nền âm thanh nền

Nhạc nền được phát với cùng một âm lượng, bất kể người dùng di chuyển ở đâu trong trải nghiệm của bạn.Loại âm thanh này hữu ích cho nhạc mà bạn muốn chơi cho người dùng, đặc biệt là khi bạn muốn tạo một bản nhạc có nhiều tệp âm thanh.

Tốt nhất là giữ tất cả các Sound đối tượng cho âm thanh nền ở một vị trí duy nhất của Khoang làm việc vì mục đích tổ chức khi bạn tiếp tục thêm và chỉnh sửa âm thanh trong trải nghiệm của mình.Ví dụ sau đây lưu đối tượng mới dưới thùng chứa , vì dịch vụ này xác định cách các đối tượng chơi trong trải nghiệm.

Để tạo một đối tượng Sound cho âm thanh nền:

  1. Trong cửa sổ Explorer , di chuột qua Dịch vụ âm thanh , sau đó nhấp vào nút ⊕. Một menu ngữ cảnh hiển thị.
  2. Từ menu, nhúng một âm thanh .
  3. Trong cửa sổ Tính năng , hãy di chuyển đến SoundId tính năng và nhập một ID âm thanh hợp lệ audio asset ID.
  4. (Tùy chọn) Nếu bạn muốn âm thanh bắt đầu phát khi trải nghiệm bắt đầu, hãy bật chọn tính năng Chơi .
  5. (Tùy chọn) Nếu đối tượng này Sound là track duy nhất bạn muốn chơi ở địa điểmđó, hãy bật tính năng Lặp lại của nó.

Tùy chỉnh các đối tượng âm thanh

Sound tính chất đối tượng làm việc cùng nhau để ảnh hưởng đến cách người dùng trải nghiệm âm thanh của bạn, chẳng hạn như:

Âm lượng

Thuộc tính Volume cho phép bạn đặt âm lượng của âm thanh của bạn ở bất cứ nơi nào từ 0 (im lặng) đến 10 (phát ra tiếng vang).Nếu bạn muốn thay đổi âm lượng của nhiều Sound đối tượng cùng một lúc, cha chúng dưới một nhóm âm thanh .

RollOffMinDistance và RollOffMaxDistance

RollOffMinDistanceRollOffMaxDistance xác định phạm vi mà một người dùng nhận thấy âm lượng từ âm thanh vị trí.Đối với âm thanh khối lượng, là khoảng cách tối thiểu trong đinh tán mà âm thanh bắt đầu giảm âm lượng khi người lắng nghe của khách hàng di chuyển ra khỏi , và tính năng là khoảng cách tối đa trong đinh tán mà người lắng nghe của khách hàng có thể nghe âm thanh từ bề mặt của đối tượng.

Đối với âm thanh nguồn điểm, RollOffMinDistanceRollOffMaxDistance hoạt động tương tự như âm thanh khối lượng, nhưng khoảng cách cuộn ra các thuộc tính này không bao quanh đối tượng, nó chỉ ảnh hưởng đến khoảng cách ra khỏi điểm nguồn.

Chế độ cuộn ra ngoài

Thuộc tính RollOffMode cho phép bạn quyết định cách âm thanh biến mất khi khoảng cách giữa người lắng nghe của người dùng và đối tượng cha của đối tượng Sound tăng lên.Bạn có thể đặt thuộc tính này thành một trong bốn giá trị của Enum.RollOffMode enum.

Chế độ cuộn ra ngoàiMô tả
Inverse (mặc định)Khối lượng ban đầu mờ dần từ RollOffMinDistance , nhưng khối lượng mờ dần trở nên từ từ hơn khi người dùng càng gần đến việc đạt được RollOffMaxDistance .Khi chúng đạt đến RollOffMaxDistance, âm thanh sẽ im lặng.
LinearÂm lượng biến thành tuyến tính giữa RollOffMinDistanceRollOffMaxDistance . Một khi người dùng đạt đến RollOffMaxDistance , âm thanh sẽ trở nên im lặng.
InverseTaperedKhối lượng tuân theo mô hình ngược khi gần RollOffMinDistance và mô hình hình vuông trực tiếp khi một người dùng gần RollOffMaxDistance .Các tiếp cận âm thanh im lặng tại điểm khoảng cách tối đa.
LinearSquareÂm lượng biến mất giữa RollOffMinDistanceRollOffMaxDistance với một mối quan hệ vuông trực tiếp. Các tiếp cận âm thanh lặng tại điểm khoảng cách tối đa.

Tốc độ phát lại

Thuộc tính PlaybackSpeed cho phép bạn xác định tốc độ mà âm thanh của bạn phát.Ví dụ, nếu bạn đặt PlaybackSpeed ở một giá trị của 2 , âm thanh của bạn sẽ chơi nhanh hơn gấp hai lần và cao hơn một quãng trong âm lượng.Tương tự, nếu bạn đặt nó thành giá trị của 0.5 , âm thanh của bạn chơi chậm hơn gấp hai lần và một octave thấp hơn trong âm lượng.

Vị trí thời gian

Thuộc tính TimePosition hiển thị, trong vài giây, vị trí trong mẫu âm thanh mà người dùng hiện đang nghe.Tính năng này hữu ích cho việc chỉ chơi một phần của mẫu âm thanh hoặc kích hoạt một sự kiện xảy ra một lần khi âm thanh đạt đến một vị trí cụ thể.Ví dụ, mã mẫu sau đây gây ra việc một phát xạ viên phát ra một hạt vòng trắng trên một phần trong phạm vi thời gian giới hạn của một bản nhạc âm thanh.


local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
-- Tạo một phần mới
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
-- Tạo một phụ lục trên phần
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 0.5, 0)
attachment.Parent = part
-- Tạo một phát xạ viên trên phụ lục
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
-- Tạo một âm thanh trên phụ lục
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://1835405646"
sound.Parent = attachment
-- Chơi âm thanh
sound:Play()
-- Bắt đầu kiểm tra xem phát xạ viên có nên được bật không
RunService.Heartbeat:Connect(function()
-- Bật kích hoạt phát xạ trong phạm vi thời gian của âm thanh; nếu không, vô hiệu hóa nó
emitter.Enabled = sound.TimePosition >= 5 and sound.TimePosition < 20
end)

Lặp lại

Thuộc tính Looped cho phép bạn lặp lại âm thanh sau khi nó đã kết thúc phát.Khi được đặt thành true , âm thanh của đối tượng Sound lại được phát.Điều này hữu ích để áp dụng cho âm thanh nền để đảm bảo trải nghiệm của bạn không bao giờ có sự im lặng đột ngột.

Đối tượng âm thanh kịch bản

Chơi âm thanh theo ngữ cảnh

Ngoài việc phát nhạc tự động thông qua thuộc tính của đối tượng , bạn có thể phát nhạc theo ngữ cảnh bằng cách gọi vào đối tượng tương ứng .Ví dụ:


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

Ngoài ra, nếu nơi sẽ có nhiều bản nhạc, bạn có thể chơi một bản nhạc cụ thể từ một LocalScript :


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

Chơi giao diện âm thanh

Bạn có thể chơi âm thanh giao diện cho GuiObjects như nút bằng cách kết nối một đối tượng Sound vào người lắng nghe sự kiện Activated.Điều này cho phép bạn cung cấp phản hồi âm thanh cho người dùng, chẳng hạn như khi họ lướt qua hoặc nhấn nó.

Để chơi âm thanh của một đối tượng Sound khi một người dùng kích hoạt một TextButton hoặc ImageButton :

  1. Trong cửa sổ Explorer, di chuột qua TextButton hoặc ImageButton, sau đó nhấp vào nút ⊕. Một menu ngữ cảnh hiển thị.
  2. Từ menu, chèn vào đó một LocalScript hoặc một Script với RunContext được đặt thành Enum.RunContext.Client .
  3. Sao chép mã sau vào kịch bản, sau đó thay thế SOUND_NAME bằng tên của một đối tượng Sound nằm bên trong thùng chứa 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)