오디오 재생은 경험 내에서 오디오를 방출하는 Sound 개체를 통해 발생합니다.Roblox는 각 오디오 자산에 특정 사운드 효과나 음악 트랙을 재생하기 위해 Sound를 할당합니다.이 오디오를 런타임에 자동으로 재생하도록 설정하거나 스크립트에서 재생을 트리거할 수 있습니다.
여러 개의 개체의 재생을 수정하려면 소리 그룹에 할당하고 전체 그룹의 볼륨을 제어하며 동적 효과를 적용할 수 있습니다.
사운드 개체 생성
경험 내 사용자 위치와 관련하여 오디오가 방출되고 볼륨이 변경되는 방법을 결정하는 세 가지 위치가 있습니다. Sound 개체를 만들 수 있으며 각 위치는 경험 내 사용자 위치와 관련하여 오디오가 방출되고 볼륨이 변경되는 방법을 결정합니다.
위치 | 오디오 방출 방법 | 볼륨 변경 방법 |
---|---|---|
블록, 구 또는 실린더의 자식 BasePart . | 오디오는 부품의 전체 표면에서 방출됩니다. | 사용자의 사운드 리스너와 부품의 위치 및 크기에 따른 볼륨 변경. Volume changes depending on the distance between the user's sound listener and the position of the part, as well as its size. |
Attachment , MeshPart , TrussPart , WedgePart 또는 CornerWedgePart 의 자식. | 오디오는 단일 부착점 또는 부품 중심에서 외부로 방출됩니다. | 사용자의 사운드 리스너와 첨부/부분 위치 사이의 거리에 따라 볼륨이 변경됩니다. |
내에서 SoundService 또는 Workspace. | 경험 내내 오디오가 방출됩니다. | 사용자의 사운드 리스너 위치나 회전에 관계없이 볼륨과 패널 위치가 동일하게 유지됩니다. |
위치 오디오
위치 오디오는 사용자가 경험 내에서 특정 위치 근처에서만 들을 수 있는 오디오입니다.사용할 수 있는 두 가지 위치 오디오 유형이 있습니다: 음향 및 포인트 소스.
볼륨적
음향 볼륨은 사용자의 위치에 따라 동적으로 변경되므로 음향 소스에 대한 가장 현실적인 오디오 옵션입니다.예를 들어, 사용자가 자식 BasePart 개체가 있는 Sound 내에 있으면 오디오가 사용자 주위에서 재생되며, 각 스피커에서 동일한 볼륨으로 재생되는 음악과 비슷합니다.사용자가 부품을 종료하면 오디오가 점차 볼륨이 줄어들고 스피커당 더 방향적이 되며, 청취자가 회전할 때 사용자의 머리 주변을 이동합니다.부품과의 다른 거리에서 오디오의 볼륨을 제어하는 속성에 대한 정보는 RollOffMinDistance 및 RollOffMaxDistance를 참조하십시오.
BasePart의 크기는 오디오의 볼륨에도 영향을 미치며, 더 큰 BaseParts는 사용자가 오디오를 들을 수 있는 더 넓은 영역을 생성하고, 사용자가 큰 BasePart에서 멀리 이동하면 볼륨이 더 느리게 감소합니다.다음 예제에서는 도시에서 환경 오디오를 재생하는 BasePart 개체의 크기인 Sound 를 표시합니다.사용자 A와 B는 오디오를 각각 다르게 경험합니다: 사용자 B는 큰 BasePart 에 더 가깝고, 대부분 두 스피커에서 동일한 용량의 오디오를 듣습니다.반대로, 사용자 A는 도시에서 더 멀리 떨어져 있으므로 그들이 듣는 오디오는 사용자 B보다 조용하고 방향성이 더 강하며, 각각의 스피커에서 서로 다른 용량으로 재생됩니다.

음향 볼륨은 사용자 주위에 몰입형이어야 하고 사용자의 위치에 따라 동적으로 변경되는 모든 오디오에 유용합니다(예: 콘서트 무대 또는 비와 같은 환경 구역).사용자의 다양한 크기와 위치에 개체를 배치하여 실험할 때, 몰입형 음향이 어떻게 될 수 있는지 들을 수 있습니다.
오디오볼륨용 Sound 개체를 생성하려면:
탐색기 창에서 SoundService를 선택합니다.
속성 창 에서 음향 볼륨 속성으로 이동하고 활성화 로 설정합니다.
탐색기 창에서 에 마우스를 올리고 ⊕ 버튼을 클릭하십시오. 컨텍스트 메뉴가 표시됩니다.
메뉴에서 음향 을 삽입합니다.
속성 창 에서 SoundId 속성으로 이동하고 유효한 오디오 자산 ID를 입력하십시오.
(옵션) 경험이 시작될 때 오디오가 재생되기를 원하는 경우 재생 속성을 활성화하십시오.
포인트 소스
음향 볼륨에 비해 포인트 소스 오디오는 단일 포인트 소스에서만 방출됩니다.이 유형의 오디오는 폭발, 충격 소음, 전자 장치 및 대화에 유용합니다.
포인트 소스 오디오에 대한 Sound 개체를 생성하려면:
- 탐색기 창에서 첨부 파일, 트러스, 쐐기 또는 모서리 쐐기를 가리키고 ⊕ 버튼을 클릭하면 컨텍스트 메뉴가 표시됩니다.
- 메뉴에서 음향 을 삽입합니다.
- (옵션) 경험이 시작될 때 오디오가 재생되기를 원하는 경우 재생 속성을 활성화하십시오.
배경 오디오
사용자가 경험 내에서 어디로 이동하든 배경 오디오가 동일한 볼륨으로 재생됩니다.이 유형의 오디오는 사용자를 위해 재생하려는 음악, 특히 여러 오디오 파일의 사운드트랙을 만들려는 경우 유용합니다.
경험 내에서 오디오를 계속 추가하고 편집함에 따라 조직 목적으로 작업 공간의 단일 위치에 모든 Sound 개체를 백그라운드 오디오로 유지하는 것이 가장 좋습니다.다음 예제에서는 이 서비스가 경험에서 개체가 어떻게 플레이하는지 결정하기 때문에 새로운 개체를 컨테이너에 저장합니다.
배경 오디오에 대한 Sound 개체를 생성하려면:
- 탐색기 창에서 소리 서비스 위로 마우스를 이동한 다음 ⊕ 버튼을 클릭하십시오. 컨텍스트 메뉴가 표시됩니다.
- 메뉴에서 음향 을 삽입합니다.
- (옵션) 경험이 시작될 때 오디오가 재생되기를 원하는 경우 재생 속성을 활성화하십시오.
사운드 개체 사용자 정의
Sound 개체 속성은 함께 작동하여 사용자가 오디오를 경험하는 방식에 영향을 미칩니다. 예를 들어:
- 특정 오디오를 개별적으로 및 서로 관련하여 얼마나 크게 들을 수 있는지(볼륨).
- 들을 수 있는 오디오의 부분(시간 위치).
- 얼마나 빠르고 어떤 피치로 그것을 들을지( 재생 속도 ).
- 오디오가 완료되면 자동으로 재생되는 경우(루프됨).
볼륨
Volume 속성을 사용하면 음향의 볼륨을 0 (침묵)에서 10 (웅웅거리는)까지 어디서나 설정할 수 있습니다.한 번에 여러 Sound 개체의 볼륨을 변경하려는 경우, 그들을 사운드 그룹 아래에 부모로 두십시오.
RollOffMinDistance 및 RollOffMax距離
RollOffMinDistance 및 RollOffMaxDistance 사용자가 위치 오디오에서 음량을 인식하는 범위를 결정합니다.음향 용량을 위해, 는 클라이언트의 수신기가 부모의 표면에서 이동하면 음향이 감소하기 시작하는 최소 거리(스터드)이고, 속성은 클라이언트의 수신기가 개체의 표면에서 음향을 들을 수 있는 최대 거리(스터드)입니다.

포인트 소스 오디오의 경우 RollOffMinDistance 및 RollOffMaxDistance 는 음향 볼륨과 비슷하게 작동하지만, 이러한 속성이 제어하는 롤오프 거리는 개체를 둘러싸지 않고 오직 점 소스에서 멀리 있는 거리에만 영향을 미칩니다.

롤오프 모드
RollOffMode 속성을 사용하면 사용자의 리스너와 Sound 개체의 부모 간 거리가 증가함에 따라 오디오가 어떻게 사라지는지 결정할 수 있습니다.이 속성을 Enum.RollOffMode 열거형의 네 가지 값 중 하나로 설정할 수 있습니다.

롤오프 모드 | 설명 |
---|---|
Inverse (기본) | 처음에 볼륨은 급격하게 사라지지만 에 가까워질수록 볼륨 사라짐이 점진적으로 증가합니다.그들이 RollOffMaxDistance에 도달하면 오디오가 침묵합니다. |
Linear | 사용자가 에 도달하면 오디오가 침묵합니다. Once a user reaches the , the audio falls silent. |
InverseTapered | 볼륨은 RollOffMinDistance에 가까울 때 역모델을 따르고, 사용자가 RollOffMaxDistance에 가까울 때 선형 정사각형 모델을 따릅니다.오디오는 최대 거리 지점에서 침묵합니다. |
LinearSquare | 선형 제곱 관계로 볼륨이 RollOffMinDistance 와 RollOffMaxDistance 사이에서 사라집니다. 오디오는 최대 거리 지점에서 침묵에 접근합니다. |
재생 속도
PlaybackSpeed 속성을 사용하면 오디오가 재생하는 속도를 결정할 수 있습니다.예를 들어, PlaybackSpeed 를 2 값으로 설정하면 오디오가 두 배 더 빠르게 재생되고 피치가 한 옥타브 높아집니다.마찬가지로, 값을 0.5 로 설정하면 오디오가 두 배 더 느리게 재생되고 피치가 한 옥타브 낮아집니다.
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
플레이 인터페이스 오디오 재생
인터페이스 오디오를 재생하여 예를 들어 버튼 을 연결하여 이벤트 수신기에 개체를 연결하여 할 수 있습니다.이를 통해 사용자에게 청각 피드백을 제공할 수 있습니다(예: 마우스를 올리거나 누르는 경우).
사용자가 Sound 또는 TextButton 또는 ImageButton를 활성화할 때 개체의 오디오를 재생하려면:
- 다음 코드를 스크립트에 붙여넣은 다음 SOUND_NAME 를 내부에 있는 Sound 개체의 이름으로 바꿉니다.Paste the following code into the script, then replace with the name of a object located inside the SoundService container.
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)