배경 음악 외에도 게임 내 오디오는 플레이어의 경험을 향상시킬 수 있습니다. 이 튜토리얼에서는 두 가지 게임 내 음향을 다룹니다. 위치 및 피드백 음향.
첫 번째 예시에서는 폭포에 대한 위치 음향을 만듭니다. 두 번째 예시에서는 플레이어가 수집 가능을 만질 때 재생할 스크립트를 사용합니다.
위치 음향
음향 개체가 부모로 지정된 부품이나 부착에 연결되면, 그 위치가 변경되고 플레이어가 더 가까이 오면 오디오가 그 위치에서 방출되고 더 크게 증가합니다. 이 폭포의 경우와 같이.
사운드 생성
원하는 부분에서 새로운 사운드 개체를 생성하십시오. 이름은 WaterfallSound입니다.
속성에서 SoundId를 찾아 이 워터폴 분위기로 변경하고 다음에 게시하십시오: rbxassetid://6564308795 .
게임이 시작될 때 연속 재생을 위해 플레이 및 루프를 토글하여 켜기 위해.
게임을 테스트하여 폭포 분위기를 확인하세요.
사운드 거리 조정
테스트 시 오디오가 즉시 재생되지만, 플레이어가 개체에서 멀리 있더라도 오디오가 재생되는 것을 알 수 있습니다. 롤오프 속성을 사용하여 플레이어가 소리를 볼 때 생성되는 지연을 수정할 수 있습니다.
Class.Sound.RollOffMaxDistance|RollOffMaxDistance를 30 로 변경합니다. 이 속성은 스터드 단위로 측정됩니다.
더 부드러운 슬라이드를 위해 RollOffMode 를 InverseTapered 로 변경하십시오. 이렇게 하면 음향을 덜 갑자기 느끼게 됩니다.
프로젝트를 실행합니다. 음향이 개체 근처에서만 들리는 것을 알아보세요.
롤오프 미세 조정
필요에 따라 특수 효과나 증강된 현실성을 위해 속성을 조정할 수 있습니다. 다음 속성을 참조하십시오.
- RollOffMinDistance - 최소 거리 (in studs) 사운드의 볼륨이 줄어듭니다.
- SoundGroup - 음악 배경 음악 및 게임 내 효과와 같은 음향 그룹 간의 볼륨을 조정하고 균형을 맞춥니다.
피드백 사운드
스크립트를 사용하여 명령에 따라 소리를 재생할 수 있습니다. 플레이어가 부품을 만지거나 메뉴와 상호 작용하는 등의 이벤트에 소리를 연결할 수 있습니다. 여기에서 플레이어가 수집 가능한 개체를 만지거나 메뉴와 상호 작용하는 등의 이벤트에 대해 소리를 재생하는 스크립트를 만듭니다.
컬렉터블 설정
이 튜토리얼의 나머지는 미리 만든 모델을 사용합니다. 이 모델에는 부품과 스크립트가 포함되어 있으므로 플레이어가 보석을 수집할 수 있습니다.
- 브라우저에서 수집 가능한 보석 모델 페이지를 열고 가져오기 버튼을 클릭하십시오.
- In Studio, go to the 보기 tab and click on the 도구 상자.
- 도구 상자 창에서 인벤토리 버튼을 클릭한 다음 내 모델에 드롭다운이 있는지 확인하십시오.
- 게임에 추가할 수집 가능한 보석 모델을 선택하십시오.
In SoundService 에서 새로운 사운드 를 생성하여 피드백 사운드라는 이름의 새로운 사운드를 만듭니다.
In FeedbackSound, SoundId를 rbxassetid://4110925712로 설정합니다. - 모델 페이지에서 단순한 종소리를 다운로드한 사운드 ID.
스크립트 설정
In StarterPlayer > StarterPlayerScripts > 새로운 로컬 스크립트 이름은 CollectableSounds 입니다.
아래 코드는 플레이어가 수집 가능한 항목을 만질 때마다 partTouched 함수를 실행합니다. 스크립트에 코드를 복사하십시오.
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")if humanoid and objectPart.CanCollide == true thenendend-- 모든 개체 부품에 터치 기능을 바인딩하여 모든 부품에서 작동합니다.for objectIndex = 1, #objectsArray dolocal objectPart = objectsArray[objectIndex]objectPart.Touched:Connect(function(otherPart)partTouched(otherPart, objectPart)end)end
사운드 재생
SoundService 변수를 만들고 다른 변수를 저장하여 피드백 음향을 저장 합니다.
local pickupObjects = workspace.Collectables.Objectslocal objectsArray = pickupObjects:GetChildren()local SoundService = game:GetService("SoundService")local feedbackSound = SoundService:FindFirstChild("FeedbackSound")local function partTouched(otherPart, objectPart)빵빵을 연주하려면 함수 partTouched 를 찾습니다. 이 문에 대해 feedbackSound:Play() 를 호출하여 사운드를 재생합니다.
local function partTouched(otherPart, objectPart)local whichCharacter = otherPart.Parentlocal humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")-- 오브젝트를 파괴하고 플레이 소리를 한 번 완료하면 개체를 파괴합니다.if humanoid and objectPart.CanCollide == true thenfeedbackSound:Play()endend플레이어가 수집 가능한 아이템을 터치하면 두 개가 모두 사라지고 음향이 재생됩니다.