사례 연구 - RoboRaid에서 공간 소리 사용
이 문서에서는 RoboRaid 혼합 현실 1인칭 슈팅 게임의 오디오를 만드는 동안 Microsoft HoloLens 경험 팀이 직면한 과제에 대해 설명합니다.
기술
공간 소리는 Microsoft HoloLens 가장 흥미로운 기능 중 하나이며, 사용자가 물체가 시야에 없을 때 주변에서 무슨 일이 일어나고 있는지 인식할 수 있습니다.
RoboRaid에서 공간 사운드의 가장 명백하고 효과적인 사용은 플레이어에게 주변 시야 밖에서 일어나는 일에 대해 경고하는 것입니다. 예를 들어, 위반자는 방의 스캔된 벽에서 입력할 수 있습니다. 입력하는 위치를 마주하지 않는 경우 누락될 수 있습니다. 이 침입을 경고하기 위해, 당신은 당신이 그것을 중지하기 위해 신속하게 행동해야한다는 것을 알 수있는 위반자가 입력되는 곳에서 오는 오디오의 뚜렷한 비트를 들을 수 있습니다.
배후 상황
HoloLens 앱에 대한 공간 사운드를 만드는 것은 너무 새롭고 독특하기 때문에 참조할 과거 프로젝트가 없기 때문에 문제를 해결하기 어려울 수 있습니다. RoboRaid를 만드는 동안 우리가 직면한 오디오 문제의 이러한 예는 사용자 고유의 앱에 대한 오디오를 만들 때 도움이 될 것입니다.
CPU에 대한 과세를 염두에 두어야 합니다.
공간 사운드는 CPU에서 요구될 수 있습니다. RoboRaid와 같은 바쁜 환경의 경우 공간 사운드 인스턴스 수를 지정된 시간에 8개 미만으로 유지하는 것이 중요했습니다. 일반적으로 다른 오디오 이벤트에 대한 인스턴스 제한을 설정하는 것만큼 쉬웠습니다. 제한에 도달한 후 발생하는 모든 인스턴스는 종료됩니다. 예를 들어 드론이 생성될 때 비명은 지정된 시간에 3개의 인스턴스로 제한됩니다. 약 4대의 드론만 한 번에 생성할 수 있다는 점을 고려할 때, 뇌가 비슷한 소리를 내는 많은 오디오 이벤트를 추적할 수 있는 방법이 없기 때문에 3개의 비명이 많습니다. 이것은 적의 폭발이나 촬영을 준비하는 적과 같은 다른 공간 사운드 이벤트에 대한 자원을 확보했다.
성공적인 회피 보상
회피 메커니즘은 RoboRaid에서 가장 중요한 게임 플레이 메커니즘 중 하나이며 HoloLens 경험에 진정으로 독특하다고 느꼈던 것입니다. 따라서 우리는 플레이어에게 매우 보람있는 성공적인 회피를 만들고 싶었습니다. 우리는 개발 초기에 상당히 매력적인 소리를 도플러 "whizz-by"를 얻었다. 처음에 내 계획은 루프를 사용하고 볼륨, 피치 및 필터를 사용하여 실시간으로 조작하는 것이었습니다. 이에 대한 구현은 매우 정교할 것입니다. 이를 빌드하기 위해 리소스를 커밋하기 전에 Doppler 효과가 구운 자산을 사용하여 저렴한 프로토타입을 만들어 어떻게 느꼈는지 알아보세요. 우리의 재능있는 개발은 발사체가 플레이어의 귀에 의해 전달되고 결과가 놀랍게 느껴지기 전에이 whizz-by 자산이 정확히 0.7 초 재생되도록 만들었습니다! 말할 필요도 없이, 우리는 더 복잡한 솔루션을 버리고 프로토 타입을 구현했습니다.
(Doppler 효과가 기본 제공된 오디오 자산을 만드는 방법에 대한 자세한 내용은 2분 안에 100개의 후쉬를 참조하세요.)
비효율적인 소리 도랑
원래는 적의 발사체를 성공적으로 피한 후 플레이어 뒤에서 폭발 소리를 재생하고 싶었지만 여러 가지 이유로 이를 도랑으로 만들기로 결정했습니다. 첫째, 우리가 회피에 사용했던 SFX만큼 효과적이지 못했습니다. 발사체가 뒤에 있는 벽에 부딪혔을 때, 그 소리를 가리는 다른 일이 게임에서 일어났을 것입니다. 둘째, 우리는 바닥에 충돌이 없었기 때문에 발사체가 벽 대신 바닥에 부딪혔을 때 폭발을 할 수 없었습니다. 마지막으로 공간 사운드의 CPU 비용이 있었습니다. 엘리트 전갈 적(벽 안에서 기어갈 수 있는 적)은 약 8개의 발사체를 쏘는 특수 공격을 가합니다. 뿐만 아니라 그 믹스에 거 대 한 혼란을 했다, 그것은 또한 너무 열심히 CPU를 타격 했기 때문에 끔찍한 딱딱 거리는 소개.
적중 을 전달
HoloLens에서 겪은 흥미로운 문제는 플레이어가 타격을 입었다는 것을 효과적으로 전달하는 것이 얼마나 어려웠는지였습니다. 혼합 현실 경험을 성공적으로 만드는 것은 이야기가 당신에게 일어나고 있다는 느낌입니다. 즉, 당신은 당신이 자신의 거실에서 외계인 로봇 침공과 싸우고 있다고 믿어야한다는 것을 의미합니다.
플레이어는 적중 시 아무 것도 느끼지 못하므로 플레이어에게 나쁜 일이 일어났다고 설득할 수 있는 방법을 찾아야 했습니다. 기존 게임에서는 캐릭터가 적중되었음을 알 수 있는 애니메이션이 표시되거나 화면이 빨간색으로 깜박일 수 있고 캐릭터가 약간 신음할 수 있습니다. 이러한 유형의 단서는 혼합 현실 환경에서 작동하지 않으므로 시각적 큐를 손상되었음을 나타내는 과장된 소리와 결합하기로 결정했습니다. 나는 큰 소리를 만들어, 그것은 모든 것을 아래로 오리 믹스에 너무 눈에 띄는했다. 그런 다음, 더욱 눈에 띄기 위해 핵 잠수함이 침몰하는 것처럼 짧은 경고 소리를 추가했습니다.
작은 스피커에서 큰 소리 얻기
HoloLens 스피커는 장치의 요구 사항에 맞게 작고 가벼우므로 너무 많은 로우 엔드를 들을 것으로 기대할 수 없습니다. 스마트 폰 또는 핸드 헬드 게임 장치 개발과 마찬가지로 사운드 디자이너와 작곡가는 오디오의 주파수 콘텐츠를 염두에 두어야합니다. 헤드폰을 착용하는 것은 사용자를위한 옵션이기 때문에 나는 항상 소리를 디자인하거나 전체 주파수 범위로 음악을 작성합니다. 그러나 HoloLens 스피커와의 호환성을 보장하기 위해 작업 중인 모든 DAW의 master EQ를 배치하여 때때로 테스트를 실행합니다. EQ 설정은 약 600Hz에서 700Hz(너무 가파르지 않음)의 하이패스 필터와 약 10K(가파른)의 로우 패스 필터로 구성됩니다. 그러면 장치에서 소리가 재생되는 방식에 대한 대략적인 아이디어를 얻을 수 있습니다.
당신은 당신의 음악에서 변경 화음의 감각을 제공하기 위해베이스에 의존하는 경우, 당신은 당신의 음악이 EQ 설정을 적용 할 때 완전히 루트의 감각을 잃게 찾을 수 있습니다. 이 문제를 해결하기 위해, 나는 (몇 가지 풍부한 고조파와) 높은 한 옥타브베이스에 또 다른 레이어를 추가하고 다시 루트의 감각을 얻기 위해 혼합. 때로는 왜곡을 사용하여 고조파를 증폭하면 뇌가 그 아래에 무언가가 있다고 생각하게하기 위해 상한 범위에 충분한 주파수 콘텐츠를 제공합니다. 이것은 충격, 폭발 또는 보스의 슈퍼 공격과 같은 특별한 순간에 대한 소리와 같은 SFX에 해당합니다. 당신은 정말 플레이어에게 충격이나 무게의 감각을 제공하기 위해 로우 엔드에 의존 할 수 없습니다. 음악과 마찬가지로 왜곡을 사용하여 위기를 주는 것이 확실히 도움이되었습니다.
오디오 큐를 돋보이게 만들기
당연히 팀의 모든 사람들은 폭격적인 음악, 시끄러운 총, 미친 폭발을 원했습니다. 또한 음성 해설 또는 기타 게임에 중요한 오디오 신호를 들을 수 있기를 원했습니다.
전체 주파수 범위의 콘솔 게임에서는 소리의 중요성에 따라 주파수를 나눌 수 있는 더 많은 옵션이 있습니다. RoboRaid의 경우, 나는 소리에서 밖으로 곡선 수 주파수의 범위의 수에 제한되었다. 로우 패스 필터를 사용하고 스펙트럼의 높은 끝에서 너무 많이 곡선을 그리면 로우 엔드가 많지 않기 때문에 사운드에 남아 있는 것이 없습니다.
RoboRaid 사운드를 장치에서 가능한 한 크게 만들기 위해 전체 환경의 동적 범위를 낮추고 다양한 유형의 소리에 대한 중요성의 명확한 계층 구조를 만들어 더킹을 광범위하게 활용해야 했습니다. 중요도에 따라 더킹을 -2dB에서 -6dB로 설정합니다. 나는 개인적으로 게임에서 명백한 더킹을 좋아하지 않는다, 그래서 나는 페이드 인 / 아웃 타이밍과 볼륨 감쇠의 양을 조정하는 데 많은 시간을 보냈다. 우리는 음악 반향없이 공간 사운드, 비 공간 사운드, VO 및 드라이 버스에 대한 별도의 버스를 설정했습니다. 그런 다음 높은 우선 순위, 중요 및 중요하지 않은 버스를 만들어 자산이 적절한 버스로 이동하도록 설정했습니다.
나는 거기에 오디오 전문가가 내가 RoboRaid에서 작업했던 것처럼 자신의 애플 리케이션에서 작업 많은 재미와 흥분을 가질 수 있기를 바랍니다. Microsoft 외부의 재능있는 사람들이 HoloLens를 위해 무엇을 내놓을지 (그리고 듣기를) 기다릴 수 없습니다.
직접 수행
특정 이벤트(예: 폭발)가 방을 채우는 것처럼 "더 큰" 소리를 내는 것을 발견한 한 가지 트릭은 공간 사운드를 위한 모노 자산을 만들고 2D 스테레오 자산과 혼합하여 3D로 재생하는 것이었습니다. 스테레오 콘텐츠에 너무 많은 정보가 있으면 모노 자산의 방향성이 줄어들기 때문에 약간의 튜닝이 수행됩니다. 그러나 균형을 제대로 맞추면 플레이어가 올바른 방향으로 머리를 돌릴 수 있는 거대한 소리가 들립니다.
아래 오디오 자산을 사용하여 큰 소리를 직접 사용해 볼 수 있습니다.
시나리오 1
- roboraid_enemy_explo_mono.wav를 다운로드하고 공간 사운드를 재생하여 이벤트에 할당하도록 설정합니다.
- roboraid_enemy_explo_stereo.wav를 다운로드하고 2D 스테레오에서 재생하도록 설정하고 위와 동일한 이벤트에 할당합니다. 이러한 자산은 Unity로 정규화되므로 두 자산의 볼륨을 감쇠하여 클립되지 않도록 합니다.
- 두 소리를 함께 재생합니다. 머리를 움직여 공간적 소리를 느낄 수 있습니다.
시나리오 2
- roboraid_enemy_explo_summed.wav를 다운로드하고 공간 사운드를 재생하고 이벤트에 할당하도록 설정합니다.
- 이 자산을 단독으로 재생한 다음 시나리오 1의 이벤트와 비교합니다.
- 모노 파일과 스테레오 파일의 다른 균형을 시도합니다.