Pemutaran audio terjadi melalui Sound objek yang memancarkan audio dalam pengalaman.Roblox menugaskan setiap aset audio ID unik yang dapat Anda atribusikan ke Sound untuk memutar efek suara atau trek musik tertentu.Anda dapat mengatur audio ini untuk diputar secara otomatis saat menjalankan, atau memicunya untuk bermain dari skrip .
Untuk memodifikasi pemutaran beberapa objek , Anda dapat menugaskannya ke gru suara dan mengontrol volume seluruh grup, serta menerapkan efek dinamis .
Buat objek suara
Ada tiga lokasi di mana Anda dapat membuat objek Sound dan setiap lokasi menentukan bagaimana audio dipancarkan dan perubahan volume terkait dengan posisi pengguna dalam pengalaman.
Lokasi | Bagaimana audio dipancarkan | Bagaimana perubahan volume |
---|---|---|
Anak dari blok, bola, atau silinder BasePart . | Audio dipancarkan ke luar dari seluruh permukaan bagian. | Perubahan volume tergantung pada jarak antara pendengar suara pengguna dan posisi bagian, serta ukurannya. |
Anak dari Attachment , MeshPart , TrussPart , WedgePart , atau CornerWedgePart . | Audio dipancarkan ke luar dari titik lampiran tunggal atau bagian pusat. | Perubahan volume tergantung pada jarak antara pendengar suara pengguna dan posisi lampiran/bagian. |
Dalam SoundService atau Workspace. | Audio dipancarkan di seluruh pengalaman. | Volume dan posisi pan tetap sama terlepas dari posisi pendengar suara pengguna atau rotasinya. |
audioposisi
Audio posisional adalah audio yang hanya dapat didengar pengguna di dekat posisi tertentu dalam pengalaman.Ada dua jenis audio posisional yang dapat Anda gunakan: volumetrik dan sumber titik.
Volumetrik
Audio volumetrik adalah opsi audio paling realistis, karena berubah dinamis tergantung pada posisi pengguna terhadap sumber audio.Sebagai contoh, jika pengguna berada dalam BasePart dengan objek anak Sound , audio diputar di sekitar pengguna, mirip dengan musik di headphone yang diputar dengan volume yang sama di setiap speaker.Ketika pengguna keluar dari bagian, audio secara bertahap berkurang dalam volume dan menjadi lebih terarah per speaker, bergerak di sekitar kepala pengguna saat pendengarnya berputar.Untuk informasi tentang properti yang mengontrol seberapa keras audio Anda berada pada jarak berbeda dari bagian, lihat RollOffMinDistance dan RollOffMaxDistance .
Ukuran BasePart juga memengaruhi volume audio, karena yang lebih besar BaseParts menghasilkan area yang lebih luas di mana pengguna dapat mendengar audio dan ketika pengguna menavigasi jauh dari besar BasePart, volume berkurang lebih lambat.Contoh berikut menampilkan BasePart yang merupakan ukuran kota dengan objek Sound yang memainkan audio ambient.Pengguna A dan B mengalami audio secara berbeda: pengguna B lebih dekat ke BasePart besar, dan mereka sebagian besar mendengar audio di sekitar kekuatan yang sama di kedua speaker.Sebaliknya, pengguna A berada lebih jauh dari kota, sehingga audio yang mereka dengar lebih tenang dan lebih terarah daripada pengguna B, bermain di volume yang berbeda di masing-masing speaker mereka.

Audio volumetrik berguna untuk audio apa pun yang perlu menjadi imersif di sekitar pengguna dan berubah dinamis tergantung pada posisi pengguna, seperti panggung konser atau zona ambience seperti hujan.Ketika Anda bereksperimen dengan menempatkan objek Sound pada BaseParts berukuran dan posisi yang berbeda dari pengguna, Anda dapat mendengar bagaimana audio volumetrik yang imersif bisa menjadi.
Untuk membuat objek Sound volumetrik untuk audio:
Di jendela Explorer , pilih SoundService .
Di jendela Properti , navigasikan ke properti Audio Volumetrik , lalu atur ke Aktif .
Di jendela Explorer , gulir di atas BasePart, lalu klik tombol ⊕. Menu konteks ditampilkan.
Dari menu, masukkan Suara .
Di jendela Properti , navigasikan ke properti SoundId dan masukkan ID aset audio yang valid.
(Opsi) Jika Anda ingin audio mulai diputar saat pengalaman dimulai, aktifkan properti Bermain .
Sumber sumber
Berbeda dengan audio volumetrik, sumber audio titik hanya dipancarkan dari satu sumber titik.Jenis audio ini berguna untuk ledakan, kebisingan dampak, perangkat elektronik, dan dialog.
Untuk membuat objek Sound untuk sumber audio titik:
- Di jendela Explorer , gulir di atas lampiran, truss, wedge, atau corner wedge, lalu klik tombol ⊕. Menu konteks ditampilkan.
- Dari menu, masukkan Suara .
- (Opsi) Jika Anda ingin audio mulai diputar saat pengalaman dimulai, aktifkan properti Bermain .
audiolatar belakang
Audio latar belakang diputar pada volume yang sama tidak peduli di mana pengguna bepergian dalam pengalaman Anda.Jenis audio ini berguna untuk musik yang ingin Anda mainkan untuk pengguna, terutama saat Anda ingin membuat trek suara dari beberapa file audio.
Yang terbaik adalah menyimpan semua objek Sound untuk audio latar belakang di lokasi tunggal Workspace untuk tujuan organisasi saat Anda terus menambahkan dan mengedit audio dalam pengalaman Anda.Contoh berikut menyimpan objek baru Sound di bawah wadah SoundService , karena layanan ini menentukan bagaimana objek Sound bermain dalam pengalaman.
Untuk membuat objek Sound untuk audio latar belakang:
- Di jendela Explorer , hover over SoundService , lalu klik tombol ⊕ . Menu konteks ditampilkan.
- Dari menu, masukkan Suara .
- (Opsi) Jika Anda ingin audio mulai diputar saat pengalaman dimulai, aktifkan properti Bermain .
- (Opsi) Jika objek ini Sound adalah satu-satunya trek yang ingin Anda mainkan di tempat, aktifkan properti Looped nya.
Sesuaikan objek suara
Sound properti objek bekerja bersama untuk mempengaruhi bagaimana pengguna mengalami audio anda, seperti:
- Seberapa keras mereka mendengar audio spesifik secara individual dan dalam kaitannya satu sama lain ( Volume ).
- Bagaimana mereka memahami volume saat mereka menjauh dari sumber audio ( RollOffMinDistance , RollOffMaxDistance , dan RollOffMode )
- Bagian audio mana yang bisa mereka dengarkan ( Posisi Waktu ).
- Seberapa cepat dan di pitch berapa mereka mendengarnya ( Kecepatan Putar ).
- Jika audio diputar ulang secara otomatis saat selesai ( Terulang ).
Volume
Properti Volume memungkinkan Anda untuk mengatur volume audio Anda di mana saja dari 0 (kesunyian) hingga 10 (ledakan).Jika Anda ingin mengubah volume beberapa objek sekaligus, beri mereka orangtua di bawah kelompok suara .
RollOffMin jarak dan RollOffMax jarak
RollOffMinDistance dan RollOffMaxDistance menentukan rentang bagaimana seorang pengguna merasakan volume dari audio posisional.Untuk audio volumetrik, adalah jarak minimum dalam studs bahwa audio mulai berkurang volume saat pendengar klien bergerak jauh dari orang tua , dan properti adalah jarak maksimum dalam studs bahwa pendengar klien dapat mendengar audio dari permukaan objek.

Untuk sumber audio titik, RollOffMinDistance dan RollOffMaxDistance bekerja serupa dengan audio volumetrik, tetapi jarak roll off kontrol properti ini tidak mengelilingi objek, hanya mempengaruhi jarak dari titik sumber.

Mode RollOff
Properti RollOffMode memungkinkan Anda untuk memutuskan bagaimana audio memudar saat jarak antara pendengar pengguna dan objek Sound orang tua meningkat.Anda dapat mengatur properti ini ke salah satu dari empat nilai dari Enum.RollOffMode enum.

Mode RollOff | Deskripsi |
---|---|
Inverse (默认) | Volume awalnya memudar dengan tiba-tiba dari RollOffMinDistance , tetapi pudar volume menjadi lebih bertahap semakin dekat seorang pengguna mencapai RollOffMaxDistance .Setelah mereka mencapai RollOffMaxDistance, audio menjadi diam. |
Linear | Volume memudar secara lineer antara RollOffMinDistance dan RollOffMaxDistance . Setelah pengguna mencapai RollOffMaxDistance , audio menjadi diam. |
InverseTapered | Volume mengikuti model terbalik saat dekat dengan RollOffMinDistance dan model kotak linier saat pengguna dekat dengan RollOffMaxDistance .Pendekatan audio mencapai keheningan pada titik jarak maksimum. |
LinearSquare | Volume memudar di antara RollOffMinDistance dan RollOffMaxDistance dengan hubungan berbentuk linier. Pendekatan audio diam di titik jarak maksimum. |
Kecepatan Putar
Properti PlaybackSpeed memungkinkan Anda untuk menentukan kecepatan audio yang diputar.Sebagai contoh, jika Anda mengatur PlaybackSpeed ke nilai 2 , audio Anda bermain dua kali lebih cepat dan satu oktav lebih tinggi dalam nada.Demikian pula, jika Anda mengatur ke nilai 0,5 , audio Anda bermain dua kali lebih lambat dan satu oktav lebih rendah dalam nada.
PlaybackSpeed = 0.5 | PlaybackSpeed = 1.0 | PlaybackSpeed = 2.0 |
Posisi Waktu
Properti tampilan TimePosition menunjukkan, dalam beberapa detik, posisi mana dalam sampel audio yang saat ini didengar pengguna.Properti ini berguna untuk hanya memutar bagian sampel audio, atau memicu peristiwa terjadi ketika audio mencapai posisi tertentu.Sebagai contoh, sampel kode berikut menyebabkan emitor partikel mengeluarkan partikel cincin putih di atas bagian dalam rentang waktu terbatas dari trek audio.
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
-- Buat bagian baru
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
-- Buat lampiran pada bagian
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 0.5, 0)
attachment.Parent = part
-- Buat emitor partikel di lampiran
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
-- Buat suara pada lampir
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://1835405646"
sound.Parent = attachment
-- Mainkan suara
sound:Play()
-- Mulai memeriksa apakah emitor harus diaktifkan
RunService.Heartbeat:Connect(function()
-- Aktifkan pemancar dalam rentang waktu audio; jika tidak, nonaktifkan
emitter.Enabled = sound.TimePosition >= 5 and sound.TimePosition < 20
end)
Terulang
Properti Looped memungkinkan Anda untuk mengulangi audio setelah selesai diputar.Ketika diatur ke true , audio objek Sound bermain lagi.Ini berguna untuk diterapkan pada audio latar belakang untuk memastikan pengalaman Anda tidak pernah memiliki keheningan tiba-tiba.
Objek suara skrip
Mainkan audio secara kontekstual
Selain memutar audio secara otomatis melalui properti objek , Anda dapat memutar konteks audio dari sebuah dengan memanggil pada objek yang sesuai.Sebagai contoh:
local Workspace = game:GetService("Workspace")local sound = Instance.new("Sound")sound.SoundId = "rbxassetid://9120386436"sound.Looped = truesound.Parent = Workspacesound:Play()
Alternatifnya, jika tempat itu akan menampilkan beberapa trek, Anda dapat memutar trek khusus dari LocalScript :
local SoundService = game:GetService("SoundService")local musicTrack = SoundService:FindFirstChild("LucidDream")if musicTrack not musicTrack.IsPlaying thenmusicTrack:Play()end
Mainkan audio antarmuka
Anda dapat memainkan audio antarmuka untuk GuiObjects seperti tombol dengan menghubungkan objek Sound ke pendengar acara Activated.Ini memungkinkan Anda memberikan umpan balik auditori kepada pengguna, seperti ketika mereka menggantung atau menekannya.
Untuk memutar audio objek Sound ketika pengguna mengaktifkan TextButton atau ImageButton :
- Di jendela Explorer, hover di atas TextButton atau ImageButton, lalu klik tombol ⊕. Menu konteks ditampilkan.
- Dari menu, masukkan entah LocalScript atau Script dengan RunContext diatur ke Enum.RunContext.Client .
- Lemparkan kode berikut ke dalam skrip, lalu ganti SOUND_NAME dengan nama objek Sound yang terletak di dalam wadah 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)