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 następuje poprzez obiekty Sound, które emitują dźwięk w doświadczeniu. Roblox przydziela każdemu audio unikalny identyfikator, który możesz przypisać do Sound, aby odtwarzać określony efekt dźwiękowy lub utwór muzyczny. Możesz ustawić to autom

Aby zmodyfikować odtwarzanie wielu obiektów Sound, możesz przypisać je do grupy dźwiękowej sound i kontrolować cały dźwięk grupa, a także zastosować efekty dźwiękowe dynamiczne.

Tworzenie obiektów dźwiękowych

Są trzy lokalizacje, w których można utworzyć obiekt Sound, a każda lokalizacja określa, jak emituje się dźwięk i zmienia się jego głośność w zależności od pozycji użytkownika w doświadczeniu.

LokalizacjaJak emituje audioJak zmiany wolumenu
Dziecko bloku, kuli lub cylindra BasePart .Dźwięk wydobywa się z całej powierzchni części.Zmiany poziomu w zależności od dystansu między odbiornikiem dźwięku użytkownika a pozycją części, a także jej rozmiarem.
Dziecko Class.AttachChild , Class.MeshPart , Class.TrussPart , Class.WedgePart lub Class.CornerWedgePart .Dźwięk wydobywa się z pojedynczego punktu przyłączenia lub centrum części.Zmiany wolumenu w zależności od dystansu między odbiornikiem dźwięku użytkownika a pozycją części/części.
Wewnątrz SoundService lub Workspace .Audio emituje przez cały czas doświadczenia.Pozycja głośnika użytkownika i pozycja w górę pozostają takie same, niezależnie od pozycji słuchawki dźwiękowej użytkownika lub rotacji.

Dźwięk pozycyjny

Pozycyjne audio to audio, które użytkownicy mogą słyszeć tylko w pobliżu określonej lokalizacji w doświadczeniu. Istnieje dwa rodzaje pozycyjnego audio, które możesz wykorzystać: volumetric i point kod źródłowy.

Volume

Głośnik w pełni dostosowany do potrzeb użytkownika, można go używać do odtwarzania muzyki i dźwięku przestrzeni wokół ucha, podobnie jak w przypadku muzyki w s

Rozmiar

Głośnictwo wielowymiarowe jest przydatne dla każdego audio, które musi być immersive wokół użytkownika i zmieniać się dynamicznie w zależności od pozycji użytkownika, takich jak koncertowa scena lub strefy ambientu, takie jak deszcz. Gdy eksperymentujesz z umieszczeniem obiektu Sound na Class.BasePart|BaseParts</

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

  1. W oknie Explorer wybierz SoundService .

  2. W Oknie Proprietści , przesuń się do VolumetricAudio właściwości, a następnie ustaw go na Włączone .

  3. W oknie Explorer , BasePart na Class.BasePart, a następnie kliknij przycisk ⊕. Wyświetla się menu kontekstowe.

  4. Z menu, wpisz Dźwięk .

  5. W Oknie Proprietści, przejdź do SoundId właściwości i wpisz ważny identyfikator zasobu audio.

  6. (Opcjonalne) Jeśli chcesz, aby dźwięk zaczął odtwarzać się, gdy doświadczenie zacznie się odtwarzać, włącz właściwość Graszenie .

Źródło punktu

W przeciwieństwie do wolumetralnej audio, dźwięk źródła punktowego tylko emituje z jednego kod źródłowydźwięku. Ten rodzaj audio jest użyteczny dla eksplozji, hałasu uderzenia, urządzeń elektronicznych i dialogu.

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

  1. W oknie Explorer , przytrzymaj się przy załączniku, truss, wiertownicy lub kąt kątowy, a następnie kliknij przycisk ⊕. Wyświetla się menu kontekstowe.

  2. Z menu, wpisz Dźwięk .

  3. W Oknie Proprietści, przejdź do SoundId właściwości i wpisz ważny identyfikator zasobu audio.

  4. (Opcjonalne) Jeśli chcesz, aby dźwięk zaczął odtwarzać się, gdy doświadczenie zacznie się odtwarzać, włącz właściwość Graszenie .

Tło audio

Tło audio odtwarza się w tym samym poziomie, niezależnie od tego, gdzie użytkownik podróżuje w Twoim doświadczeniu. Ten rodzaj audio jest użyteczny dla muzyki, którą chcesz odtwarzać dla użytkowników, szczególnie gdy chcesz stworzyć soundtrack z wielu plików audio.

Lepszym rozwiązaniem jest utrzymywanie wszystkich Sound obiektów do tła audio w jednym lokalizacji Workspace dla celów organizacji, gdy nadal dodajesz i modyfikujesz audio w swoim doświadczeniu. Poniższy przykład przechowuje nowy Sound obiekt pod kontenerem Class.SoundService</

Aby stworzyć obiekt Sound dla tła dźwięk:

  1. W oknie Explorer , włącz dźwięk, a następnie kliknij przycisk ⊕. Wyświetlany jest menu kontekstowe.

  2. Z menu, wpisz Dźwięk .

  3. W Oknie Proprietści, przejdź do SoundId właściwości i wpisz ważny identyfikator zasobu audio.

  4. (Opcjonalne) Jeśli chcesz, aby dźwięk zaczął odtwarzać się, gdy doświadczenie zacznie się odtwarzać, włącz właściwość Graszenie .

  5. (Opcjonalne) Jeśli ten obiekt Sound jest jedyną ścieżką, którą chcesz odtwarzyć w tym miejsce, włącz jego właściwość Looped .

Dostosowywanie Obiektów Dźwiękowych

Sound obiekt właściwości działają razem, aby wpływać na to, jak użytkownicy doświadczają twojego dźwięk, takie jak:

Głośność

Właściwość Volume pozwala ustawić głośność swojego audio w dowolnym przedziale od 0 (cisza) do 10 (bum). Jeśli chcesz zmienić głośność wielu obiektów 1> Class.Sound1>, z rodzicielami pod grupą dźwiękową 4>dźwiękow

RolloffMinDistance i RolloffMaxDistance

RollOffMinDistance i Class.Sound.RollOffMaxDistance|RollOffMaxDistance

Dla dźwięku źródła, RollOffMinDistance i RollOffMaxDistance działają podobnie do wolumetralnego audio, ale odległość ta kontroluje tylko dystans od źródła, a nie wpływa na dystans zewnątrz kod źródłowy.

Tryb spadający

Właściwość RollOffMode pozwala na decyzję, jak dźwięk zaniknie, gdy dystans między odbiornikiem użytkownika a obiektem Sound zwiększa się. Możesz ustawić tę właściwość na jeden z czterech wartości w Enum.RollOffMode zapisu.

Tryb spadającyOpis
Inverse (domyślnie)Głośnik nagle zanika z RollOffMinDistance , ale głośnik zanika stopniowo, im bliżej użytkownika do dotarcia do RollOffMaxDistance. Gdy dotrą do Class.Sound.RollOffMaxDistance|RollOffMinDistance ', głośnik zanika i głośnik zanika.
LinearGłośnik zmienia się liniowo między RollOffMinDistance i RollOffMaxDistance. Po osiągnięciu RollOffMaxDistance przez użytkownika, dźwięk zanika.
InverseTaperedGłośnik podąża za odwrotnym modelem, gdy RollOffMinDistance i model liniowy kwadratowy, gdy użytkownik jest blisko RollOffMaxDistance . Witryj wchodzi w milczenie w największym punkcie dystansu.
LinearSquareGłośnik zmienia się między RollOffMinDistance i RollOffMaxDistance z linią prostej. Wchodzi w interwały w odległościach.

Prędkość odtwarzania

Właściwość PlaybackSpeed pozwala na określenie szybkości, w jakiej odtwarza się twój dźwięk. Na przykład, jeśli ustawisz PlaybackSpeed na wartość 2, twoje dźwięki odtwarzają się dwa

Pozycja czasowa

Właściwość TimePosition wyświetla, w sekundach, pozycję w przestrzeni audio, którą aktualnie słucha użytkownik. Ta właściwość jest użyteczna dla tego, aby zagrać tylko część przestrzeni audio lub wywołać wydarzenie, aby nastąpiło po tym, jak dźwięk dotrze do określonej pozycji w ciągu o


local RunService = game:GetService("RunService")
-- Utwórz nową część
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
-- Utwórz załącznik na części
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 0.5, 0)
attachment.Parent = part
-- Utwórz emitter cząsteczek na załączniku
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
-- Utwórz dźwięk na załączniku
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://1835405646"
sound.Parent = attachment
-- Odtwarzanie dźwięku
sound:Play()
-- Zacznij sprawdzać, czy emitter powinien być włączony
RunService.Heartbeat:Connect(function()
-- Włącz emiter w ciągu zasięgu czasowego dźwięk; w przeciwnym razie wyłącz go
if sound.TimePosition >= 5 and sound.TimePosition < 20 then
emitter.Enabled = true
else
emitter.Enabled = false
end
end)

Pętla

Właściwość Looped pozwala na powtarzanie audio po zakończeniu odtwarzania. Gdy ustawiony na true, dźwięk Sound obiektu odtwarza się ponownie. To użyteczne, aby zastosować do tła audio, aby zapewnić, że twoje doświadczenie nigdy nie jest przerwać.

Przedmioty dźwiękowe do wbudowania

Grywanie dźwięku kontekstowo

Oprócz automatycznej odtwarzania dźwięku poprzez właściwość Sound Class.Sound.Playing , możesz odtwarzać dźwiękowy kontekst w odniesieniu do jednego z Playing poprzez wezwanie LocalScript na odpowiednim obiekcie


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

Albo jeśli miejsce będzie miało wiele torów, możesz zagrać na jednym z nich z LocalScript :


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

Grające wtyczki audio

Możesz odtwarzać interfejs audio dla GuiObjects takie jak przyciski poprzez złączenie obiektu Sound do słuchacza wydarzeń 1> Class.GuiButton.Activated|Activated1>. Dzięki temu możesz dostarczać użytkownikom feedback audio, takie jak gdy hoverują nad nim lub nacisk

Aby odtwarzyć dźwięk obiektu Sound przy użyciu użytkownika, który aktywuje TextButton lub ImageButton:

  1. W oknie Explorer, przesuń się nad Class.TextButton lub 2> Class.ImageButton2>, a następnie kliknij przycisk ⊕. Wyświetlony zostanie menu kontekstowe.
  2. Z menu wpisz LocalScript lub Script z RunContext ustawionym na 1> Ennum.RunContext.Client1>.
  3. Wklej następujący kod w skrypt, a następnie zastąp SOUND_NAME nazwą obiektu Sound położonego w kontenerze 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)