学ぶ
エンジンクラス
AudioEmitter

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。


コードサンプル
複数の3D位置から同時に1つのアセットを再生する
local part1: BasePart = workspace.Speakers.Left
local part2: BasePart = workspace.Speakers.Right
local player: AudioPlayer = workspace.AudioPlayer
local leftEmitter = Instance.new("AudioEmitter")
local rightEmitter = Instance.new("AudioEmitter")
local toLeft = Instance.new("Wire")
local toRight = Instance.new("Wire")
leftEmitter.Parent = part1
rightEmitter.Parent = part2
toLeft.Parent = leftEmitter
toLeft.SourceInstance = player
toLeft.TargetInstance = leftEmitter
toRight.Parent = rightEmitter
toRight.SourceInstance = player
toRight.TargetInstance = rightEmitter
player:Play()

APIリファレンス
プロパティ
AcousticSimulationEnabled
並列読み取り
機能: Audio
AudioEmitter.AcousticSimulationEnabled:boolean

AngleAttenuation
Robloxのセキュリティ
並列読み取り
機能: Audio
AudioEmitter.AngleAttenuation:Flyweight

AudioInteractionGroup
並列読み取り
機能: Audio
AudioEmitter.AudioInteractionGroup:string

DiffractionEnabled
並列読み取り
機能: Audio
AudioEmitter.DiffractionEnabled:Enum.SimulationMode

DistanceAttenuation
Robloxのセキュリティ
並列読み取り
機能: Audio
AudioEmitter.DistanceAttenuation:Flyweight

DistanceAttenuationBounds
並列読み取り
機能: Audio
AudioEmitter.DistanceAttenuationBounds:NumberRange

DistanceAttenuationMode
並列読み取り
機能: Audio
AudioEmitter.DistanceAttenuationMode:Enum.DistanceAttenuationMode

OcclusionEnabled
並列読み取り
機能: Audio
AudioEmitter.OcclusionEnabled:Enum.SimulationMode

PositionInstance
並列読み取り
機能: Audio
AudioEmitter.PositionInstance:Instance

PositionType
並列読み取り
機能: Audio
AudioEmitter.PositionType:Enum.EmitterPositionType

ReverbEnabled
並列読み取り
機能: Audio
AudioEmitter.ReverbEnabled:Enum.SimulationMode

SimulationFidelity
非推奨

方法
GetAngleAttenuation
機能: Audio
AudioEmitter:GetAngleAttenuation():Dictionary
戻り値

GetAudibilityFor
機能: Audio
AudioEmitter:GetAudibilityFor(listener:AudioListener):number
パラメータ
listener:AudioListener
戻り値

GetConnectedWires
機能: Audio
AudioEmitter:GetConnectedWires(pin:string):{Wire}
パラメータ
pin:string
戻り値

GetDistanceAttenuation
機能: Audio
AudioEmitter:GetDistanceAttenuation():Dictionary
戻り値

GetInputPins
機能: Audio
AudioEmitter:GetInputPins():{any}
戻り値

GetInteractingListeners
機能: Audio
AudioEmitter:GetInteractingListeners():{AudioListener}
戻り値

GetOutputPins
機能: Audio
AudioEmitter:GetOutputPins():{any}
戻り値

SetAngleAttenuation
機能: Audio
AudioEmitter:SetAngleAttenuation(curve:Dictionary):()
パラメータ
戻り値
()

SetDistanceAttenuation
機能: Audio
AudioEmitter:SetDistanceAttenuation(curve:Dictionary):()
パラメータ
戻り値
()
コードサンプル
カスタム距離減衰
local Players = game:GetService("Players")
local emitterPart = Instance.new("Part")
emitterPart.Anchored = true
emitterPart.Position = Vector3.new(0, 0, 0)
emitterPart.Parent = workspace
local emitter: AudioEmitter = Instance.new("AudioEmitter")
emitter.Parent = emitterPart
local curve = {}
curve[10] = 1 -- 10スタッド以内の距離では、リスナーはこのエミッターをフルボリュームで聞くことができます
curve[100] = 0.4 -- 100スタッドの距離では、リスナーはこのエミッターを40%のボリュームで聞くことができます
curve[300] = 0 -- 300スタッドより遠い距離では、リスナーはこのエミッターを聞くことができません
emitter:SetDistanceAttenuation(curve)
-- 古いボイス実装からのロールオフカーブを複製します
-- 新しいオーディオAPIを使用しないデフォルトのボイスは、7から80スタッドの範囲で二次的なロールオフを使用します
local MIN_DISTANCE = 7
local MAX_DISTANCE = 80
local CURVE_STEP_SIZE = 2
local voiceCurve = {}
for i = MIN_DISTANCE, MAX_DISTANCE, CURVE_STEP_SIZE do
voiceCurve[i] = ((i - MIN_DISTANCE) - (MAX_DISTANCE - MIN_DISTANCE)) ^ 2 / (MAX_DISTANCE - MIN_DISTANCE) ^ 2
end
voiceCurve[MAX_DISTANCE] = 0
local function setVoiceCurve(character)
local voiceEmitter: AudioEmitter = character:WaitForChild("AudioEmitter")
voiceEmitter:SetDistanceAttenuation(voiceCurve)
end
for _, player in Players:GetPlayers() do
if player.Character then
setVoiceCurve(player.Character)
end
player.CharacterAdded:Connect(setVoiceCurve)
end

イベント
WiringChanged
機能: Audio
AudioEmitter.WiringChanged(
connected:boolean, pin:string, wire:Wire, instance:Instance
パラメータ
connected:boolean
pin:string
wire:Wire
instance:Instance

©2026 Roblox Corporation。Roblox(ロブロックス)、RobloxロゴおよびPowering Imaginationは、米国並びにその他の国における登録商標および非登録商標です。