Odtwarzanie dźwięku następuje za pośrednictwem 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ć Sound, aby odtworzyć określony efekt dźwiękowy lub utwór muzyczny.Możesz albo ustawić to audio, aby odtwarzało się automatycznie podczas uruchamiania, albo uruchomić je z kodów skryptowych.
Aby zmodyfikować odtwarzanie wielu obiektów , możesz przypisać je do grupy dźwiękowej i kontrolować głośność całej grupa, a także stosować dynamiczne efekty .
Twórz obiekty dźwiękowe
Istnieją trzy lokalizacje, w których możesz utworzyć obiekt Sound, a każda lokalizacja określa, w jaki sposób emituje się dźwięk i zmienia głośność w odniesieniu do pozycji użytkownika w doświadczeniu.
Lokalizacja | Jak dźwięk emitowany jest | Jak zmienia się objętość |
---|---|---|
Dziecko bloku, kuli lub cylindra BasePart . | Dźwięk emitowany jest z całej powierzchni części. | Zmiany objętości zależą od odległości między dźwiękowym słuchaczem użytkownika a pozycją części, a także jej rozmiarem. |
Dziecko z Attachment, MeshPart, TrussPart, WedgePart lub CornerWedgePart. | Dźwięk emitowany jest na zewnątrz z pojedynczego punktu przyłączenia lub centrum części. | Zmiany objętości zależą od odległości między dźwiękowym słuchaczem użytkownika a pozycją załącznika/części. |
W ciągu SoundService lub Workspace. | Dźwięk emitowany jest przez całe doświadczenie. | Poziom i pozycja panela pozostają takie same niezależnie od pozycji lub obrotu słuchacza dźwięku użytkownika. |
dźwiękpozycyjny
Dźwięk pozycyjny to dźwięk, który użytkownicy mogą słyszeć tylko w pobliżu określonej pozycji w doświadczeniu.Istnieją dwa rodzaje audio pozycyjnego, które możesz wykorzystać: volumetryczne i kod źródłowy.
Objętościowy
Dźwięk objętościowy jest najbardziej realistyczną opcją dźwięku, ponieważ dynamicznie zmienia się w zależności od pozycji użytkownika w stosunku do kod źródłowydźwięku.Na przykład, jeśli użytkownik znajduje się w BasePart z dzieckiem Sound obiektem, dźwięk odtwarza się wokół użytkownika, podobnie jak muzyka w słuchawkach odtwarzająca tę samą głośność na każdym głośniku.Kiedy użytkownik opuszcza część, dźwięk stopniowo zmniejsza się w głośności i staje się bardziej kierunkowy na każdy głośnik, poruszając się wokół głowy użytkownika, gdy jego słuchacz się obraca.Aby uzyskać informacje o właściwościach, które kontrolują głośność Twojego audio na różnych odległościach od części, zobacz RollOffMinDistance i RollOffMaxDistance.
Rozmiar BasePart również wpływa na głośność audio, ponieważ większe BaseParts produkuje szerszy obszar, w którym użytkownicy mogą słyszeć audio, a gdy użytkownik odpływa od dużego BasePart, głośność spada wolniej.Poniższy przykład wyświetla BasePart, który jest rozmiarem miasta z obiektem Sound odtwarzającym ambientowy dźwięk.Użytkownicy A i B doświadczają dźwięku inaczej: użytkownik B jest bliżej dużego BasePart, a głównie słyszą dźwięk o tej samej głośności w obu głośnikach.Odwrotnie użytkownik A jest dalej od miasta, więc dźwięk, który słyszy, jest ciszej i bardziej kierunkowy niż użytkownik B, grający przy różnej głośności w każdym ze swoich głośników.

Dźwięk wolumetryczny jest przydatny dla każdego dźwięku, który musi być wciągający wokół użytkownika i zmieniać się dynamicznie w zależności od pozycji użytkownika, takiego jak scena koncertowa lub strefy otoczenia, takie jak deszcz.Kiedy eksperymentujesz z umieszczeniem obiektu Sound na BaseParts różnych rozmiarów i pozycji od użytkowników, możesz usłyszeć, jak może być wciągająca wolumetryczna audycja.
Aby utworzyć obiekt Sound wolumetryczny dla dźwięk:
W oknie Eksploratora wybierz Usługę dźwięku .
W oknie Właściwości , przełącz się do właściwości VolumetricAudio , a następnie ustaw ją na Włączone .
W oknie Eksploratora przewiń nad BasePart, a następnie kliknij przycisk ⊕. Wyświetli się menu kontekstowe.
Z menu wstawь Dźwięk .
W oknie Właściwości , przejdź do właściwości SoundId i wprowadź ważne ID pliku audio.
(Opcjonalnie) Jeśli chcesz, aby dźwięk zaczął odtwarzać się, gdy doświadczenie się rozpocznie, włącz właściwość Odtwarzanie .
Źródło kod źródłowy
W przeciwieństwie do audio objętościowego, źródło dźwięku punktowego emituje tylko z jednego punktu kod źródłowy.Ten typ audio jest przydatny do eksplozji, hałasu uderzeniowego, urządzeń elektronicznych i dialogu.
Aby utworzyć obiekt Sound źródła dźwięku punktowego:
- W oknie Eksploratora przewiń nad załącznikiem, kratownicą, klinem lub klinem narożnym, a następnie kliknij przycisk ⊕. Wyświetli się menu kontekstowe.
- Z menu wstawь Dźwięk .
- (Opcjonalnie) Jeśli chcesz, aby dźwięk zaczął odtwarzać się, gdy doświadczenie się rozpocznie, włącz właściwość Odtwarzanie .
Tło dźwięk
Tło audio odtwarza się przy tej samej głośności bez względu na to, gdzie użytkownik podróżuje w twoim doświadczeniu.Ten typ audio jest przydatny do muzyki, którą chcesz odtwarzać dla użytkowników, szczególnie gdy chcesz stworzyć ścieżkę dźwiękową z wielu plików audio.
Najlepiej jest przechowywać wszystkie obiekty Sound na tle audio w jednej lokalizacji przestrzeni roboczej do celów organizacyjnych, gdy nadal dodajesz i edytujesz audio w swoim doświadczeniu.Poniższy przykład przechowuje nowy obiekt Sound w kontenerze SoundService, ponieważ ta usługa określa, jak obiekty Sound odtwarzają się w doświadczeniach.
Aby utworzyć obiekt Sound dla tła dźwięk:
- W oknie Eksploratora przewiń nad Usługą dźwiękową , a następnie kliknij przycisk ⊕. Wyświetla się menu kontekstowe.
- Z menu wstawь Dźwięk .
- (Opcjonalnie) Jeśli chcesz, aby dźwięk zaczął odtwarzać się, gdy doświadczenie się rozpocznie, włącz właściwość Odtwarzanie .
- (Opcjonalnie) Jeśli ten przedmiot Sound jest jedyną ścieżką, na której chcesz grać na miejsce, włącz jego właściwość Pętlową .
Dostosuj obiekty dźwiękowe
Sound właściwości obiektu współpracują, aby wpłynąć na to, jak użytkownicy doświadczają twojego dźwięk, takie jak:
- Jak głośno słyszą konkretne audio indywidualnie i w stosunku do siebie nawzajem (Głośność).
- Jak postrzegają głośność, gdy odchodzą od źródła dźwięku ( RollOffMinDistance , RollOffMaxDistance i RollOffMode )
- Jaka część audio mogą słuchać (Pozycja czasowa).
- Jak szybko i na jakim poziomie słyszą to ( Szybkość odtwarzania ).
- Jeśli dźwięk odtwarza się automatycznie po zakończeniu (Powtórzył się).
Objętość
Właściwość Volume pozwala ustawić głośność swojego audio w dowolnym miejscu od 0 (ciszy) do 10 (huk).Jeśli chcesz zmienić głośność wielu obiektów na raz, umieść je w grupie dźwiękowej .
Odległość odwołania RollOffMin i RollOffMax
RollOffMinDistance i RollOffMaxDistance określają zakres, w jaki użytkownik postrzega głośność z audio pozycyjnego.Dla dźwięku wolumetrycznego jest minimalną odległością w szpilkach, w której dźwięk zaczyna się zmniejszać w objętości, gdy słuchacz klienta przenosi się z powrotem od rodzica , a właściwość jest maksymalną odległością w szpilkach, z której słuchacz klienta może usłyszeć dźwięk z powierzchni obiektu.

W przypadku źródła dźwięku punktowego RollOffMinDistance i RollOffMaxDistance działają podobnie do dźwięku wolumetrycznego, ale odległość roll off tych właściwości nie otacza obiektu, wpływa tylko na odległość zewnętrzną od punktu kod źródłowy.

Tryb odrolnienia
Właściwość RollOffMode pozwala decydować, w jaki sposób zanika dźwięk, 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 wymiennika Enum.RollOffMode.

Tryb odrolnienia | Opis |
---|---|
Inverse (domyślny) | Początkowo głośność gwałtownie spada z RollOffMinDistance, ale spadek głośności staje się bardziej stopniowy, im bliżej użytkownik osiągnie RollOffMaxDistance.Gdy dotrą do RollOffMaxDistance, dźwięk milczy. |
Linear | Głosność zmniejsza się liniowo pomiędzy RollOffMinDistance a RollOffMaxDistance. Po dotarciu użytkownika do RollOffMaxDistance dźwięk zanika. |
InverseTapered | Głosność podąża za odwrotnym modelem, gdy jest blisko RollOffMinDistance i liniowym modelem kwadratowym, gdy użytkownik jest blisko RollOffMaxDistance.Approachy audio osiągają ciszę na punkcie maksymalnej odległości. |
LinearSquare | Głosność zmniejsza się między RollOffMinDistance a RollOffMaxDistance z liniowym wzajemnym stosunkiem kwadratowym. Audio zbliża się do ciszy na punkcie maksymalnej odległości. |
Prędkość odtwarzania
Właściwość PlaybackSpeed pozwala określić prędkość odtwarzania twojego audio.Na przykład, jeśli ustawisz PlaybackSpeed na wartość 2 , twoje audio będzie odtwarzać się dwa razy szybciej i o oktawę wyżej w tonacji.Podobnie, jeśli ustawisz ją na wartość 0.5 , twoja audycja będzie odtwarzać się dwa razy wolniej i o oktawę niżej w tonacji.
PlaybackSpeed = 0.5 | PlaybackSpeed = 1.0 | PlaybackSpeed = 2.0 |
Pozycja czasu
Właściwość TimePosition wyświetla, w ciągu kilku sekund, jaką pozycję w próbce audio słyszy obecnie użytkownik.Właściwość ta jest przydatna do odtwarzania tylko części próbki audio lub uruchamiania wydarzenia, gdy audio dotrze do określonej pozycji.Na przykład następujący przykład kodu powoduje, że emiter cząstek emituje białą cząstkę pierścieniową nad częścią w ograniczonym przedziale czasowym utworzonej ścieżki audio.
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
-- 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
-- Stwórz załącznik na części
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 0.5, 0)
attachment.Parent = part
-- Utwórz emiter cząstek 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
-- Stwórz dźwięk na załączniku
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://1835405646"
sound.Parent = attachment
-- Odtwarzaj dźwięk
sound:Play()
-- Zacznij sprawdzać, czy emiter powinien być włączony
RunService.Heartbeat:Connect(function()
-- Włącz emiter w przedziale czasowym dźwięk; w przeciwnym razie wyłącz go
emitter.Enabled = sound.TimePosition >= 5 and sound.TimePosition < 20
end)
Powtórzone
Właściwość Looped pozwala powtórzyć audio po jego zakończeniu odtwarzania.Gdy ustawiono na true, dźwięk obiektu Sound znów się odtwarza.Jest to przydatne do zastosowania do tła audio, aby zapewnić, że twoje doświadczenie nigdy nie będzie miało gwałtownego milczenia.
Obiekty dźwięku skryptów
Odtwarzaj kontekst audio kontekstowo
Oprócz automatycznego odtwarzania audio za pośrednictwem właściwości obiektu , możesz odtwarzać audio kontekstowo za pomocą obiektu odpowiedniego .Na przykład:
local Workspace = game:GetService("Workspace")local sound = Instance.new("Sound")sound.SoundId = "rbxassetid://9120386436"sound.Looped = truesound.Parent = Workspacesound:Play()
Alternatywnie, jeśli miejsce będzie zawierać wiele ścieżek, możesz odtworzyć konkretną ścieżkę z LocalScript :
local SoundService = game:GetService("SoundService")local musicTrack = SoundService:FindFirstChild("LucidDream")if musicTrack not musicTrack.IsPlaying thenmusicTrack:Play()end
Odtwarzaj interfejs dźwięk
Możesz odtwarzać dźwięk interfejsu za GuiObjects takie jak przyciski poprzez podłączenie obiektu Sound do słuchacza zdarzeń Activated.Umożliwia to przekazanie użytkownikom zwrotnej informacji dźwiękowej, takiej jak gdy przewiją po niej lub ją naciśną.
Aby odtworzyć dźwięk obiektu Sound podczas aktywacji użytkownika TextButton lub ImageButton :
- W oknie Eksploratora przewiń nad TextButton lub ImageButton, a następnie kliknij przycisk ⊕. Wyświetli się menu kontekstowe.
- Wklej następujący kod do skryptu, a następnie zastąp SOUND_NAME nazwą obiektu Sound znajdującego się w ramach 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)