第七部開始,我們離開純 Roblox Studio Assistant 主線,處理外部 AI 生成工具。
前面 27 章已經把 AI Adventure Island 做成一個可測、可發布、可改造成其他題材的 Roblox experience。接下來的問題是:如果你想讓它聽起來更完整,該怎麼加入音樂與音效?
你可以用 Suno 產生背景音樂草稿,用 ElevenLabs Sound Effects 產生短音效、UI feedback、ambience。但外部工具只解決「產生候選聲音」這一步。要放進 Roblox 專案,還有一整條管線:
聲音需求
生成 Prompt
候選素材
篩選與裁切
轉檔與命名
授權與來源記錄
Roblox 匯入
Asset moderation
Audio object / Sound object 設定
Playtest
Asset register
本章要建立的不是「按一下產生音樂」的幻想,而是可以投稿、交接、維護的遊戲聲音管線。
完成本章後,你會得到:
AI Adventure Island audio design brief。這章不提供法律意見,也不保證外部 AI 產物一定能商用。每次正式發布前,你都要重新確認工具的當下 terms、方案權限與 Roblox moderation 狀態。

圖 28-1 外部生成的音樂與音效匯入後,仍要在 Studio 設定 Sound 位置、播放方式、音量與空間效果。
請先把以下 context 給 Assistant:
【Ch28 Context|規劃 AI 音訊素材】
我們要為「AI Adventure Island」加入音樂與音效。
目前遊戲:
- 玩家探索一座冒險島嶼。
- 玩家收集水晶、賺取 Gold、幫助 Guide NPC、避開簡單的巡邏敵人、使用 WindDash、購買升級並保存進度。
- 遊戲包含 HUD、quest panel、shop panel、ability button,以及 published/private release workflow。
目標:
- 匯入任何內容前,先建立 audio design plan。
- Suno 只用於產生候選 BGM/theme music。
- ElevenLabs Sound Effects 只用於產生候選 SFX/ambience。
- 將每一個生成的 asset 記錄到 audio asset register。
- 只匯入已確認有權使用的 audio。
- 聲音設計必須如實反映遊戲內容。
不要:
- 模仿真實 artist、song、soundtrack、voice、brand 或受保護 IP。
- 未檢查目前工具方案與條款就宣稱擁有商業使用權。
- 在審查權利、檔案格式、命名與 moderation risks 前,將 audio 上傳到 Roblox。
- 加入會遮蔽重要玩法回饋的巨大音量或干擾性 audio。
https://help.suno.com/en/articles/2416769
https://suno.com/terms
https://elevenlabs.io/sound-effects
https://elevenlabs.io/docs/overview/capabilities/sound-effects

圖 28-2 若不需要外部生成素材,可先在 Creator Store 的 Audio 類別搜尋可用音訊;無論來源為何,都要記錄授權與用途。
.mp3、.ogg、.wav、.flac,需小於 20 MB、7 分鐘以內、sample rate 不超過 48 kHz。Sound 與 SoundService 仍常見於背景音樂與簡單音效教學,但 Roblox 文件已建議新專案優先理解 audio objects。假設你現在打開 Suno,輸入:
為我的 Roblox 遊戲製作一段像知名奇幻電影配樂的音樂。
這個 Prompt 很危險。
它有三個問題:
比較好的聲音需求應該像這樣:
【Ch28 生成|撰寫安全的循環 BGM】
為明亮、適合初學者的 Roblox 冒險島嶼,建立一份可循環的純樂器背景音樂草稿。
情緒:
- 好奇
- 溫暖
- 輕快冒險
- 不恐怖
- 不要電影預告片風格
樂器配置:
- 輕柔 percussion
- plucked strings
- 柔和 marimba 或 kalimba
- 溫和 pads
避免:
- 人聲
- 歌詞
- 模仿真實 artists
- 提及既有歌曲、電影、遊戲、品牌或作曲家
目標:
- 60–90 秒
- 可循環
- 適合作為低音量背景音樂
這樣的 Prompt 比「像某某作品」更安全,也更容易轉成 Roblox 的背景音樂。
音效也是一樣。不要只說:
製作遊戲音效。
你要先把聲音分層:
BGM:
- island exploration loop
UI:
- button click
- shop open
- purchase success
- purchase denied
Gameplay:
- crystal pickup
- quest accepted
- quest completed
- WindDash whoosh
- cooldown ready
- patrol warning
Ambience:
- ocean waves
- wind through trees
- distant birds
聲音設計不是把專案塞滿聲音,而是讓玩家更清楚地知道「發生了什麼」。
先讓 Assistant 建立 audio design brief,不要直接產生音樂。
【Ch28 主任務|規劃 AI 音訊素材】
為「AI Adventure Island」建立 audio design brief。
遊戲摘要:
- 明亮、適合初學者的冒險島嶼。
- 玩家收集水晶、幫助 Guide、避開簡單的巡邏敵人、使用 WindDash、購買升級並保存進度。
輸出:
1. Audio 類別:
- BGM
- UI
- collect / reward
- quest
- ability
- enemy / danger
- ambience
2. 每一個聲音包含:
- 用途
- 2D or 3D
- one-shot or loop
- 建議 duration
- 情緒調性
- Mix 中的優先順序
- 建議的 Roblox placement
3. BGM 的 Suno prompt 草稿。
4. SFX 的 ElevenLabs prompt 草稿。
5. 檔案命名規則。
6. Asset register 欄位。
7. Playtest 檢查清單。
限制:
- 不要模仿真實歌曲、artists、voices、brands、movies 或 game soundtracks。
- 不要宣稱 audio 可安全用於商業用途。
- 標示必須由創作者本人檢查方案、條款與授權的位置。
這個 Prompt 的關鍵是先設計聲音系統,不是先生成素材。
Assistant 可能產生這樣的 audio design brief:
AI Adventure Island Audio Brief
BGM:
- island_explore_loop
- Purpose: calm exploration mood
- Type: 2D loop
- Duration: 60-90 seconds
- Placement: SoundService / BackgroundMusic or AudioPlayer chain
- Mix priority: low
UI:
- ui_button_click
- ui_shop_open
- ui_purchase_success
- ui_purchase_denied
- Type: 2D one-shot
- Duration: 0.1-1.0 seconds
- Placement: SoundService or UI audio controller
- Mix priority: medium
Collect / Reward:
- crystal_pickup_chime
- quest_complete_stinger
- Type: 2D one-shot
- Duration: 0.3-2.0 seconds
- Placement: SoundService / feedback controller
- Mix priority: high
Ability:
- winddash_whoosh
- cooldown_ready_ping
- Type: 2D one-shot, optionally paired with 3D character effect
- Duration: 0.2-1.5 seconds
- Mix priority: high
Enemy / Danger:
- patrol_warning
- danger_hit
- Type: 2D warning or 3D positional cue depending on enemy design
- Duration: 0.3-2.0 seconds
- Mix priority: high
Ambience:
- ocean_waves_loop
- forest_wind_loop
- distant_birds_loop
- Type: 3D or area-based loop
- Duration: 15-30 seconds
- Placement: Part / Attachment near scene area, or AudioEmitter
- Mix priority: low
這份 brief 比一堆音檔更重要。因為它說清楚每個聲音為什麼存在。
Assistant 也可能產生 Suno Prompt:
【Ch28 生成|製作循環島嶼 BGM】
為明亮的 Roblox 冒險島嶼製作可循環的純樂器背景音樂。
情緒:溫暖、好奇、輕柔探索、樂觀、適合初學者。
樂器配置:輕柔 hand percussion、plucked strings、柔和 marimba、溫和 pads、空靈的 flute-like accents。
結構:可無縫循環的 60–90 秒音樂,不要戲劇化結尾。
避免:人聲、歌詞、真實 artist references、既有歌曲、電影預告片強度、恐怖、厚重鼓聲。
用途:島嶼探索遊戲的低音量背景音樂。
ElevenLabs SFX Prompt pack:
【Ch28 生成|製作核心遊戲音效】
水晶拾取:
簡短的魔法水晶拾取 chime,明亮的玻璃 sparkle、快速上揚音調,令人滿足但不吵雜,0.5 秒。
任務完成:
簡短溫暖的成功 stinger,輕柔 bells 與柔和 mallet hit,正向冒險調性,1.5 秒。
WindDash:
快速空靈的 whoosh 搭配柔和風聲尾韻,輕奇幻移動感,不要爆炸聲,0.7 秒。
商店購買成功:
悅耳的 coin sparkle 與柔和 UI confirmation ping,0.6 秒。
商店購買失敗:
柔和低沉的木頭敲擊搭配低音 UI beep,不刺耳,0.5 秒。
海洋環境音:
熱帶島嶼附近的輕柔海浪無縫循環,平靜風聲,沒有人聲、沒有音樂,30 秒,可循環。
這些 Prompt 都刻意避開真實 IP、歌手、作品名稱與模仿指令。
遊戲聲音至少分三類。
BGM:
- 長時間播放。
- 低音量。
- 建立情緒。
- 不應遮住 feedback。
SFX:
- 短促。
- 對應玩家行為。
- 告訴玩家操作結果。
- 例如 pickup、quest complete、button click。
Ambience:
- 環境聲。
- 可以是 3D positional。
- 建立空間感。
- 例如海浪、風、鳥聲、瀑布。
如果所有聲音都用同一個音量、同一個位置、同一個播放方式,玩家會覺得吵,而不是沉浸。
用 Suno 產生 BGM 後,不要直接上傳。
先檢查:
- 生成時使用的帳號方案。
- 生成日期。
- 當時 terms / license snapshot。
- Prompt 是否含有受保護作品或人物。
- 是否有 vocals 或 lyrics。
- 是否容易讓人聯想到真實歌曲。
- 是否可 loop。
- 檔案長度、大小、格式是否符合 Roblox。
- 是否需要裁切、淡入淡出、降低音量。
用 ElevenLabs 產生 sound effects 也是一樣:
- 是否為 paid account 可商用範圍。
- 是否有 prompt 與輸出版本記錄。
- 是否需要 0.1-30 秒內的長度控制。
- 是否需要 looping。
- 是否用 MP3 或 WAV。
- 是否要裁成 one-shot。
外部 AI 工具產物不是「完成品」,而是「進入 Roblox 前的候選素材」。
Roblox 的 audio asset 是雲端資產,有 asset ID。
常見形式:
rbxassetid://1234567890
匯入 custom audio 前要確認:
- 你有 legal rights。
- 內容符合 Community Rules / Terms of Use。
- 格式是 mp3 / ogg / wav / flac。
- 小於 20 MB。
- 7 分鐘以內。
- sample rate <= 48 kHz。
- channel 合規。
匯入後,音訊會進 Roblox moderation queue。通過 moderation 不代表外部授權自動沒問題;它只代表 Roblox 平台審核允許此資產出現在平台上。
Roblox 新 audio objects 的基本概念:
AudioPlayer:
- 載入並播放 audio asset。
AudioEmitter:
- 讓聲音從 3D 空間中的位置發出。
AudioListener:
- 讓玩家從某個位置聽見 3D audio。
AudioDeviceOutput:
- 對應玩家真實喇叭或耳機。
Wire:
- 把 audio stream 從一個 audio object 接到另一個 audio object。
2D audio:
AudioPlayer -> Wire -> AudioDeviceOutput
3D audio:
AudioPlayer -> Wire -> AudioEmitter
AudioListener -> Wire -> AudioDeviceOutput
如果你還是初學者,Sound 與 SoundService 的 legacy 教學比較容易上手;但本書需要讓你知道 Roblox 正在推更完整的 audio objects。
背景音樂常放在 SoundService,因為它不需要從世界某個位置發出。
簡化版:
SoundService
└── BackgroundMusic
設定:
SoundId = rbxassetid://...
Looped = true
Volume = 0.15 - 0.25
播放可以交給 StarterPlayerScripts 的 LocalScript:
local SoundService = game:GetService("SoundService")
local backgroundMusic = SoundService:WaitForChild("BackgroundMusic")
backgroundMusic:Play()
這是最容易理解的起點。等專案變複雜,再逐步改成 AudioPlayer / Wire / DeviceOutput 的 modular audio setup。
UI 與 gameplay feedback 通常是 2D:
button click
purchase success
purchase denied
crystal pickup
quest complete
cooldown ready
它們不應該受玩家位置影響。玩家按按鈕或完成任務,就要清楚聽見。
可以建立:
SoundService
└── Audio
├── UI_ButtonClick
├── UI_ShopOpen
├── UI_PurchaseSuccess
├── UI_PurchaseDenied
├── Gameplay_CrystalPickup
├── Gameplay_QuestComplete
└── Ability_WindDash
再由 client UI controller 在適當事件播放。
海浪、瀑布、風聲、機械聲比較適合 3D 或區域性。
例如海邊:
Workspace
└── IslandAmbience
└── OceanEmitterPart
└── OceanWavesSound
設定:
Looped = true
Volume = low
RollOffMaxDistance = around area size
RollOffMode = smooth fade
玩家靠近海邊才聽見海浪,離開後淡出,空間感會比全場播放更自然。
音訊 Playtest 不只是「有沒有聲音」。
Before Roblox import:
- Tool name recorded.
- Account plan recorded.
- Generation date recorded.
- Prompt saved.
- Output filename saved.
- License / terms snapshot saved.
- No protected artist / song / IP references.
- File format supported.
- File size < 20 MB.
- Duration < 7 minutes.
- Sample rate <= 48 kHz.
- Audio normalized to reasonable volume.
- Loop points checked if loopable.
1. Open Asset Manager.
2. Import selected audio files.
3. Wait for import result.
4. Confirm moderation queue status.
5. Rename aliases clearly.
6. Copy asset IDs.
7. Update audio asset register.
8. Insert only approved / intended audio into the place.
不要一次匯入 30 個未篩選音效。先匯入一小組:
- one BGM
- one pickup SFX
- one quest complete SFX
- one WindDash SFX
- one ambience loop
Audio Playtest Checklist
BGM:
- Plays after player joins.
- Loops without obvious gap.
- Volume does not hide UI / SFX.
- Stops or changes only when intended.
UI:
- Button click is audible but not sharp.
- Shop open sound plays once.
- Purchase success and denied are clearly different.
Collectibles:
- Crystal pickup sound plays once per pickup.
- Rapid pickups do not create painful stacking.
Quest:
- Quest accepted and completed sounds are distinct.
- Quest completed sound feels rewarding but short.
Ability:
- WindDash whoosh aligns with movement.
- Cooldown ready cue is not confused with quest complete.
Ambience:
- Ocean / forest / wind loops are low volume.
- 3D rolloff feels natural.
- Player does not hear every ambience everywhere.
Performance / comfort:
- No repeated sound spam.
- No long audio loading delay.
- No Output errors about missing asset or permission.
- Test with headphones and speakers if possible.
音量在不同裝置差很多。手機喇叭、耳機、桌機喇叭的感覺不同。
至少檢查:
Desktop with headphones:
- Is BGM too loud?
- Are UI sounds too sharp?
Mobile speaker:
- Can the player hear pickup and quest feedback?
- Does ambience disappear because it is too quiet?
Low volume:
- Can important feedback still be understood visually?
重要資訊不能只靠聲音。第 24 章講過 accessibility:聲音應該輔助畫面,而不是取代畫面。
【Ch28 修正 1|降低 BGM 模仿風險】
檢查這個 BGM prompt 的 IP 與模仿風險。
Prompt:
[貼上 prompt]
任務:
- 移除對真實 artists、songs、movies、game soundtracks、composers、labels 或 brands 的提及。
- 使用通用音樂術語保留預期情緒。
- 將它改寫成適用於明亮 Roblox 冒險島嶼的安全 prompt。
- 保持純樂器且可循環。
【Ch28 修正 2|降低音效混音干擾】
檢查「AI Adventure Island」的聲音清單。
目前聲音:
[貼上聲音清單]
問題:
- 遊戲聽起來太吵雜。
- 部分聲音互相重疊。
- 玩家無法分辨哪些聲音重要。
任務:
- 依優先順序將聲音分組。
- 找出應移除或降低音量的聲音。
- 建議 volume ranges。
- 建議哪些聲音應為 2D、哪些應為 3D。
- 讓重要回饋保持清楚。
【Ch28 修正 3|診斷音訊匯入失敗】
一個 audio file 無法匯入 Roblox。
檔案資訊:
- 檔名:
- 格式:
- 大小:
- Duration:
- Sample rate:
- Channels:
- 來源工具:
- Error message:
Roblox 匯入需求:
- mp3, ogg, wav, or flac.
- less than 20 MB.
- less than 7 minutes.
- sample rate <= 48 kHz.
- mono, stereo, 3.0, or 5.1.
任務:
- 診斷可能原因。
- 建議 export settings。
- 不要建議繞過 Roblox moderation 或條款。
【Ch28 修正 4|補齊 Audio Asset Register】
為這些生成的聲音建立 audio asset register entries。
聲音:
[貼上清單]
每筆紀錄包含:
- Internal name
- 類別
- 預定用途
- 2D or 3D
- One-shot or loop
- 工具
- Prompt
- 生成日期
- Account plan/license note
- 本機檔名
- Roblox asset ID
- Moderation 狀態
- 在 DataModel 中的使用位置
- Playtest 狀態
- 筆記/風險
這個 Prompt 很重要。沒有 register,你後面會忘記哪個音效從哪裡來、能不能用、放在哪裡。
Game:
AI Adventure Island
Audio direction:
Bright, warm, light adventure, readable feedback, not horror, not combat-heavy.
BGM:
- island_explore_loop
- 60-90 seconds
- loopable
- low volume
- instrumental only
UI:
- ui_button_click
- ui_shop_open
- ui_purchase_success
- ui_purchase_denied
Gameplay:
- crystal_pickup_chime
- quest_accepted
- quest_completed
- winddash_whoosh
- cooldown_ready
- patrol_warning
Ambience:
- ocean_waves_loop
- forest_wind_loop
- distant_birds_loop
Format:
[category]_[system]_[description]_[version]
Examples:
bgm_island_explore_loop_v01.mp3
ui_shop_open_v01.wav
ui_purchase_success_v01.wav
gameplay_crystal_pickup_v01.wav
quest_complete_stinger_v01.wav
ability_winddash_whoosh_v01.wav
ambience_ocean_waves_loop_v01.wav
不要用:
sound1.mp3
good_sound_final_final.mp3
suno_song_download.mp3
elevenlabs_output_123.wav
| Internal Name | Category | Tool | Prompt ID | Plan / License Note | Local File | Roblox Asset ID | DataModel Use | 2D/3D | Loop | Moderation | Playtest | Risk |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| bgm_island_explore_loop_v01 | BGM | Suno | P-BGM-001 | Pro/Premier generated; verify terms before release | bgm_island_explore_loop_v01.mp3 | TBD | SoundService.BackgroundMusic | 2D | Yes | Pending | Pending | Need loop check |
| gameplay_crystal_pickup_v01 | SFX | ElevenLabs | P-SFX-001 | Paid account; verify terms before release | gameplay_crystal_pickup_v01.wav | TBD | SoundService.Audio.Gameplay_CrystalPickup | 2D | No | Pending | Pending | Avoid stacking |
這張表應該和第 24 章的 asset provenance register 合併或互相引用。
簡化版可以先用 legacy Sound:
SoundService
└── Audio
├── BGM_IslandExplore
├── UI_ButtonClick
├── UI_ShopOpen
├── UI_PurchaseSuccess
├── UI_PurchaseDenied
├── Gameplay_CrystalPickup
├── Quest_Accepted
├── Quest_Completed
├── Ability_WindDash
└── Ability_CooldownReady
Workspace
└── IslandAmbience
├── OceanWavesEmitter
│ └── Ambience_OceanWaves
└── ForestWindEmitter
└── Ambience_ForestWind
進階版可逐步改用 audio objects:
SoundService
└── AudioGraph
├── BGMPlayer
├── DeviceOutput
└── BGMToOutputWire
Workspace
└── IslandAmbience
└── OceanEmitterPart
├── OceanAudioPlayer
├── OceanAudioEmitter
└── OceanPlayerToEmitterWire
本書建議:初學者先理解 SoundService / Sound 的放置概念,再逐步認識 AudioPlayer / Wire / AudioEmitter。
當音訊 asset ID 都準備好後,再請 Assistant 幫你建立音訊物件:
【Ch28 實作|套用核准音訊素材】
使用以下已核准的 Roblox audio asset IDs,為「AI Adventure Island」加入 audio objects。
Assets:
- BGM_IslandExplore: rbxassetid://...
- UI_ButtonClick: rbxassetid://...
- UI_ShopOpen: rbxassetid://...
- UI_PurchaseSuccess: rbxassetid://...
- UI_PurchaseDenied: rbxassetid://...
- Gameplay_CrystalPickup: rbxassetid://...
- Quest_Completed: rbxassetid://...
- Ability_WindDash: rbxassetid://...
- Ambience_OceanWaves: rbxassetid://...
需求:
- 將 BGM 與 2D feedback sounds 放在 SoundService.Audio 下。
- 將 BGM 設為循環播放且低音量。
- 將 one-shot sounds 設為不循環。
- 將 ocean ambience 作為 positional audio 放在海灘附近。
- 目前先不要更改 gameplay logic。
- 只有在必要時才建立或更新小型 AudioController LocalScript。
- 列出每一個建立的 instance 與修改的 script。
- 提供 Playtest 步驟。
不要在沒有 asset ID、沒有授權記錄、沒有 moderation 狀態時就讓 Assistant 大量建立音訊物件。
本章把外部 AI 音訊工具接進 Roblox 開發流程,但沒有把它們神化。
你現在應該記住:
下一章會處理 2D 美術、貼圖與圖示生成。聲音管線的原則會延續到美術:AI 生成只是候選素材,真正的工作是整理、匯入、授權、審核、命名、測試與維護。
嗨!我是 Wolke,曾任 Google Developer Expert(GDE,2019–2023) 與 LINE API Expert。
我熱衷於研究 AI Agent、n8n 自動化工作流與全端開發架構,致力於將 AI 技術轉化為真正能落地的生產力工具。
如果你喜歡這篇文章,歡迎透過以下方式與我交流:
📚 技術著作
《實用的 Gemini API 開發點子書》:帶你運用 Gemini App、Google AI Studio、Gemini CLI 與 Antigravity IDE,打造 AI Agent 與實用產品。
📝 技術部落格
歡迎追蹤我的 Medium,我會持續分享 Agentic Automation、架構設計與實際開發的踩坑心得。
🎤 技術講座與合作
我持續受邀至技術社群及研討會,分享 AI Agent、自動化工作流、DevOps 與全端開發實戰。
我曾於 DevOpsDays Taipei 2026 主講「不再只是寫腳本!讓 AI 代理人成為你的 SRE 最佳夥伴」工作坊。
如果你的企業、社群或學校正在尋找相關主題講者,歡迎私訊聯繫,洽談講座與工作坊合作!
🎮 我的 Roblox 遊戲
🎁 免費贈送 OpenAI 或 Claude AI 額度
為了鼓勵大家實際動手打造自己的 Roblox 體驗,我每個月會開放:
參加方式:
確認完成後,我會邀請你加入並設定 50 點額度。名額有限,歡迎把握機會!