ロブロックス(Roblox)スタジオで音楽と効果音を入れる方法|BGMの流し方と鳴らないときの直し方を画像で解説

制作手順難易度: 入門所要時間: 約60分(目安)情報確認日: 2026年10月30日

「ゲームにBGMを流したい」「触ったら『チーン』と鳴る仕掛けを作りたい」

ロブロックス(Roblox)スタジオで音楽と効果音を入れる方法を、実際の画像付きで誰でも簡単に分かるように解説します。ここでは、ずっと流れるBGM、触ると鳴るベル、自分にだけ聞こえる音、音楽のオン・オフボタンを作り、2人で聞こえ方を確かめるところまで進めます。

入門ステップ20/24 前の記事:ロブロックス(Roblox)スタジオで空を変える方法 全体の順番を見る

使うもの:Roblox Studioが起動するパソコン、スピーカーかイヤホン。パーツやスクリプトの入れ方はオビーの作り方、ボタンの作り方はボタンの作り方で画像付きで解説しています。

今回の完成状態:テストでBGMが流れ、黄色いベルに触れると音が鳴って、出力に「(アカウント名) がベルを鳴らしました」と出れば成功です。

音を入れる場所で、聞こえ方が変わる

ロブロックスの音は「Sound(サウンド)」という部品で鳴らします。Soundをどこに入れるかで、だれにどう聞こえるかが変わります。

入れる場所聞こえ方向いている音
SoundServiceどこにいても同じ大きさで聞こえるBGM
パーツの中そのパーツから音が出て、近いほど大きく、遠いと聞こえないベル、滝、扉の音
SoundServiceに入れてLocalScriptから鳴らす鳴らした本人にだけ聞こえる自分だけの合図、ボタンを押した音

1. ツールボックスで無料の音を探す

新しいBaseplateを開き、3D画面上部メニューの「ホーム」タブの「ツールボックス」(画像の1)を押すと、左にツールボックスが開きます。「カテゴリ」の中の「オーディオ」(画像の2)を押します。

オーディオの画面になりました(赤い枠)。ロブロックスや作り手が公開している音楽や効果音を、無料で使えます。

上の検索欄に英語で探したい音を入れてEnterキーを押します(画像の1)。ここでは落ち着いた音楽を探すために「calm」と入れました。結果の一覧(画像の2)には、名前と長さが並びます。

音の名前にマウスを乗せると、左に再生ボタンが出ます(赤い枠)。押すと試しに聞けます。

使いたい音が決まったら、名前を右クリックして「アセットIDをコピー」(赤い枠)を押します。音の番号(ID)がコピーされます。

音の名前を左クリックすると、選んだ場所にSoundがそのまま入ります。BGMにする場所を自分で決めたいときは、右クリックでIDだけをコピーするほうが確実です。

使った音は、BGMが「Calm Rain…」、ベルの音に「bell」で検索して出た「Store Door Bell」です。

使う音検索した言葉コピーしたID
BGMcalm139805946507533
ベルの音bell131845870598154

2. BGMを流す

BGMは「SoundService(サウンドサービス)」に入れます。SoundServiceは、ゲーム全体の音をまとめて置く場所です。エクスプローラの「SoundService」にマウスを乗せて、右に出る「+」(赤い枠)を押します。

検索欄に「Sound」と入れて、一覧の「Sound」(赤い枠)を押します。

入ったSoundの名前を、エクスプローラでF2キーを押して「BackgroundMusic」に変えます(赤い枠)。

BackgroundMusicを選んだ状態で、プロパティの検索欄に「SoundId」と入れ、SoundIdの欄に「rbxassetid://」のあとにコピーしたIDをつなげて入れます(画像の1)。上の表のBGMなら「rbxassetid://139805946507533」です。下の「Preview」の再生ボタン(画像の2)を押すと、編集画面のまま試しに聞けます。

続けてBackgroundMusicを選んだまま、プロパティを3つ変えます。まずプロパティの検索欄に「Looped」と入力し、「Looped(くり返し)」にチェックを入れます(赤い枠)。チェックがないと、曲が終わったところで止まってしまいます。

プロパティの検索欄に「Volume」と入力し、「Volume(音量)」を「0.25」にします(赤い枠)。初期値は0.5で、0(無音)から10まで決められます。BGMは効果音より小さめにしておくと、ほかの音が聞き取りやすくなります。

最後にプロパティの検索欄に「Playing」と入力し、「Playing(再生中)」にチェックを入れます(赤い枠)。Playingにチェックを入れても、編集中は鳴りません。テストを始めたときから流れ始めます。

プロパティ今回の値意味
SoundIdrbxassetid://139805946507533鳴らす音の番号
Loopedオン終わったら最初から流す
Volume0.25音の大きさ(0〜10、初期値0.5)
Playingオンテストを始めたら流す

BGMは、スクリプトを書かなくても、このプロパティだけで流せます。

3. 触ると鳴るベルを作る

次は、触ったときに鳴る効果音です。エクスプローラの「Workspace」にマウスを乗せて「+」を押します。

検索欄に「Part」と入れ、一覧の「Part」を押します。

入ったPartの名前を、エクスプローラでF2キーを押して「Bell」に変えます(赤い枠)。

Bellを選んだ状態で、プロパティの検索欄に「Size」と入力し、Sizeの欄を「2, 4, 2」に書き換えてEnterキーを押します(赤い枠)。

プロパティの検索欄に「Position」と入力し、CFrameの下のPositionを「0, 2, -12」にします(赤い枠)。

続けてBellを選んだまま、プロパティの検索欄に「BrickColor」と入れ、BrickColorの右の欄を押して黄色の「New Yeller」を選びます(赤い枠)。

プロパティの検索欄に「Anchored」と入力し、Anchoredにチェックを入れて固定します(赤い枠)。

エクスプローラに「Bell」(画像の1)、3D画面に黄色い柱(画像の2)が出ます。

エクスプローラの「Bell」にマウスを乗せて「+」を押し、「Sound」(赤い枠)を入れます。ベルの音は、パーツの中に入れます。そうすると、ベルのある場所から音が出るようになります。

入ったSoundの名前を、エクスプローラでF2キーを押して「BellSound」に変えると、「Bell」の中に「BellSound」が入った形になります(赤い枠)。

エクスプローラでBellSoundを選んだ状態で、プロパティの検索欄に「SoundId」と入力し、SoundIdの欄にベルの音のID「rbxassetid://131845870598154」を入れてEnterキーを押します(赤い枠)。

プロパティの検索欄に「RollOffMaxDistance」と入れ、「40」にします(赤い枠)。単位はスタッドで、ベルから40スタッドより遠くでは聞こえなくなります。

ベルを鳴らすのはスクリプトです。エクスプローラのServerScriptServiceにマウスを乗せて「+」を押します(赤い枠)。

検索欄に「Script」と入れ、一覧の「Script」を押します(赤い枠)。

入ったScriptの名前を、エクスプローラでF2キーを押して「BellService」に変えます。

BellServiceを選んだ状態で、プロパティの検索欄に「RunContext」と入力し、RunContextの右の欄を押して一覧から「Server」を選びます(赤い枠)。RunContext(ランコンテキスト)は、スクリプトをサーバーとプレイヤーのパソコンのどちらで動かすかを決める設定です。

BellServiceをダブルクリックして開き、中身を全部消して、次のコードを貼り付けます。

-- ベルに触れたら効果音を鳴らすスクリプト(ServerScriptService に置く)
local Players = game:GetService("Players")

local bell = workspace:WaitForChild("Bell")
local bellSound = bell:WaitForChild("BellSound")

local COOLDOWN = 1 -- 次に鳴らせるまでの秒数
local ready = true

bell.Touched:Connect(function(hit)
	-- 前の音から1秒たっていなければ何もしない(連続で鳴るのを防ぐ)
	if not ready then
		return
	end

	-- 触れたのがプレイヤーのキャラクターか確かめる
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	if not player then
		return
	end

	ready = false
	bellSound:Play()
	print(player.Name .. " がベルを鳴らしました")
	task.wait(COOLDOWN)
	ready = true
end)
コードの部分していること
bell.Touchedベルに何かが触れたら動く
GetPlayerFromCharacter触れたのがプレイヤーかどうかを調べる。プレイヤーでなければ鳴らさない
bellSound:Play()ベルの音を鳴らす
ready と COOLDOWNCOOLDOWNで決めた1秒がたつまで、次の音を鳴らさない

ベルにくっついたまま立っていると、Touchedは何度も動きます。テストでは、ベルに体を当てたままでいると、COOLDOWNで決めた1秒ごとに鳴りました。待ち時間を入れないと、音が重なってうるさくなります。

4. 自分にだけ聞こえる音を作る

次は、乗った本人にだけ聞こえる音です。エクスプローラの「Workspace」にマウスを乗せて「+」を押します。

検索欄に「Part」と入れ、一覧の「Part」を押します。

入ったPartの名前を、エクスプローラでF2キーを押して「ChimePad」に変えます(赤い枠)。

ChimePadを選んだ状態で、プロパティの検索欄に「Size」と入力し、Sizeの欄を「6, 1, 6」に書き換えてEnterキーを押します(赤い枠)。

プロパティの検索欄に「Position」と入力し、CFrameの下のPositionを「10, 0.5, -12」にします(赤い枠)。

続けてChimePadを選んだまま、プロパティの検索欄に「BrickColor」と入れ、BrickColorの右の欄を押して水色の「Pastel Blue」を選びます(赤い枠)。

プロパティの検索欄に「Anchored」と入力し、Anchoredにチェックを入れて固定します(赤い枠)。

次に、エクスプローラのSoundServiceにマウスを乗せて「+」を押します(赤い枠)。

検索欄に「Sound」と入れ、一覧の「Sound」を押します(赤い枠)。

入ったSoundの名前を、エクスプローラでF2キーを押して「Chime」に変えます(赤い枠)。

Chimeを選んだ状態で、プロパティの検索欄に「SoundId」と入力し、SoundIdに、ベルと同じ音のID「rbxassetid://131845870598154」を入れます(赤い枠)。

プロパティの検索欄に「PlaybackSpeed」と入力し、PlaybackSpeedを「1.5」にします(赤い枠)。1より大きくすると、ベルより少し高い音になります。

エクスプローラのSoundServiceに「Chime」(画像の1)、3D画面に水色の床(画像の2)ができます。

鳴らすのは、遊ぶ人それぞれのパソコンで動くLocalScriptです。エクスプローラのStarterPlayerの左の三角を押して開き、中のStarterPlayerScriptsにマウスを乗せて「+」を押します(赤い枠)。

検索欄に「LocalScript」と入れ、一覧の「LocalScript」を押します(赤い枠)。

入ったLocalScriptの名前を、エクスプローラでF2キーを押して「ChimeClient」に変えます。

ChimeClientをダブルクリックして開き、中身を全部消して、次のコードを貼り付けます。

-- 床に乗った本人にだけ音を鳴らすスクリプト(StarterPlayerScripts に置く)
local Players = game:GetService("Players")
local SoundService = game:GetService("SoundService")

local player = Players.LocalPlayer
local pad = workspace:WaitForChild("ChimePad")
local chime = SoundService:WaitForChild("Chime")

local ready = true

pad.Touched:Connect(function(hit)
	if not ready then
		return
	end

	-- 自分のキャラクターが触れたときだけ鳴らす
	if hit.Parent ~= player.Character then
		return
	end

	ready = false
	SoundService:PlayLocalSound(chime) -- この画面の人にだけ聞こえる
	print("自分にだけチャイムを鳴らしました")
	task.wait(1)
	ready = true
end)

「PlayLocalSound(プレイローカルサウンド)」は、呼んだ人のパソコンだけで音を鳴らす命令です。公式の説明でも、どこに入れたSoundでも、呼んだ人にしか聞こえないと書かれています。

5. 音楽のオン・オフボタンを付ける

BGMを止めたい人のために、画面にボタンを付けます。エクスプローラのStarterGuiにマウスを乗せて「+」を押します(赤い枠)。

検索欄に「ScreenGui」と入れ、一覧の「ScreenGui」を押します(赤い枠)。ScreenGui(スクリーンGUI)は、画面に文字やボタンを出すための入れ物です。

入ったScreenGuiの名前を、エクスプローラでF2キーを押して「MusicGui」に変えます(赤い枠)。

エクスプローラのMusicGuiにマウスを乗せて「+」を押します(赤い枠)。

検索欄に「TextButton」と入れ、一覧の「TextButton」を押します(赤い枠)。

入ったTextButtonの名前を、エクスプローラでF2キーを押して「MusicButton」に変えます(赤い枠)。

ボタンの置き方はボタンの作り方と同じです。エクスプローラでMusicButtonを選んだ状態で、プロパティの検索欄に「Size」と入力すると、似た名前の欄がいくつか並びます。名前がちょうどSizeの欄は、最初から「{0, 200},{0, 50}」になっています(赤い枠)。この大きさのまま使います。

続けてMusicButtonを選んだまま、プロパティの検索欄に「Position」と入力します。AbsolutePositionではなく、名前がちょうどPositionの欄を「{1, -220},{0, 70}」に書き換えてEnterキーを押すと、ボタンが画面の右上に移ります(赤い枠)。

プロパティの検索欄に「TextScaled」と入力し、TextScaledにチェックを入れます(赤い枠)。

エクスプローラのMusicButtonにマウスを乗せて「+」を押します(赤い枠)。

検索欄に「LocalScript」と入れ、一覧の「LocalScript」を押します(赤い枠)。

入ったLocalScriptの名前を、エクスプローラでF2キーを押して「MusicToggle」に変えます。

MusicToggleをダブルクリックして開き、中身を全部消して、次のコードを貼り付けます。

-- BGMのオン・オフを切り替えるボタン(TextButton の中に置く)
local SoundService = game:GetService("SoundService")

local button = script.Parent
local music = SoundService:WaitForChild("BackgroundMusic")

local function updateText()
	if music.Playing then
		button.Text = "音楽:オン"
	else
		button.Text = "音楽:オフ"
	end
end

button.Activated:Connect(function()
	-- Playing を false にすると止まり、true にすると止めた場所から続きを流す
	music.Playing = not music.Playing
	updateText()
end)

updateText()

6. テストで確かめる

3D画面の上の作品のタブ「Place1」を押して3D画面に戻り、F5キーでテストを始めます(タブの名前はパソコンによって違います)。BGMが流れ始めます。右上には「音楽:オン」のボタンが出ています。

黄色いベルに歩いて触れると、ベルの音が鳴り、出力に「(アカウント名) がベルを鳴らしました」と出ます(赤い枠)。右の「サーバー」は、サーバーのScriptが鳴らしたという意味です。

水色の床に乗ると、少し高いチャイムが鳴り、出力に「自分にだけチャイムを鳴らしました」と出ます(赤い枠)。こちらは「クライアント」と出ていて、自分のパソコンのLocalScriptが鳴らしたことが分かります。

右上のボタンを押すと、「音楽:オフ」に変わってBGMが止まります(赤い枠)。もう一度押すと、止めた場所の続きから流れました。

Shift + F5キーでテストを停止します。

7. 2人で聞こえ方を確かめる

最後に、ほかの人にどう聞こえるかを確かめます。Studioの画面左上、青い再生ボタンの左にある「テスト」の右の「∨」を押し、一覧から「サーバーとクライアント」を選びます(赤い枠)。

人数の上向き三角を押して「2」にし(赤い枠)、左の青い再生ボタンを押します。Player1とPlayer2の窓が開きます。

下の画像の左がPlayer1、右がPlayer2の画面です。Player1が水色の床に乗ったとき、「自分にだけチャイムを鳴らしました」はPlayer1の出力にだけ出て(画像の1)、Player2の出力には何も出ませんでした(画像の2)。チャイムは乗った本人のパソコンだけで鳴っています。ベルのほうはサーバーのScriptが鳴らすので、近くにいる全員に聞こえます。

音鳴らしたもの聞こえた人
BGMPlayingのチェック全員
ベルサーバーのScript近くにいる全員
チャイムLocalScriptのPlayLocalSound乗った本人だけ

確かめ終わったら、上の「終了」ボタン(赤い枠)でテストを止めます。

音が鳴らないときの直し方

症状見るところ直し方
Playingにチェックしたのに鳴らない編集中かどうか編集中は鳴らない。テストを始めると鳴る。試しに聞くならPreviewの再生ボタン
テストでも鳴らず、出力に赤い文字が出る出力その音を使う許可がない。ツールボックスでほかの音を選ぶ
SoundIdを入れたのに鳴らないSoundId「rbxassetid://」のあとが数字だけか、空白が入っていないか
音が小さい・聞こえないVolume0なら無音。0.5くらいから試す
少し離れると聞こえないSoundを入れた場所、RollOffMaxDistance全体に流すならSoundServiceへ。距離を広げるならRollOffMaxDistanceを大きくする
BGMが1回で止まるLoopedチェックを入れる
触ると何度も鳴って音が重なるスクリプト待ち時間(readyとCOOLDOWN)を入れる
ツールボックスで音を押したらSoundが入ったエクスプローラ左クリックするとそのまま入る。IDだけほしいときは右クリックで「アセットIDをコピー」

自分で作った音を使うときは

ツールボックスにない音は、自分でアップロードして使えます。公式の案内にある主な条件は次のとおりです。

条件内容
権利その音を使う権利を持っている
ルールコミュニティルールと利用規約を守っている
ファイルmp3・ogg・wav・flacのどれかで、曲が1つだけ入っている
大きさと長さ20MB未満で、長さが7分未満
音の質サンプルレートが48kHz以下で、チャンネルはモノラルかステレオなど決められた形
数30日で100個まで(本人確認をすると2,000個まで)

アップロードした音には審査があります。審査が終わっても、はじめは自分しか使えない非公開の音です。フレンドやほかの作品で使えるようにするには、使う許可を別に出します。市販の曲やテレビの音など、自分に権利のない音はアップロードできません。

よくある質問

音楽を止めると、次は最初から流れる?

Playingをオフにして止めた場合は、オンに戻すと止めた場所の続きから流れます。この記事のテストでも、97秒あたりで止めて、押し直すと続きから流れました。流れている秒数は、テスト中にエクスプローラのSoundServiceの「BackgroundMusic」を選び、プロパティの検索欄に「TimePosition」と入れると見られます。最初から流したいときは、スクリプトで Play() を呼びます。

新しい「AudioPlayer」とは何が違う?

公式の案内では、Soundの代わりに、新しいAudioPlayerなどの部品を使うことを勧めています。AudioPlayerは音の通り道を細かく決められますが、鳴らすまでにAudioDeviceOutputやWireなど複数の部品が必要です。BGMや効果音を入れるだけなら、この記事のSoundで十分に動きます。

BGMと効果音の音量を、まとめて変えたい

SoundServiceに「SoundGroup」を入れると、いくつかのSoundの音量をまとめて変えられます。SoundのプロパティのSoundGroupの欄を押してから、エクスプローラでグループを押すと、そのグループに入ります(グループの中に置くのではありません)。音量はかけ算になり、Soundが0.5、グループも0.5なら、0.25の大きさで鳴ります。なお公式の説明では、Soundのほかに、より細かく音を扱える新しいAudio系の部品も紹介されています。

次のステップ(入門 21/24)

次は、乗ると別の場所へ移動するテレポートを作ります。

→ ロブロックス(Roblox)でテレポートを作る方法

次に知りたいことを選ぶ

次に読む記事