오디오 재생은 경험 내에서 오디오를 방출하는 Sound 개체를 통해 발생합니다. Roblox는 각 Class.Sound 개체에 고유한 ID를 할당하여 특정 사운드 효과 또는 음악 트랙을 재생할 수 있습니다. 이 오디오를 자동으로
여러 Sound 개체의 재생을 수정하려면 음향 그룹에 할당하고 전체 그룹의 볼륨을 제어하고 동적 효과를 적용하는 등의 작업을 수행할 수 있습니다.
사운드 개체 생성
경험 내에서 사용자의 위치와 관련하여 오디오 방송 및 볼륨 변경을 조정하는 방법에 대해 각 위치를 생성할 수 있습니다. 각 위치는 Sound 개체를 생성할 수 있습니다.
위치 | 오디오 방송 | 볼륨 변경 |
---|---|---|
블록, 구 또는 실린더의 자식 BasePart . | 오디오는 부품의 전체 표면에서 나옵니다. | 사용자의 사운드 리스너와 부품의 위치 사이의 거리에 따라 볼륨이 변경됩니다. |
Class.AttachChild, MeshPart, TrussPart, 1>Class.WedgePart1>, 또는 4>Class.CornerWedgePart4>의 자식. | 오디오는 단일 부착 점 또는 부품 센터에서 나옵니다. | 사용자의 사운드 리스너와 부착/부분 위치 사이의 거리에 따라 볼륨이 변경됩니다. |
Class.SoundService 또는 Workspace 내에. | 오디오는 경험 전반에 걸쳐 방출됩니다. | 사용자의 오디오 수신기 위치나 회전에 관계없이 볼륨과 팬 위치가 동일하게 유지됩니다. |
위치 오디오
장소 오디오는 사용자가 경험 내에서 특정 위치 근처에서만 듣을 수 있는 오디오입니다. 장소 오디오는 두 가지 유형으로 사용할 수 있습니다: 볼륨 및 포인트 소스입니다.
볼륨
볼륨 오디오는 사용자가 오디오 소스에 위치에 따라 동적으로 변경되므로 가장 현실적인 오디오 옵션입니다. 예를 들어
크기가 큰
범위 음향 오디오는 사용자 주위에 놓여 있으며 사용자의 위치에 따라 동적으로 변경되는 콘서트 스테이지 또는 비 음성 구역과 같은 음향 오디오에 유용합니다. 음향 오디오를 배치하는 것은 사용자의 크기와 위치를 변경하여
오디오오브젝트 Sound 을 생성하려면:
In the 탐색기 window, select SoundService .
In the 속성 window, navigate to the 음향 효과 property, then set it to 활성화 .
탐색기 창에서 Class.BasePart 위로 마우스를 이동한 다음 BasePart 버튼을 클릭하십시오. 컨텍스트 메뉴가 표시됩니다.
메뉴에서 음향 을 삽입합니다.
속성 창에서 음향 ID 속성으로 이동하고 유효한 오디오 자산 ID를 입력하십시오.
(옵션) 경험이 시작될 때 오디오가 재생되도록 하려면 재생 속성을 활성화하십시오.
포인트 원본
음향적 오디오와 달리 점 소스 오디오는 단일 점 소스에서만 방출됩니다. 이 오디오 유형은 폭발, 충격 소음, 전자 장치 및 대화에 유용합니다.
포인트 소스 오디오에 대한 Sound 개체를 생성하려면:
탐색기 창에서 부착, 트러스, 쐐기 또는 모서리 쐐기에 커서를 올리고 ⊕ 버튼을 클릭하십시오. 컨텍스트 메뉴가 표시됩니다.
메뉴에서 음향 을 삽입합니다.
속성 창에서 음향 ID 속성으로 이동하고 유효한 오디오 자산 ID를 입력하십시오.
(옵션) 경험이 시작될 때 오디오가 재생되도록 하려면 재생 속성을 활성화하십시오.
배경 오디오
사용자가 경험 내에서 여행할 때 동일한 볼륨의 배경 오디오가 재생됩니다. 이 유형의 오디오는 사용자에게 음악을 재생하는 데 유용하며, 특히 여러 오디오 파일의 음향 트랙을 만드는 데 사용되는 경우에 특히 유용합니다.
조직 목적으로 작업 공간에 오디오를 추가하고 편집하는 동안 모든 Sound 개체를 하나의 위치에 유지하는 것이 좋습니다. 다음 예에서는 새로운 Sound 개체를 조직 목적의 SoundService 컨테이너에
배경 오디오용 Sound 개체를 생성하려면:
In the 탐색기 창, SoundService 위로 마우스를 이동한 다음 ⊕ 버튼을 클릭하십시오. 컨텍스트 메뉴가 표시됩니다.
메뉴에서 음향 을 삽입합니다.
속성 창에서 음향 ID 속성으로 이동하고 유효한 오디오 자산 ID를 입력하십시오.
(옵션) 경험이 시작될 때 오디오가 재생되도록 하려면 재생 속성을 활성화하십시오.
(옵션) 이 Sound 개체가 플레이스재생할 유일한 트랙이면 그 속성의 반복 속성을 활성화하십시오.
사운드 개체 사용자 정의
Sound 개체 속성은 사용자가 오디오를 경험하는 방식에 영향을 미치는 데 함께 작동합니다. 여기에는 다음이 포함됩니다.
- 서로 관련하여 특정 오디오를 개별적으로 높이고 낮추는 방법(Volume).
- 오디오의 어떤 부분을 들을 수 있는지( 시간 위치 ).
- 얼마나 빠르게 그리고 어떤 피치에서 그것을 듣습니까 (재생 속도).
- 오디오가 완료되면 자동으로 재생됩니다(루프).
볼륨
Class.Sound.Volume|Volume 속성을 사용하면 음성의 볼륨을 0 (쉿)에서 10 (붐)으로 설정할 수 있습니다. 여러 개의 1>Class.Sound1> 개체의 볼륨을 변경하려면 4>음향 그룹</
RollOffMinDistance 및 RollOffMaxDistance
RollOffMinDistance 및 Class.Sound.RollOffMaxDistance|RollOff
포인트 소스 오디오의 경우, RollOffMinDistance 및 RollOffMaxDistance는 음향 오디오와 마찬가지로 작동하지만, 이 속성이 제어하는 롤오프 거리는 개체를 둘러싸지 않고 오직 개체의 방향을 변경합니다.
롤오프모드
Class.Sound.RollOffMode|RollOffMode 속성을 사용하면 사용자 청취기 및 Sound 개체 사이의 거리를 기반으로 오디오가 어떻게 사라지는지 결정할 수 있습니다. 이 속성을 4개의 값 중 하나로 설정할 수 있습니다. Enum.RollOffMode 열거형의 하위 집
롤오프모드 | 설명 |
---|---|
Inverse (기본) | 볼륨은 처음에 RollOffMinDistance에서 갑자기 사라지지만, 볼륨 흐림이 더 부드럽게 발생합니다. 사용자가 RollOffMaxDistance에 도달할수록 볼륨 흐림이 더 부드럽게 발생합니 |
Linear | Class.Sound.RollOffMinDistance|RollOffMinDistance 및 RollOffMaxDistance 사이의 볼륨 슬라이드는 직선적으로 감소합니다. 사용자가 RollOffMaxDistance에 도달하면 오디오가 잠재적으로 끊깁니다. |
InverseTapered | 음은 RollOffMinDistance 및 사용자가 RollOffMaxDistance에 가까이 있을 때 직선 정사각형 모델을 따릅니다. 음은 최대 거리 점에서 침묵에 도달합니다. |
LinearSquare | 볼륨은 RollOffMinDistance 및 RollOffMaxDistance 사이의 직선 사각 관계로 점진적으로 쇠퇴합니다. 오디오 접근은 최대 거리 점에서 침묵합니다. |
재생 속도
Class.Sound.PlaybackSpeed|PlaybackSpeed 속성을 사용하면 오디오가 재생되는 속도를 결정할 수 있습니다. 예를 들어, PlaybackSpeed 를 값으로 설정하면 오디오가 2배 더 빠르게
PlaybackSpeed = 0.5 | PlaybackSpeed = 1.0 | PlaybackSpeed = 2.0 |
시간 위치
Class.Sound.TimePosition|TimePosition 속성은 음향 샘플의 위치를 초 단위로 표시합니다. 이 속성은 오직 오디오 샘플의 특정 위치에서 재생하거나 이벤트가 발생하도록 트리거하는 데 유용합니다. 예를 들어, 다음 코드 샘플은 입자 반응기
local RunService = game:GetService("RunService")
-- 새 부품 생성
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()
-- 오디오의 시간 범위 내에서 발신자를 활성화하십시오; 그렇지 않으면 비활성화하십시오
if sound.TimePosition >= 5 and sound.TimePosition < 20 then
emitter.Enabled = true
else
emitter.Enabled = false
end
end)
루프
Class.Sound.Looped|Looped 속성을 사용하면 오디오가 재생된 후 반복할 수 있습니다. true 개체의 오디오가 다시 재생되면 경험이 중단되지 않도록 합니다. 이 기능은 배경 오디오에 적용되면 경험이 중단되지 않도록 합니다.
음향 개체 스크립트
오디오 컨텍스트 재생
Class.Sound.Playing|Playing 개체의 Playing 속성을 통해 자동으로 오디오를 재생하지 않고 오디오 컨텍스트를 플레이할 수 있지만, 해당 오디오 개체의 LocalScript에서 1>Class.Sound:Play()|
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
플레이 인터페이스 오디오
Class.Sound 개체를 클래스 기준으로 연결하여 버튼 등의 음향 인터페이스 오디오를 재생할 수 있습니다. Class.GuiButton.Activated|Activated 이벤트 수신기에 연결하여 사용자에게 음향 피드백을 제공할 수 있습니다.
사용자가 Class.Sound 개체의 오디오를 활성화할 때 사용자가 활성화한 TextButton 또는 ImageButton 개체의 오디오를 재생하려면:
- 탐색기 창에서 Class.TextButton 또는 TextButton 에 마우스를 올리고 ⊕ 버튼을 클릭하십시오. 컨텍스트 메뉴가 표시됩니다.
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)