Selain musik latar belakang, musik dalam game dapat meningkatkan pengalaman pemain. Tutorial ini akan mencakup dua jenis suara dalam game: posicional dan feedback suara.
Untuk contoh pertama, Anda akan menciptakan suara posisi untuk sebuah air terjun. Dalam contoh kedua, sebuah script akan digunakan untuk memutar jingle saat pemain menyentuh koleksi.
Suara Posisional
Ketika objek Suara dianggap sebagai bagian atau lampiran, itu menjadi posisional. Audio akan dipancarkan dari lokasi dan tumbuh lebih keras saat pemain mendekati, seperti dalam kasus ini.
Buat Suara
Di bagian mana pun yang diinginkan, buat objek Suara baru bernama WaterfallSound .
Di dalam property, temukan SoundId dan ubahnya menjadi lingkungan air terjun ini: rbxassetid://6564308795 .
Untuk bermain lanjutan saat game dimulai, aktifkan Bermain dan Looped untuk menjadi pada .
Uji permainan untuk menyetujui Anda mendengar suara air terjun.
Sesuaikan Jarak Suara
Perhatikan saat menguji, audio segera dimainkan, bahkan jika pemain jauh dari objek. Menggunakan propinsi bergulir, Anda dapat mengubah jarak di mana pemain mendengar suara untuk menghasilkan efek memudar.
Ubah RollOffMaxDistance menjadi 30 . Propinsi ini diukur dalam stud.
Untuk menghilangkan transisi yang lebih halus, ubah RollOffMode menjadi InverseTapered . Ini menghilangkan perasaan terdengar yang tiba-tiba.
Lari proyek. Perhatikan bagaimana suara hanya terdengar di dekat objek.
Terapi Ujung Halus
Tergantung pada kebutuhan Anda, Anda mungkin ingin menyesuaikan berbagai propperti untuk efek khusus atau kenyataan meningkat. Lihat propperti berikut:
- RollOffMinDistance - Jarak minimum (dalam studs) sebuah suara menurun dalam volume.
- SoundGroup - Digunakan untuk menyesuaikan dan menyeimbangkan volume antara kelompok suara, seperti musik latar belakang dan efek dalam game.
Suara Masukkan
Suara dapat diputar menggunakan skrip. Anda dapat menautkan suara ke acara, seperti pemain menyentuh bagian atau berinteraksi dengan menu. Di sini, Anda akan membuat skrip yang memutar bel a setiap kali pemain menyentuh objek yang dapat dikumpulkan.
Mengatur Koleksi
Sisa tutorial ini menggunakan model prasejah. Model ini termasuk bagian dan skrip sehingga pemain dapat mengumpulkan permata.
- Di browser, buka halaman Model Permata yang Dapat Dikumpulkan, dan klik tombol Dapatkan .
- Di Studio, pergi ke tab Lihat dan klik Kotak Alat .
- Di jendela Toolbox, klik pada tombol Inventaris . Kemudian, pastikan tombol dropdown ada di Model Saya .
- Pilih model Permata yang Dapat Dikumpulkan untuk menambahkannya ke game.
Dalam SoundService , buat Suara Baru bernama FeedbackSound .
Dalam FeedbackSound, atur SoundId menjadi rbxassetid://4110925712 - SoundId dari chime sederhana yang diunduh dari halaman model.
Konfigurasikan Skrip
Dalam StarterPlayer > StarterPlayerScripts , buat skrip lokal baru bernama CollectableSounds .
Kode di bawah ini akan mengeksekusi fungsi partTouched setiap kali pemain menyentuh koleksi. Salin kode ke dalam naskah Anda.
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")if humanoid and objectPart.CanCollide == true thenendend-- Ikat setiap bagian objek ke fungsi sentuh sehingga itu bekerja di semua bagianfor objectIndex = 1, #objectsArray dolocal objectPart = objectsArray[objectIndex]objectPart.Touched:Connect(function(otherPart)partTouched(otherPart, objectPart)end)end
Mainkan Suara
Buat variabel untuk SoundService , lalu variabel lain untuk menyimpan suara feedback .
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local SoundService = game:GetService("SoundService")local feedbackSound = SoundService:FindFirstChild("FeedbackSound")local function partTouched(otherPart, objectPart)Untuk memainkan chime, temukan fungsi partTouched . Dalam pernyataan if, panggil feedbackSound:Play() untuk memainkan suara.
local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")-- Mainkan suara, setelah selesai, hancurkan objekif humanoid and objectPart.CanCollide == true thenfeedbackSound:Play()endendUji permainan untuk menyetujui bahwa ketika pemain menyentuh koleksible, keduanya menghilang dan bermain suara.