オーディオ再生は、Sound 体験内でオーディオを発信するオブジェクトを介して発生します。Roblox は、オーディオアセット にユニークなIDを割り当て、特定の音響効果や音楽トラックを再生するために Sound。このオーディオをランタイムで自動再生するか、スクリプトから再生するようにトリガーするかを設定できます。
複数の Sound オブジェクトの再生を変更するには、サウンドグループ に割り当てて、グループ全体のボリュームを制御し、ダイナミック効果 を適用できます。
サウンドオブジェクトを作成する
エクスペリエンス内のユーザーの位置に関連してオーディオがどのように放出され、音量が変化するかを決定するのは、3つの場所が作成できる Sound オブジェクトです。
場所 | オーディオが放出される方法 | ボリュームの変更方法 |
---|---|---|
ブロック、球、または円筒の子 BasePart 。 | オーディオは、パーツの全面から放出されます。 | ユーザーのサウンドリスナーとパーツの位置、およびサイズによる距離に応じて、ボリュームが変化します。 |
子の Attachment , MeshPart , TrussPart , WedgePart , または CornerWedgePart 。 | オーディオは、単一の付属ポイントまたはパーツセンターから外に放出されます。 | ユーザーのサウンドリスナーと付属/部位の位置の距離に応じてボリュームが変化します。 |
内で SoundService または Workspace 。 | オーディオは全体のエクスペリエンスで放出されます。 | ユーザーのサウンドリスナーの位置または回転に関わらず、ボリュームとパンの位置は同じままです。 |
位置音オーディオ
位置オーディオは、ユーザーがエクスペリエンス内の特定の位置付近でしか聞くことができないオーディオです。利用できるポジションオーディオの種類は 2つあります:音量的およびポイントソースです。
体積
ボリュメトリックオーディオは、ユーザーの位置に応じて動的に変更されるため、最も現実的なオーディオオプションです。たとえば、ユーザーが BasePart 内の子供のオブジェクト Sound である場合、オーディオはユーザー全体で再生し、ヘッドフォンで同じボリュームで再生する音楽と同様です。ユーザーがパーツから退出すると、オーディオは徐々にボリュームが低下し、スピーカーごとに方向性が増し、ユーザーの頭を動かしてリスナーが回転するときに移動します。オーディオが部品からの距離でどれほど大きくなるかを制御するプロパティに関する情報は、RollOffMinDistance と RollOffMaxDistance を参照してください。
BasePart のサイズは、より大きな BaseParts がより広い領域でユーザーがオーディオを聴くことができ、大きな BasePart からユーザーが移動すると、ボリュームが遅く減少することにも影響します。次の例では、 オブジェクトが環境音を再生している都市のサイズを表示します。ユーザー A と B はオーディオを異なり体験します:ユーザー B は大きな BasePart により近く、およそ両方のスピーカーで同じ音量でオーディオを聞きます。逆に、ユーザー A は都市から離れているので、彼らが聞くオーディオはユーザー B より静かで方向性があり、それぞれのスピーカーで異なる音量で再生しています。

ボリュメトリックオーディオは、ユーザーの周りに没入して変化する必要があるすべてのオーディオに便利で、コンサートステージや雨のような環境ゾーンなど、ユーザーの位置に応じて動的に変更する必要があります。ユーザーから異なるサイズと位置の オブジェクトを配置して実験すると、没入型音響がどのように聴こえるかを聞くことができます。
ボリュームオーディオ用の Sound オブジェクトを作成するには:
In the エクスプローラー window, select サウンドサービス .
In the プロパティ window, navigate to the ボリュメトリックオーディオ property, then set it to 有効 .
エクスプローラー ウィンドウで、BasePart をホバーし、⊕ ボタンをクリックします。コンテキストメニューが表示されます。
メニューから、 サウンド を挿入します。
プロパティ ウィンドウ で、 サウンドID プロパティに移動し、有効な オーディオアセットID を入力します。
(オプション) エクスペリエンスが開始すると、オーディオの再生を開始したい場合は、 再生 プロパティを有効にします。
光ソースポイント
体積オーディオとは異なり、ポイントソースオーディオは単一のポイントソースからのみ放射されます。この種類のオーディオは、爆発、衝撃音、電子機器、そして対話に有用です。
ポイントソースオーディオ用の Sound オブジェクトを作成するには:
- エクスプローラー ウィンドウ で、添付ファイル、トラス、ウェッジ、またはコーナーウェッジをホバーし、⊕ ボタンをクリックします。コンテキストメニューを表示します。
- メニューから、 サウンド を挿入します。
- (オプション) エクスペリエンスが開始すると、オーディオの再生を開始したい場合は、 再生 プロパティを有効にします。
背景音オーディオ
ユーザーがエクスペリエンス内で移動しても、背景オーディオは同じボリュームで再生します。この種類のオーディオは、特に複数のオーディオファイルのサウンドトラックを作成したいとき、ユーザーに再生したい音楽に便利です。
エクスペリエンス内のオーディオを追加したり編集したりしながら、オーディオの背景音声用にすべての Sound オブジェクトをワークスペースの単一の場所に保持するのが最善です。次の例では、このサービスがエクスペリエンスでオブジェクトがどのようにプレイするかを決定するため、新しい オブジェクトを コンテナに保存します。
背景オーディオ用の Sound オブジェクトを作成するには:
- エクスプローラー ウィンドウで、 サウンドサービス をホバーし、⊕ ボタンをクリックします。コンテキストメニューが表示されます。
- メニューから、 サウンド を挿入します。
- (オプション) エクスペリエンスが開始すると、オーディオの再生を開始したい場合は、 再生 プロパティを有効にします。
サウンドオブジェクトをカスタマイズ
Sound オブジェクトプロパティは、ユーザーがオーディオをどのように経験するかに影響を与えるために一緒に働きます、例えば:
- 特定のオーディオを個別に、および相対的にどれほど大きく聞こえるか ( ボリューム )。
- オーディオのどの部分を聴くことができるか ( 時間位置 )。
- どれほど早く、どのピッチで聞こえるか ( 再生速度 )。
- オーディオが完了後自動再生する場合 ( ループ状態 ).
ボリューム
Volume プロパティでは、0 (沈黙)から10 (爆発)まで、オーディオのボリュームを設定できます。複数の Sound オブジェクトの音量を一度に変更したい場合は、サウンドグループ の下に親を置きます。
RollOffMinDistance および RollOffMaxDistance
RollOffMinDistance および RollOffMaxDistance は、ユーザーが位置音響から音量をどの程度認識するかを決定します。ボリュメトリックオーディオの場合、 は、クライアントのリスナーが親の から移動したときにオーディオがボリュームが低下し始める最小距離であり、 プロパティは、クライアントのリスナーがオブジェクトの表面からオーディオを聴くことができる最大距離です。

ポイントソースオーディオの場合、RollOffMinDistance と RollOffMaxDistance はボリュメトリックオーディオと同様に機能しますが、これらのプロパティが制御するロールオフ距離はオブジェクトを囲まず、点源から出す距離のみに影響します。

ロールオフモード
RollOffMode プロパティでは、ユーザーのリスナーと Sound オブジェクトの親の距離が増加するにつれて、オーディオがどのように薄くなるかを決めることができます。このプロパティを Enum.RollOffMode 枚列の 4つの値の 1つに設定できます。

ロールオフモード | 説明 |
---|---|
Inverse (デフォルト) | 最初はボリュームが RollOffMinDistance から急速に消えますが、ボリュームの消失は、ユーザーが RollOffMaxDistance に近づくにつれてより円滑になります。彼らが RollOffMaxDistance に到達すると、オーディオは静止します。 |
Linear | ユーザーが RollOffMinDistance に到達すると、オーディオが静止します。一度、ボリュームが RollOffMaxDistance と RollOffMaxDistance の間で線形的に減少すると、オーディオが静止します。 |
InverseTapered | ボリュームは、RollOffMinDistance に近いときに逆モデルに従い、ユーザーがRollOffMaxDistanceに近いときに線形正方形モデルに従います。オーディオは最大距離ポイントで静止に近づきます。 |
LinearSquare | 線形な正方形の関係で RollOffMinDistance と RollOffMaxDistance の間のボリュームが減衰します。オーディオは最大距離点で静止します。 |
プレイバック速度
PlaybackSpeed プロパティでは、オーディオが再生する速度を決定できます。たとえば、PlaybackSpeed を 2 の値に設定すると、オーディオが 2 倍速く再生し、ピッチが 1 オクターブ高くなります。同様に、 0.5 の値に設定すると、オーディオが 2倍の速度で再生し、ピッチが 1オクターブ低くなります。
PlaybackSpeed = 0.5 | PlaybackSpeed = 1.0 | PlaybackSpeed = 2.0 |
時間ポジション
TimePosition プロパティは、数秒で、ユーザーが現在聴いているオーディオサンプル内の位置を表示します。このプロパティは、オーディオサンプルの一部の再生だけ、またはオーディオが特定の位置に到達するとイベントをトリガーすることのみに便利です。たとえば、次のコードサンプルでは、パーティクルエミッタが制限された時間範囲内のオーディオトラック内のパーツ上に白いリングパーティクルを放出するようになります。
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
-- 新しいパーツを作成
local part = Instance.new("Part")
part.Anchored = true
part.Color = Color3.new(0.75, 0.2, 0.5)
part.Size = Vector3.new(2, 1, 2)
part.Material = Enum.Material.Neon
part.Position = Vector3.new(0, 4, 0)
part.Parent = Workspace
-- パーツに添付ファイルを作成する
local attachment = Instance.new("Attachment")
attachment.Position = Vector3.new(0, 0.5, 0)
attachment.Parent = part
-- 添付ファイルにパーティクルエミッタを作成
local emitter = Instance.new("ParticleEmitter")
emitter.Rate = 5
emitter.Lifetime = NumberRange.new(1.5, 1.5)
emitter.Texture = "rbxassetid://1266170131"
emitter.Speed = NumberRange.new(1, 1)
emitter.Size = NumberSequence.new{NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(1, 6)}
emitter.Transparency = NumberSequence.new{NumberSequenceKeypoint.new(0, 1), NumberSequenceKeypoint.new(0.25, 0), NumberSequenceKeypoint.new(1, 1)}
emitter.Orientation = Enum.ParticleOrientation.VelocityPerpendicular
emitter.Parent = attachment
-- 添付ファイルでサウンドを作成
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://1835405646"
sound.Parent = attachment
-- 音を再生する
sound:Play()
-- エミッターを有効にすべきかどうかをチェック開始
RunService.Heartbeat:Connect(function()
-- オーディオの時間範囲内でエミッターを有効にする; そうでない場合は無効にする
emitter.Enabled = sound.TimePosition >= 5 and sound.TimePosition < 20
end)
ループ化済み
Looped プロパティでは、再生が終わった後に音を繰り返すことができます。true に設定すると、Sound オブジェクトのオーディオが再生されます。これは、エクスペリエンスが決して急な沈黙にならないようにするために、バックグラウンドオーディオ に適用するのが便利です。
スクリプトサウンドオブジェクト
オーディオをコンテキストごとに再生
自動再生オブジェクトの プロパティを通じてオーディオを再生することに加えて、対応する オブジェクトに を呼び出してオーディオコンテキストを再生できます。例えば:
local Workspace = game:GetService("Workspace")local sound = Instance.new("Sound")sound.SoundId = "rbxassetid://9120386436"sound.Looped = truesound.Parent = Workspacesound:Play()
代わりに、場所に複数のトラックが含まれる場合は、LocalScript から特定のトラックを再生できます:
local SoundService = game:GetService("SoundService")local musicTrack = SoundService:FindFirstChild("LucidDream")if musicTrack not musicTrack.IsPlaying thenmusicTrack:Play()end
インターフェイスオーディオを再生
インターフェイスオーディオを再生することができます GuiObjects 例えば、ボタン をホックアップして、Sound イベントリスナーに接続して、Activated ボタンを再生できます。これにより、ユーザーがホバーしたり、押したりするときのようなオーディオフィードバックを提供できます。
ユーザーが Sound または TextButton または ImageButton を有効にすると、 オブジェクトのオーディオを再生するには:
local SoundService = game:GetService("SoundService")
local button = script.Parent
local sound = SoundService:FindFirstChild("SOUND_NAME")
if not sound.isLoaded then
sound.Loaded:Wait()
end
local function onButtonActivated()
if sound and not sound.IsPlaying then
sound:Play()
end
end
button.Activated:Connect(onButtonActivated)