SoundService は、ゲーム全体の音を制御するための Roblox のサービスです。サウンドエフェクトの再生や停止、全体の音量調整、特定の音の音量やピッチ調整など、音声に関するさまざまな操作を行うことができます。

主なプロパティとしては以下のものがあります。

  • AmbientReverb:ゲーム内の全てのサウンドのリバーブ(残響)を設定します。
  • DistanceFactor:音の減衰率を制御します。値が大きいほど、音源から遠くにいるリスナーに対する音の減衰が大きくなります。
  • DopplerScale:ドップラーエフェクトのスケールを設定します。ドップラーエフェクトは、音源とリスナーが相対的に移動しているときに音の周波数が変化する現象です。
  • RespectFilteringEnabled:このプロパティが true の場合、LocalScriptで Sound:Play() を実行するとそのクライアントのみ音が聞こえます。false の場合、他のクライアントでも音が聞こえるようになります。

以下に、SoundService を使って全体の音量を変更するLuaスクリプトの例を示します。

-- SoundServiceを取得
local SoundService = game:GetService("SoundService")

-- 全体の音量を50%に設定
SoundService.Volume = 0.5

このプログラムは SoundService の Volume プロパティを使用して、ゲーム全体の音量を50%に設定します。
なお、SoundService を使ってゲーム全体の音を調整することは可能ですが、個々の音源(Sound オブジェクト)の制御も重要です。Sound オブジェクトには、音源の位置、音量、ピッチ、ループ再生の有無など、個々の音源を細かく制御するためのプロパティが用意されています。

1つの音楽を再生する

SoundService にオーディオファイルを入れると、ゲームの音楽(BGM)が再生できます。
オーディオのプロパティPlayingをONにし、Looped をONにします。Looped をOFFにすると1度だけの再生になります。

複数の音楽を再生する

複数の音楽をループ再生する場合は、プログラムが必要になります。

  1. SoundService に再生したいオーディオファイルを複数個入れます。
  2. 各オーディオのプロパティ Playing と Looped を OFF に設定します。
  3. 次のプログラムをServerScriptServiceに入れます。
local SoundService = game:GetService("SoundService")
local sounds = SoundService:GetChildren()

while wait() do
    for _,sound in pairs(sounds) do
        sound:Play()
        sound.Ended:Wait()
    end	
end

By schilverberch

ROBLOXでゲームを作ろう! 一緒にプログラミングを学びましょう。

コメントを残す