Obiekty dźwiękowe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Odtwarzanie dźwięku odbywa się za pomocą obiektów Sound, które emitują dźwięk w ramach doświadczenia. Roblox przypisuje każdemu zasobowi audio unikalny identyfikator, który możesz przypisać do obiektów Sound, aby odtworzyć konkretny efekt dźwiękowy lub utwór muzyczny. Możesz ustawić odtwarzanie tego dźwięku automatycznie w czasie rzeczywistym lub uruchomić je z skryptów.

Aby zmodyfikować odtwarzanie wielu obiektów Sound, możesz przypisać je do grupy dźwiękowej i kontrolować głośność całej grupy, a także zastosować dynamiczne efekty.

Tworzenie obiektów dźwiękowych

Istnieją trzy miejsca, w których możesz stworzyć obiekt Sound, a każda z tych lokalizacji determinuje, jak dźwięk emituje oraz jak zmienia się głośność w odniesieniu do pozycji użytkownika w ramach doświadczenia.

LokalizacjaJak dźwięk emitujeJak zmienia się głośność
Dziecko bloku, sfery lub cylindra BasePart.Dźwięk emituje na zewnątrz z całej powierzchni części.Głośność zmienia się w zależności od odległości między słuchaczem użytkownika a pozycją części oraz jej rozmiaru.
Dziecko Attachment, MeshPart, TrussPart, WedgePart lub CornerWedgePart.Dźwięk emituje na zewnątrz z pojedynczego punktu mocowania lub środka części.Głośność zmienia się w zależności od odległości między słuchaczem użytkownika a pozycją mocowania/części.
W SoundService lub Workspace.Dźwięk emituje w całym doświadczeniu.Głośność i pozycja panowania pozostają takie same, niezależnie od pozycji lub rotacji słuchacza użytkownika.

Dźwięk pozycyjny

Dźwięk pozycyjny to dźwięk, który użytkownicy mogą usłyszeć tylko w pobliżu konkretnej pozycji w ramach doświadczenia. Istnieją dwa typy dźwięku pozycyjnego, które możesz wykorzystać: wolumetryczny i źródło punktowe.

Wolumetryczny

Dźwięk wolumetryczny to najbardziej realistyczna opcja dźwiękowa, ponieważ dynamicznie zmienia się w zależności od pozycji użytkownika względem źródła dźwięku. Na przykład, jeśli użytkownik znajduje się wewnątrz BasePart z dzieckiem Sound, dźwięk odtwarza się wokół użytkownika, podobnie jak muzyka w słuchawkach grająca na tej samej głośności w każdym głośniku. Kiedy użytkownik opuszcza część, dźwięk stopniowo zmniejsza się na głośności i staje się bardziej kierunkowy w każdym głośniku, przesuwając się wokół głowy użytkownika, gdy ich słuchacz się obraca. Aby uzyskać informacje na temat właściwości, które kontrolują, jak głośny jest twój dźwięk na różnych odległościach od części, zobacz RollOffMinDistance i RollOffMaxDistance.

Rozmiar BasePart również wpływa na głośność dźwięku, ponieważ większe BaseParts wytwarzają szerszy obszar, w którym użytkownicy mogą usłyszeć dźwięk, a gdy użytkownik oddala się od dużego BasePart, głośność zmniejsza się wolniej. Następujący przykład pokazuje BasePart, który ma rozmiar miasta z obiektem Sound odtwarzającym dźwięk tła. Użytkownicy A i B doświadczają dźwięku inaczej: użytkownik B jest bliżej dużego BasePart, więc w większości słyszy dźwięk o tej samej głośności w obu głośnikach. Natomiast użytkownik A jest dalej od miasta, więc dźwięk, który słyszy, jest cichszy i bardziej kierunkowy niż dźwięk użytkownika B, odtwarzany z różną głośnością w każdym głośniku.

Dźwięk wolumetryczny jest przydatny dla każdego dźwięku, który musi być immersyjny wokół użytkownika i zmieniać się dynamicznie w zależności od pozycji użytkownika, takich jak scena koncertu czy strefy ambientalne jak deszcz. Gdy eksperymentujesz z umieszczaniem obiektu Sound na BaseParts o różnych rozmiarach i położeniach względem użytkowników, możesz usłyszeć, jak immersyjny może być dźwięk wolumetryczny.

Aby stworzyć obiekt Sound do dźwięku wolumetrycznego:

  1. W oknie Explorer wybierz SoundService.

  2. W oknie Properties przejdź do właściwości VolumetricAudio, a następnie ustaw ją na Enabled.

  3. W oknie Explorer najedź na BasePart, a następnie kliknij przycisk ⊕. Pojawi się menu kontekstowe.

  4. Z menu wstaw Sound.

  5. W oknie Properties przejdź do właściwości SoundId i wpisz prawidłowy identyfikator zasobu audio.

  6. (Opcjonalnie) Jeśli chcesz, aby dźwięk rozpoczął odtwarzanie, gdy doświadczenie się zaczyna, włącz właściwość Playing.

Źródło punktowe

W przeciwieństwie do dźwięku wolumetrycznego, dźwięk źródła punktowego emituje tylko z jednego punktu. Ten typ dźwięku jest przydatny do eksplozji, dźwięków uderzenia, urządzeń elektronicznych i dialogów.

Aby stworzyć obiekt Sound do dźwięku źródła punktowego:

  1. W oknie Explorer najedź na mocowanie, kratę, klin lub klin narożny, a następnie kliknij przycisk ⊕. Pojawi się menu kontekstowe.
  2. Z menu wstaw Sound.
  3. W oknie Properties przejdź do właściwości SoundId i wpisz prawidłowy identyfikator zasobu audio.
  4. (Opcjonalnie) Jeśli chcesz, aby dźwięk rozpoczął odtwarzanie, gdy doświadczenie się zaczyna, włącz właściwość Playing.

Dźwięk w tle

Dźwięki w tle grają na tej samej głośności, niezależnie od tego, gdzie użytkownik się porusza w ramach doświadczenia. Ten typ dźwięku jest przydatny do muzyki, którą chcesz odtwarzać dla użytkowników, zwłaszcza gdy chcesz stworzyć ścieżkę dźwiękową z kilku plików audio.

Najlepiej jest trzymać wszystkie obiekty Sound dla dźwięku w tle w jednej lokalizacji w Workspace dla celów organizacyjnych, gdy kontynuujesz dodawanie i edytowanie dźwięku w swoim doświadczeniu. Następujący przykład przechowuje nowy obiekt Sound w kontenerze SoundService, ponieważ ta usługa określa, jak obiekty Sound odtwarzają się w doświadczeniach.

Aby stworzyć obiekt Sound do dźwięku w tle:

  1. W oknie Explorer najedź na SoundService, a następnie kliknij przycisk ⊕. Pojawi się menu kontekstowe.
  2. Z menu wstaw Sound.
  3. W oknie Properties przejdź do właściwości SoundId i wpisz prawidłowy identyfikator zasobu audio.
  4. (Opcjonalnie) Jeśli chcesz, aby dźwięk rozpoczął odtwarzanie, gdy doświadczenie się zaczyna, włącz właściwość Playing.
  5. (Opcjonalnie) Jeśli ten obiekt Sound jest jedynym utworem, który chcesz odtwarzać w danym miejscu, włącz jego właściwość Looped.

Dostosowywanie obiektów dźwiękowych

Właściwości obiektu Sound współpracują ze sobą, aby wpływać na to, jak użytkownicy doświadczają twojego dźwięku, takie jak:

  • Jak głośno słyszą konkretny dźwięk indywidualnie i w porównaniu z innymi (Volume).
  • Jak postrzegają głośność, gdy oddalają się od źródła dźwięku (RollOffMinDistance, RollOffMaxDistance i RollOffMode)
  • Jaką część dźwięku mogą odsłuchiwać (TimePosition).
  • Jak szybko i na jakiej wysokości dźwięk jest odtwarzany (PlaybackSpeed).
  • Czy dźwięk automatycznie odtwarza się ponownie po zakończeniu (Looped).

Głośność

Właściwość Volume pozwala ustawić głośność twojego dźwięku w zakresie od 0 (cisza) do 10 (głośno). Jeśli chcesz zmienić głośność wielu obiektów Sound jednocześnie, umieść je w grupie dźwiękowej.

RollOffMinDistance i RollOffMaxDistance

RollOffMinDistance i RollOffMaxDistance określają zakres, w jakim użytkownik postrzega głośność z dźwięku pozycyjnego. W przypadku dźwięku wolumetrycznego, RollOffMinDistance to minimalna odległość w studach, w której dźwięk zaczyna zmniejszać głośność, gdy słuchacz klienta oddala się od rodzica BasePart, a właściwość RollOffMaxDistance to maksymalna odległość w studach, z jakiej słuchacz klienta może usłyszeć dźwięk z powierzchni obiektu.

W przypadku dźwięku ze źródła punktowego, RollOffMinDistance i RollOffMaxDistance działają podobnie jak w przypadku dźwięku wolumetrycznego, ale odległość zrzutu, którą kontrolują te właściwości, nie otacza obiektu, a jedynie wpływa na odległość od źródła punktowego.

RollOffMode

Właściwość RollOffMode pozwala zdecydować, jak dźwięk zanika, gdy odległość między słuchaczem użytkownika a rodzicem obiektu Sound wzrasta. Możesz ustawić tę właściwość na jedną z czterech wartości enum Enum.RollOffMode.

RollOffModeOpis
Inverse (domyślny)Głośność początkowo zanika nagle z RollOffMinDistance, ale zanikanie głośności staje się coraz bardziej łagodne, im bliżej użytkownik osiąga RollOffMaxDistance. Gdy osiągną RollOffMaxDistance, dźwięk milknie.
LinearGłośność zanika liniowo między RollOffMinDistance i RollOffMaxDistance. Gdy użytkownik osiągnie RollOffMaxDistance, dźwięk milknie.
InverseTaperedGłośność podąża za modelem odwrotnym, gdy jest blisko RollOffMinDistance, a modelem liniowym kwadratowym, gdy użytkownik jest blisko RollOffMaxDistance. Dźwięk zbliża się do ciszy w maksymalnym punkcie odległości.
LinearSquareGłośność zanika między RollOffMinDistance i RollOffMaxDistance z liniową kwadratową zależnością. Dźwięk zbliża się do ciszy w maksymalnym punkcie odległości.

PlaybackSpeed

Właściwość PlaybackSpeed pozwala określić prędkość, w jakiej twój dźwięk jest odtwarzany. Na przykład, jeśli ustawisz PlaybackSpeed na wartość 2, twój dźwięk będzie odtwarzany dwa razy szybciej i o jedną oktawę wyżej. Podobnie, jeśli ustawisz to na wartość 0.5, twój dźwięk będzie odtwarzany dwa razy wolniej i o jedną oktawę niżej.

TimePosition

Właściwość TimePosition wyświetla, w sekundach, jaka pozycja w obrębie próbki audio jest obecnie słyszana przez użytkownika. Ta właściwość jest przydatna zarówno do odtwarzania tylko sekcji próbki audio, jak i wywoływania zdarzenia, które ma miejsce, gdy dźwięk osiąga określoną pozycję. Na przykład, poniższy przykład kodu powoduje, że emitter cząstek emituje białą cząstkę w kształcie pierścienia ponad częścią w ograniczonym zakresie czasowym utworu audio.


local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
-- Tworzenie nowej części
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
-- Tworzenie mocowania na części
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 0.5, 0)
attachment.Parent = part
-- Tworzenie emitera cząstek na mocowaniu
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
-- Tworzenie dźwięku na mocowaniu
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://1835405646"
sound.Parent = attachment
-- Odtwarzanie dźwięku
sound:Play()
-- Rozpoczęcie sprawdzania, czy emitter powinien być włączony
RunService.Heartbeat:Connect(function()
-- Włącz emitter w określonym zakresie czasowym dźwięku; w przeciwnym razie go wyłącz
emitter.Enabled = sound.TimePosition >= 5 and sound.TimePosition < 20
end)

Looped

Właściwość Looped pozwala powtarzać dźwięk po zakończeniu odtwarzania. Gdy jest ustawiona na true, dźwięk obiektu Sound odtwarza się ponownie. To przydatne, aby zastosować to do dźwięku w tle, aby upewnić się, że twoje doświadczenie nigdy nie ma nagłych przerw w dźwięku.

Obiekty dźwiękowe skryptu

Odtwarzanie dźwięku kontekstowo

Oprócz automatycznego odtwarzania dźwięku przez właściwość Playing obiektu Sound, możesz odtwarzać dźwięk kontekstowo z LocalScript, wywołując Play() na odpowiednim obiekcie Sound. Na przykład:


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

Alternatywnie, jeśli miejsce będzie zawierać wiele utworów, możesz odtworzyć konkretny utwór z LocalScript:


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

Odtwarzanie dźwięku interfejsu

Możesz odtwarzać dźwięk interfejsu dla GuiObjects, takich jak przyciski, podłączając obiekt Sound do zdarzenia Activated. Pozwala to na udzielenie dźwiękowej informacji zwrotnej użytkownikom, na przykład, gdy najedzie nad nim lub go naciśnie.

Aby odtworzyć dźwięk obiektu Sound, gdy użytkownik aktywuje TextButton lub ImageButton:

  1. W oknie Explorer najedź na TextButton lub ImageButton, a następnie kliknij przycisk ⊕. Pojawi się menu kontekstowe.
  2. Z menu wstaw albo LocalScript, albo Script z RunContext ustawionym na Enum.RunContext.Client.
  3. Wklej poniższy kod do skryptu, a następnie zastąp SOUND_NAME nazwą obiektu Sound znajdującego się wewnątrz kontenera 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. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.