4. Tambahkan audio dan musik latar
Yang akan kamu pelajari
Section titled “Yang akan kamu pelajari”Di akhir materi ini, kamu akan bisa:
- Memahami pentingnya audio dalam memperkuat responsivitas game (game feel).
- Membedakan suara 3D posisional (spatial audio) dan suara global latar 2D.
- Menambahkan dan mengonfigurasi objek
Sounddi Roblox Studio. - Mengintegrasikan pemutaran efek suara (SFX) pada skrip koin dengan method
:Play(). - Menambahkan musik latar (BGM) dan suasana alam yang berulang secara mulus (looping).
Sebelum mulai
Section titled “Sebelum mulai”- Selesaikan materi Buat efek visual dasar.
- Pastikan sistem koin dan skrip
CollectCoindari modul Scripting sudah siap di projectCoin Adventure.
1. Peran Audio dalam Game Feel
Section titled “1. Peran Audio dalam Game Feel”Visual memberi tahu pemain apa yang sedang terjadi, tetapi suara memberi tahu pemain apa yang dirasakan karakter mereka:
- Efek Suara (SFX): Memberi kepuasan instan saat aksi berhasil (misal: denting koin emas yang renyah) atau peringatan saat terkena rintangan.
- Musik Latar & Ambience: Membangun atmosfer petualangan yang hidup (misal: desau angin perbukitan atau musik tema ceria).
Explorer├── Workspace│ └── Map│ └── Coins│ └── Coin│ ├── CollectCoin (Script)│ └── CollectSound (Sound 3D posisional)└── SoundService ├── BGM_Adventure (Sound global berulang) └── Ambience_Wind (Sound angin lembut)2. Mengenal Properti Objek Sound
Section titled “2. Mengenal Properti Objek Sound”| Properti | Fungsi | Rekomendasi |
|---|---|---|
SoundId |
ID aset audio Roblox (rbxassetid://...) |
Pilih dari Creator Store audio terverifikasi |
Volume |
Tingkat kenyaringan suara (0 sampai 10) | 0.3 – 0.5 untuk BGM, 0.6 – 1.0 untuk SFX |
Looped |
Memutar ulang otomatis setelah audio selesai | true untuk BGM/Ambience, false untuk SFX aksi |
PlaybackSpeed |
Kecepatan & nada putar audio (pitch) | 1 untuk nada asli (1.1 untuk nada lebih ceria) |
RollOffMaxDistance |
Jarak terjauh suara 3D masih bisa terdengar | 30 – 60 stud untuk suara objek lokal |
3. Tambahkan Musik Latar (BGM) Global
Section titled “3. Tambahkan Musik Latar (BGM) Global”Musik latar tidak memerlukan posisi 3D tertentu karena harus terdengar merata oleh setiap pemain di seluruh map:
- Di Explorer, klik tanda + pada service SoundService.
- Masukkan objek Sound dan beri nama
BGM_Adventure. - Di panel Properties:
- Masukkan
SoundIdmusik pilihanmu dari Toolbox → Audio. - Aktifkan Looped = true.
- Aktifkan Playing = true.
- Atur Volume = 0.35 agar musik tidak menutupi efek suara interaksi.
- Masukkan
4. Beri Efek Suara Pungut Koin (Coin SFX)
Section titled “4. Beri Efek Suara Pungut Koin (Coin SFX)”Langkah 1: Masukkan Objek Sound ke Part Koin
Section titled “Langkah 1: Masukkan Objek Sound ke Part Koin”- Pilih objek
CoindiWorkspace.Map. - Klik tanda + pada
Coin, masukkan objek Sound, dan beri nama persisCollectSound. - Masukkan
SoundIddenting koin pilihanmu. - Pastikan Looped = false dan Volume = 0.8.
Langkah 2: Panggil Suara di Script CollectCoin
Section titled “Langkah 2: Panggil Suara di Script CollectCoin”Buka skrip CollectCoin yang ada di dalam part koin, lalu perbarui kodenya agar memainkan suara saat koin berhasil diambil:
flowchart LR classDef trigger fill:#0369a1,stroke:#38bdf8,stroke-width:2px,color:#ffffff; classDef condition fill:#b45309,stroke:#f59e0b,stroke-width:2px,color:#ffffff; classDef action fill:#047857,stroke:#10b981,stroke-width:2px,color:#ffffff; classDef finish fill:#334155,stroke:#94a3b8,stroke-width:2px,color:#ffffff;
Touch["<b>Koin Disentuh</b><br/>coin.Touched"]:::trigger Check{"<b>Validasi</b><br/>Koin aktif & hidup?"}:::condition Play["<b>Putar Audio & Skor</b><br/>Sound:Play & Coins +1"]:::action Wait["<b>Cooldown</b><br/>Sembunyi selama 3 detik"]:::action Respawn(["<b>Respawn Koin</b><br/>Muncul kembali & aktif"]):::finish Ignore(["<b>Abaikan</b><br/>Koin sedang cooldown"]):::finish
Touch --> Check Check -- "Ya" --> Play --> Wait --> Respawn Check -- "Tidak" --> Ignore- Baris 1-4: Mengambil service
Players, partCoin, objek suaraCollectSounddi dalam koin, dan variabel debounceavailable = true. - Baris 6-8: Memeriksa ketersediaan koin. Jika sedang cooldown, hentikan fungsi (
return). - Baris 10-16: Mencari model karakter dan memvalidasi apakah sentuhan berasal dari pemain aktif yang masih hidup.
- Baris 18-22: Mengambil nilai
Coinsdi dalam folderleaderstats. - Baris 24-25: Menandai koin tidak tersedia (
available = false) dan menambahkan saldo koin pemain (coins.Value += 1). - Baris 27-30: Memeriksa keberadaan objek suara
collectSounddan mengeksekusi method:Play()untuk memutar audio instan. - Baris 32-33: Menyembunyikan koin (
Transparency = 1) dan mematikan sentuhan (CanTouch = false). - Baris 35: Menunggu jeda selama 3 detik sebelum koin dapat diambil lagi.
- Baris 37-39: Mengembalikan visual koin ke semula dan mengaktifkan kembali
available = true. - Baris 42: Menghubungkan fungsi ke event
coin.Touched.
local Players = game:GetService("Players")local coin = script.Parentlocal collectSound = coin:FindFirstChild("CollectSound")local available = true
local function collect(otherPart) if not available then return end
local character = otherPart.Parent local humanoid = character and character:FindFirstChildOfClass("Humanoid") local player = character and Players:GetPlayerFromCharacter(character)
if not humanoid or humanoid.Health <= 0 or not player then return end
local leaderstats = player:FindFirstChild("leaderstats") local coins = leaderstats and leaderstats:FindFirstChild("Coins") if not coins then return end
available = false coins.Value += 1
-- Mainkan efek suara koin if collectSound then collectSound:Play() end
coin.Transparency = 1 coin.CanTouch = false
task.wait(3)
coin.Transparency = 0 coin.CanTouch = true available = trueend
coin.Touched:Connect(collect)Salin prompt berikut ke chat AI di Visual Studio Code (dengan Roblox Studio MCP aktif):
Perbarui Script CollectCoin di Workspace.Map.Coins.Coin:- Putar Sound "CollectSound" dan tambah 1 koin ke leaderboard saat koin disentuh.- Sembunyikan koin selama 3 detik sebelum muncul kembali.5. Uji Keseimbangan Suara (Audio Balance)
Section titled “5. Uji Keseimbangan Suara (Audio Balance)”Saat melakukan playtest, perhatikan:
- Apakah musik latar terasa nyaman dan tidak menenggelamkan efek suara gameplay?
- Apakah efek suara denting koin berbunyi tepat waktu saat disentuh?
- Apakah suara koin dapat berputar berulang kali saat koin di-respawn?
Checkpoint
Section titled “Checkpoint”- Musik latar
BGM_AdventurediSoundServiceberputar otomatis dan mengulang (loop) tanpa henti saat game dimulai. - Setiap kali karakter mengambil koin, suara denting koin terdengar jelas dan koin menghilang selama 3 detik.
- Keseimbangan volume antara BGM dan SFX terasa pas dan nyaman di telinga.
- Output tidak menampilkan error merah.
Tantangan
Section titled “Tantangan”Tambahkan efek suara gemuruh kemenangan (Fanfare SFX) yang berbunyi saat pemain berhasil menyentuh platform terakhir di Goal Area!
Rangkuman
Section titled “Rangkuman”Selamat! Kamu telah menyelesaikan seluruh rangkaian polishing pada modul ini:
- Mengganti balok greybox dengan aset dan material terpoles,
- Menyesuaikan pencahayaan global, langit, dan atmosfer,
- Memasang sistem partikel dan suar penanda tujuan (VFX), serta
- Menambahkan lapisan audio dan musik latar yang memuaskan.
Game Coin Adventure milikmu kini memiliki visual, atmosfer, dan audio yang lengkap serta siap dimainkan!