ロブロックススタジオでサウンドを追加する方法|BGM・効果音の設定ガイド
コラムRoblox Studio(ロブロックススタジオ)で自分のゲームを作っていて、「BGMを流したいけど、どこから設定すればいいのかわからない」と手が止まったことはありませんか。
ツールボックスから音源を挿入するだけで鳴る場合もあれば、思ったとおりに再生されず戸惑う場面もあります。特にBGMと効果音(SE)は置き場所も設定も違うため、なんとなく真似しただけでは「片方は鳴るのにもう片方は鳴らない」という状態になりがちです。
この記事では、ツールボックス(GUI)での追加方法と、スクリプトでの追加方法を両方とも実際のコード付きで解説します。BGMとSEをどこに置くべきかの整理、音が鳴らないときのチェックリスト、著作権を気にせず使える音源の探し方までまとめているので、この記事だけでサウンド周りの基本を一通り押さえられます。
情報はRoblox公式のCreator Hub(create.roblox.com/docs)のSound・SoundServiceのリファレンスをもとにしているので、安心して読み進めてください。
目次
ロブロックススタジオのサウンドとは
Roblox Studioで音を鳴らす仕組みは、すべて「Sound」というオブジェクトが担っています。BGMも効果音も、実体は同じSoundオブジェクトで、置く場所とプロパティの設定を変えることで役割が変わります。
- ゲーム全体に流したいBGMなら、SoundServiceに置いてPlaying・Loopedをオンにする
- 特定の場所や物についている効果音なら、対象のPartの中にSoundを置く
- プレイヤーの操作に合わせて鳴らしたい効果音なら、スクリプトからPlay()を呼ぶ
追加方法はツールボックスから選ぶ方法と、スクリプトで作る方法の2種類があります。次の章から順番に見ていきます。
サウンドの追加方法①ツールボックス(GUI)で追加する
コードを書かずに音を鳴らしたいときは、ツールボックスからオーディオを挿入する方法が一番手早く済みます。
オーディオをツールボックスから選ぶ
- 画面上部の「表示」タブから「ツールボックス」を開く
- カテゴリを「オーディオ」に切り替える
- 「BGM」や使いたい効果音のキーワードで検索する
- 気に入った音源をクリックすると、Explorer内にSoundオブジェクトが挿入される
挿入されたSoundは、初期状態ではWorkspace直下に置かれることが多いので、用途に応じてSoundServiceや特定のPartの中へドラッグ&ドロップで移動させます。どこに置くべきかは後述の「BGMとSEはどこに配置する?」で説明します。
Playing・Looped・Volumeを設定する
Soundを選択した状態でPropertiesパネルを開き、以下の3つを確認します。
- Playing:trueにすると、ゲーム開始と同時に再生される
- Looped:trueにすると、再生が終わったら自動で最初から繰り返す
- Volume:0から10の範囲で音量を指定する。初期値の0.5前後から調整すると聞き取りやすい
BGMとして常時流したい場合は、PlayingとLoopedの両方をtrueにするのが基本形です。ここまでの設定だけで、コードを1行も書かずにBGMを流せます。

画像候補02(WordPress画像差し込み用プロンプト)
サウンドの追加方法②スクリプトで追加する
「特定のタイミングだけ音を鳴らしたい」「プレイヤーの行動に反応させたい」という場合は、スクリプト(ロブロックススタジオのスクリプト)から制御します。スクリプトとは、Robloxのゲーム内でオブジェクトを動かしたり、イベントに反応させたりするためのプログラムのことで、Lua(Luau)という言語で書きます。
Soundインスタンスをスクリプトで作成する
ツールボックスを使わず、コードだけでSoundを用意することもできます。ServerScriptServiceに以下のスクリプトを追加してください。
local SoundService = game:GetService("SoundService")
local bgm = Instance.new("Sound")
bgm.Name = "MainBGM"
bgm.SoundId = "rbxassetid://1848354536" -- 使いたい音源のIDに置き換える
bgm.Volume = 0.5
bgm.Looped = true
bgm.Parent = SoundService
bgm:Play()
SoundIdには、ツールボックスで見つけた音源のアセットIDをrbxassetid://数字の形式で指定します。IDは、ツールボックスで音源を右クリックし「アセットIDをコピー」から確認できます。
Play()でサウンドを再生する
すでに配置済みのSoundを、特定のタイミングだけ鳴らしたい場合はPlay()メソッドを使います。
local sound = workspace:WaitForChild("MainBGM")
-- 何らかの条件が満たされたときに呼び出す
sound:Play()
Play()は再生を開始するだけの命令なので、止めたいときはsound:Stop()を呼びます。WaitForChildを使っているのは、Soundオブジェクトの読み込みが完了する前にスクリプトが実行され、nilになってエラーになるのを防ぐためです。
ClickDetectorと組み合わせてタッチで音を鳴らす
「特定のパーツをクリックしたら効果音を鳴らす」という演出は、ClickDetectorと組み合わせると簡単に作れます。
- 音を鳴らしたいPartに、右クリックから「ClickDetector」を追加する
- 同じPartの中に効果音用のSoundを追加する(名前は「ClickSound」とする)
- Partの中にScriptを追加し、以下のコードを書く
local part = script.Parent
local clickDetector = part:WaitForChild("ClickDetector")
local sound = part:WaitForChild("ClickSound")
clickDetector.MouseClick:Connect(function(player)
sound:Play()
end)
Soundを鳴らしたいPartの中に直接置くことで、3D空間の音声としてそのPartの位置から音が広がるようになります。位置による音の聞こえ方については、後述の「音量・ループ・3D空間音声の設定」で詳しく説明します。
BGMとSEはどこに配置する?SoundService vs Workspace
サウンドが「思ったとおりに鳴らない」という相談の多くは、置き場所の勘違いが原因です。RobloxのSoundは、どこに置くかで挙動が変わります。
| 配置場所 | 音の聞こえ方 | 向いている用途 |
|---|---|---|
| SoundService | 位置に関係なく、ゲーム全体に均等に聞こえる | BGM、システム音など常時流したい音 |
| Workspace直下 | SoundServiceと同様に、位置の影響を受けない2D音声として再生される | 一時的なジングルなど |
| Partの中 | Partの位置を中心に、距離が離れるほど音量が小さくなる3D音声になる | 効果音、環境音、特定の場所だけで鳴らしたい音 |
BGMをPartの中に置いてしまうと、そのPartから離れたプレイヤーには聞こえなくなります。逆に、足音やドアの開閉音のような効果音をSoundServiceに置くと、マップのどこにいても同じ音量で鳴ってしまい、臨場感がなくなります。ゲーム全体に流したいか、特定の場所だけで鳴らしたいかを基準に置き場所を選んでください。
音量・ループ・3D空間音声の設定
Partの中に置いたSoundは、以下のプロパティで距離による聞こえ方を調整できます。
- RollOffMinDistance:この距離までは最大音量で聞こえる
- RollOffMaxDistance:この距離を超えると聞こえなくなる
- RollOffMode:距離による音量の減衰のしかたを指定する
「近づくと聞こえて、離れると聞こえなくなる」演出を作りたい場合は、RollOffMinDistanceを小さめ(3から5程度)、RollOffMaxDistanceを狙った到達距離に設定します。数値を大きくしすぎると、マップの反対側まで音が届いてしまうので、実際にPlaytestで歩きながら聞こえ方を確認するのがおすすめです。
音が鳴らないときのチェックリスト
「コードは合っているはずなのに音が鳴らない」というときは、以下の順番で確認してください。
| 症状 | 主な原因 | 対処法 |
|---|---|---|
| まったく音が聞こえない | Volumeが0になっている | Volumeプロパティを0.5前後に上げる |
| GUIでは鳴るのにスクリプトでは鳴らない | Play()を呼ぶ前にSoundオブジェクトがまだ読み込まれていない | WaitForChildで読み込みを待ってからPlay()する |
| 一度鳴った後、二度と鳴らない | Loopedがfalseのまま、SEとして一度きり再生する設計になっている | BGM用途ならLoopedをtrueにする |
| Studio上では聞こえるのに実機で聞こえない | 端末側の音量設定がミュートになっている | OSやアプリ側の音量設定を確認する |
| 挿入した直後の音源だけ聞こえない | アップロードしたばかりの音源がモデレーション(審査)中 | 数分から数時間待ってから再度確認する |
| 特定の場所でだけ聞こえない、または音量が急に変わる | RollOffMinDistance・RollOffMaxDistanceが実際の移動距離に合っていない | 3D音声の距離設定を調整する |
上から順に1つずつ確認すれば、たいていの「音が鳴らない」は解決します。

著作権フリーの音源の探し方
自分で録音・作曲した音源以外は、著作権に注意して選ぶ必要があります。安全に使える音源の探し方は次のとおりです。
- ツールボックスの「オーディオ」カテゴリで、作成者が「Roblox」になっている音源を選ぶ。Robloxが公式に用意している無料の音源ライブラリで、そのまま使える
- Creator Marketplaceで配布されている音源のうち、利用条件に「ゲーム内での使用可」と明記されているものを選ぶ
- 自分で作った曲や効果音をアップロードする場合は、Creator Hubからアップロードし、モデレーション審査を通過させてから使う
出所が不明な音源をインターネットから直接持ち込むのは避けてください。著作権者に許可のない音源を使うと、アセットが削除されたりアカウントに影響が出たりするおそれがあります。
よくある質問(FAQ)
Q1. BGMとSE(効果音)はどう違うの?
BGMはゲーム中ずっと流れ続ける音楽で、SoundServiceに置いてPlayingとLoopedをtrueにするのが基本です。SEは特定のタイミングだけ鳴らす短い音で、対象のPartに置いてスクリプトからPlay()で呼び出します。
Q2. ToolboxにあるオーディオはRobloxにアップロードされている著作権フリーの素材ですか?
作成者が「Roblox」になっている音源は公式の無料ライブラリなので安心して使えます。それ以外のユーザー投稿の音源は、利用条件を個別に確認してから使ってください。
Q3. スクリプトを書かなくてもBGMは入れられますか?
入れられます。ツールボックスからオーディオを挿入し、PropertiesパネルでPlayingとLoopedをtrueにするだけでコード不要のBGMが完成します。
Q4. 音が再生されないときはどうすればいいですか?
Volumeが0になっていないか、Soundオブジェクトが正しい場所に置かれているか、アップロードした音源がモデレーション中でないかを順に確認してください。詳しいチェック手順は本文の「音が鳴らないときのチェックリスト」を参照してください。
Q5. 位置によって音量を変えるにはどうすればいいですか?
SoundをPartの中に置き、RollOffMinDistanceとRollOffMaxDistanceを設定します。近づくと大きく、離れると小さく聞こえる3D空間音声になります。
まとめ
この記事では、Roblox Studioでサウンドを追加する2つの方法を解説しました。
重要なポイント:
- コード不要のツールボックス操作でも、BGMや効果音は追加できる
- 特定のタイミングで鳴らしたいならスクリプトからPlay()を呼ぶ
- BGMはSoundService、効果音はPartの中に置くのが基本の使い分け
- 音が鳴らないときは、Volume・配置場所・Loopedの順に確認する
- 音源はRobloxの公式ライブラリか利用条件を確認したものを使う
まずはツールボックスからBGMを1曲入れて、実際にPlaytestで聞こえるかどうかを試してみてください。慣れてきたら、ClickDetectorと組み合わせた効果音にも挑戦してみましょう。
TETRA UPのRobloxコースでは、こうしたサウンドの実装からスクリプトの基礎まで、プロのインストラクターと一緒に一つずつ手を動かしながら学べます。自分のゲームに音を付けて、もっと作り込みたいと感じたら、体験会で実際の授業を覗いてみませんか。
あわせて読みたい

吉田先生やよっしー、たまによしぞーって呼ばれたりしています。よろしくお願いします。