mcpField
R
roblox-audio

roblox-audio

github.com/tabooharmonyクリエイティブ・メディア1382.1k 回インストール2 週間前に更新
リポジトリ

roblox-audio について

Roblox のオーディオ開発向けスキルガイドです。旧式の Sound オブジェクトとモジュール式の AudioPlayer/Wire システムを扱い、再生、空間音響、ミキシング、エフェクトの実装に役立ちます。

主な機能

  1. 01旧式とモジュール式の音声システム
  2. 022D・3D 音声のルーティング
  3. 03SoundGroup によるミキシングとエフェクト
  4. 04音声のプリロードと単発再生
  5. 05クライアント音声再生の留意点

活用シーン

  1. 01BGM と効果音の追加
  2. 02空間音響と減衰範囲の設定
  3. 03音楽と効果音の音量分離
  4. 04サーバー遅延による反応音のずれ防止

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tabooharmony/roblox-brain --skill roblox-audio

インストール後、Claude Code で/roblox-audioを入力して読み込まれたか確認します。

同梱ファイルreferences/full.md

詳細

Roblox Audio

読み込むタイミング

オーディオ再生、空間/3D サウンド、BGM、効果音、オーディオミキシング(SoundGroups)、またはダイナミックエフェクトを実装する場合に読み込みます。従来の Sound オブジェクトと、新しいモジュラー型の AudioPlayer/Wire システムの両方を扱います。

クイックリファレンス

2 つのシステム:従来型(Sound/SoundGroup/SoundEffect)はよりシンプルです。新しいモジュラー型(AudioPlayer/AudioEmitter/Wire/AudioDeviceOutput)は新規プロジェクトで推奨され、ボイスチャットには必須です。

Sound の配置:BasePart の子 → 立体音源。Attachment/MeshPart → 点音源。SoundService/Workspace → グローバル(BGM/UI)。

従来型のセットアップ:

local s = Instance.new("Sound")
s.SoundId = "rbxassetid://ID"; s.Looped = true; s.Volume = 0.25
s.RollOffMode = Enum.RollOffMode.InverseTapered
s.RollOffMinDistance = 10; s.RollOffMaxDistance = 100
s.Parent = SoundService; s:Play()

SoundGroups(ミキサー):プレイヤーが Music と SFX の音量を個別に調整できるように、Master の下に SoundGroup をネストします。bgMusic.SoundGroup = musicGroup。エフェクト(ReverbSoundEffect、EqualizerSoundEffect、CompressorSoundEffect など)は Sound/SoundGroup の子にします。ダッキング:音楽側の CompressorSoundEffect で SideChain = sfxGroup を設定します。

新しいモジュラー型:2D:AudioPlayer → Wire → AudioDeviceOutput。3D:AudioPlayer → Wire → AudioEmitter(Part に配置)。Studio/プラグイン専用の SoundService.DefaultListenerLocation でデフォルトのリスナーを制御します。実行時に制御する場合は、明示的な AudioListener を接続します。

単発の効果音:

local function playSFX(parent, id)
    local s = Instance.new("Sound"); s.SoundId = id
    s.RollOffMode = Enum.RollOffMode.InverseTapered
    s.RollOffMinDistance = 10; s.RollOffMaxDistance = 80
    s.Parent = parent; s:Play()
    s.Ended:Once(function() s:Destroy() end)
end

プリロード:ContentProvider:PreloadAsync({sound1, sound2})。クライアントの効果音:FireClient → OnClientEvent で透明な Part を作成し、playSFX を実行します。

注意点:サーバー側の Sound は遅延が発生するため、フィードバックはクライアントで再生します。デフォルトの RollOffMaxDistance は 10000 studs なので、明示的に設定します。音量が 1 を超えるとクリッピングします。連続再生の場合は IsPlaying を確認します。単発再生した Sound は、Ended の後に必ず Destroy() します。

詳しい例、エフェクトの表、クライアント側のパターンについては、references/full.md を参照してください。

コメント