게임 내 사운드

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

배경 음악 외에도 게임 내 오디오는 플레이어의 경험을 향상시킬 수 있습니다. 이 튜토리얼에서는 두 가지 게임 내 음향을 다룹니다. 위치피드백 음향.

첫 번째 예시에서는 폭포에 대한 위치 음향을 만듭니다. 두 번째 예시에서는 플레이어가 수집 가능을 만질 때 재생할 스크립트를 사용합니다.

위치 음향

음향 개체가 부모로 지정된 부품이나 부착에 연결되면, 그 위치가 변경되고 플레이어가 더 가까이 오면 오디오가 그 위치에서 방출되고 더 크게 증가합니다. 이 폭포의 경우와 같이.

사운드 생성

  1. 원하는 부분에서 새로운 사운드 개체를 생성하십시오. 이름은 WaterfallSound입니다.

  2. 속성에서 SoundId를 찾아 이 워터폴 분위기로 변경하고 다음에 게시하십시오: rbxassetid://6564308795 .

  3. 게임이 시작될 때 연속 재생을 위해 플레이 및 루프를 토글하여 켜기 위해.

  4. 게임을 테스트하여 폭포 분위기를 확인하세요.

사운드 거리 조정

테스트 시 오디오가 즉시 재생되지만, 플레이어가 개체에서 멀리 있더라도 오디오가 재생되는 것을 알 수 있습니다. 롤오프 속성을 사용하여 플레이어가 소리를 볼 때 생성되는 지연을 수정할 수 있습니다.

  1. Class.Sound.RollOffMaxDistance|RollOffMaxDistance를 30 로 변경합니다. 이 속성은 스터드 단위로 측정됩니다.

  2. 더 부드러운 슬라이드를 위해 RollOffModeInverseTapered 로 변경하십시오. 이렇게 하면 음향을 덜 갑자기 느끼게 됩니다.

  3. 프로젝트를 실행합니다. 음향이 개체 근처에서만 들리는 것을 알아보세요.

롤오프 미세 조정

필요에 따라 특수 효과나 증강된 현실성을 위해 속성을 조정할 수 있습니다. 다음 속성을 참조하십시오.

  • RollOffMinDistance - 최소 거리 (in studs) 사운드의 볼륨이 줄어듭니다.
  • SoundGroup - 음악 배경 음악 및 게임 내 효과와 같은 음향 그룹 간의 볼륨을 조정하고 균형을 맞춥니다.

피드백 사운드

스크립트를 사용하여 명령에 따라 소리를 재생할 수 있습니다. 플레이어가 부품을 만지거나 메뉴와 상호 작용하는 등의 이벤트에 소리를 연결할 수 있습니다. 여기에서 플레이어가 수집 가능한 개체를 만지거나 메뉴와 상호 작용하는 등의 이벤트에 대해 소리를 재생하는 스크립트를 만듭니다.

컬렉터블 설정

이 튜토리얼의 나머지는 미리 만든 모델을 사용합니다. 이 모델에는 부품과 스크립트가 포함되어 있으므로 플레이어가 보석을 수집할 수 있습니다.

  1. 브라우저에서 수집 가능한 보석 모델 페이지를 열고 가져오기 버튼을 클릭하십시오.
  • In Studio, go to the 보기 tab and click on the 도구 상자.
  • 도구 상자 창에서 인벤토리 버튼을 클릭한 다음 내 모델에 드롭다운이 있는지 확인하십시오.
  • 게임에 추가할 수집 가능한 보석 모델을 선택하십시오.
  1. In SoundService 에서 새로운 사운드 를 생성하여 피드백 사운드라는 이름의 새로운 사운드를 만듭니다.

  2. In FeedbackSound, SoundId를 rbxassetid://4110925712로 설정합니다. - 모델 페이지에서 단순한 종소리를 다운로드한 사운드 ID.

스크립트 설정

  1. In StarterPlayer > StarterPlayerScripts > 새로운 로컬 스크립트 이름은 CollectableSounds 입니다.

  2. 아래 코드는 플레이어가 수집 가능한 항목을 만질 때마다 partTouched 함수를 실행합니다. 스크립트에 코드를 복사하십시오.


    local pickupObjects = workspace.Collectables.Objects
    local objectsArray = pickupObjects:GetChildren()
    local function partTouched(otherPart, objectPart)
    local whichCharacter = otherPart.Parent
    local humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")
    if humanoid and objectPart.CanCollide == true then
    end
    end
    -- 모든 개체 부품에 터치 기능을 바인딩하여 모든 부품에서 작동합니다.
    for objectIndex = 1, #objectsArray do
    local objectPart = objectsArray[objectIndex]
    objectPart.Touched:Connect(function(otherPart)
    partTouched(otherPart, objectPart)
    end)
    end

사운드 재생

  1. SoundService 변수를 만들고 다른 변수를 저장하여 피드백 음향을 저장 합니다.


    local pickupObjects = workspace.Collectables.Objects
    local objectsArray = pickupObjects:GetChildren()
    local SoundService = game:GetService("SoundService")
    local feedbackSound = SoundService:FindFirstChild("FeedbackSound")
    local function partTouched(otherPart, objectPart)
  2. 빵빵을 연주하려면 함수 partTouched 를 찾습니다. 이 문에 대해 feedbackSound:Play() 를 호출하여 사운드를 재생합니다.


    local function partTouched(otherPart, objectPart)
    local whichCharacter = otherPart.Parent
    local humanoid = whichCharacter:FindFirstChildWhichIsA("Humanoid")
    -- 오브젝트를 파괴하고 플레이 소리를 한 번 완료하면 개체를 파괴합니다.
    if humanoid and objectPart.CanCollide == true then
    feedbackSound:Play()
    end
    end
  3. 플레이어가 수집 가능한 아이템을 터치하면 두 개가 모두 사라지고 음향이 재생됩니다.