Sound
개요
Sound 오브젝트는 게임 내에서 오디오를 재생하거나 음향 효과를 추가할 수 있는 핵심 요소입니다. World나 Part, UI 등에 연결하여 배경음악, 효과음, 음성 등 다양한 오디오 경험을 구현할 수 있습니다. 이를 통해 게임의 몰입감을 높이고 플레이어와의 상호작용을 풍부하게 만들 수 있습니다.
사용 방법
사운드 Id 설정
사운드를 재생하려면 사운드 오브젝트를 배치한 다음, 프로퍼티창에서 Sound Id를 설정해야 합니다.

Sound Id는 Asset Manager에서 오디오 에셋을 우클릭한 다음, Copy Asset ID to Clipboard를 클릭해서 복사할 수 있습니다. 복사한 Asset ID는 ovdrassetid://번호 형식으로 설정해야 합니다.

미리 듣기
Sound Id를 설정한 경우, Preview 버튼을 클릭하여 소리를 확인할 수 있습니다.

프로퍼티 구성
Playing
재생 여부
Looped
반복 여부
Volume
음량
Playback Regions Enabled
PlaybackRegion 속성 사용 여부
Playback Speed
사운드의 재생 속도
Time Position
사운드의 재생 위치(초 단위)
Sound Id
재생할 사운드 에셋 Id (ovdrassetid://번호 형식)
Loop Region
사운드의 특정 구간을 반복 재생 (ex : 5~10초 사이 반복)
Playback Region
사운드 재생 범위를 설정 (ex : 3초부터 8초까지만 재생)
Play on Remove
사운드 오브젝트가 제거될 때 자동으로 재생할지 여부
Sound Group
사운드가 속한 사운드 그룹을 설정
위치 기반 재생
위치 기반 재생을 사용하면 소리가 거리와 위치에 따라 자연스럽게 감쇠되도록 설정할 수 있습니다. 예를 들어, 특정 장소에서 들리는 빗소리나 거리에 따라 멀어지는 자동차의 엔진음 등을 사실적으로 표현할 수 있습니다. 이러한 설정은 게임 내에서 공간감과 몰입감을 높이는 데 효과적입니다.

위치 기반 재생은 Roll Off Max Distance와 Roll Off Min Distance 프로퍼티로 거리를 설정할 수 있으며, Roll Off Mode 프로퍼티로 감쇠 방식을 설정할 수 있습니다.
Roll Off Max Distance
소리가 들리는 최대 거리
Roll Off Min Distance
소리가 들리기 시작하는 최소 거리
Roll Off Mode
소리가 거리에 따라 감쇠되는 방식
Inverse : 거리에 반비례하여 소리가 감쇠
Linear : 선형적으로 감쇠
Linear Square : 거리 제곱에 비례하여 감쇠
Inverse Tapered : 가까운 거리에서의 감쇠를 완화
Roll Off Mode의 각 타입은 다음과 같이 활용할 수 있습니다.
Inverse : 폭발음 (플레이어가 멀리 있을수록 소리가 점차 약해짐)
Linear : 라디오에서 나오는 배경 음악 (거리에 따라 일정하게 소리가 감소)
Linear Square : 총기 발사음 (근거리에서 강렬, 원거리에서 급격히 소리가 감소)
Inverse Tapered : 바람 소리 (가까운 거리에서 서서히 소리가 감소)
스크립트 기능
Sound활용 예시
게임 배경음
local Workspace = game:GetService("Workspace")
local GameBGM = Workspace.GameBGM
local function PlayGameBGM(isPlay)
GameBGM.Playing = isPlay
end
GameStart(true)
KillPart 충돌 효과음
local Workspace = game:GetService("Workspace")
local Part = Workspace.Part
local function OnTouched(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid:TakeDamage(100)
local killSFX = Instance.new("Sound")
killSFX.SoundId = "ovdrassetid://1234"
killSFX.Volume = 1
killSFX.Parent = Part
killSFX.Playing = true
end
end
Part.Touched:Connect(OnTouched)
버튼 효과음
local Workspace = game:GetService("Workspace")
local ScreenGui = script.Parent
local ImageButton = ScreenGui.ImageButton
local function OnActivated()
print("Activated!")
local buttonSFX = Instance.new("Sound")
buttonSFX.SoundId = "ovdrassetid://1234"
buttonSFX.Volume = 1
buttonSFX.Parent = Workspace
buttonSFX.Playing = true
end
ImageButton.Activated:Connect(OnActivated)
고급 활용
사운드 그룹
곧 지원될 예정입니다.
Last updated