7 개의 강의

목차

프로세서 최적화

게임 플레이에서 사운드가 재생될 때에는 게임 시스템의 CPU 처리 능력이 조금 필요합니다. 오디오는 상대적으로 프로세서에서 적은 사용량을 차지하지만, 시스템에 엄청난 스트레스를 줄 수 있는 3D 그래픽 렌더링 같은 게임의 타 부문과 함께 이 프로세서를 공유해야 한다는 점을 고려해보세요. 그러므로 오디오 엔진이 제한된 프로세서 사용량을 최대한으로 활용하면서 불필요한 처리 주기를 낭비하지 않는 방법을 알아야 합니다.

게임에서 재생되는 모든 사운드는 보이스라고 불리는 것을 필요로 하며 이 보이스를 통해 사운드가 재생됩니다. 이 보이스는 이전 강의에서 언급했던 대사에 사용하는 Voice 오브젝트와는 다르니 혼동하지 않도록 주의하세요. 이 경우 보이스는 게임에서 사운드를 생산하는 논리적인 메커니즘이라고 할 수 있습니다. 활성화된 모든 보이스는 프로세서 주기를 사용합니다.

일부 게임, 특히 Cube와 같은 3D 게임에서는 보이스의 개수가 급증할 수 있습니다. Wwizard가 30마리의 몬스터 사이에서 동시에 마법 보석을 던질 경우, 이런 마법 보석 소리와 발소리, 환경음 때문에 빠르게 보이스 개수가 증가할 수 있습니다. 하지만 사실 이 많은 사운드가 모두 중요한 것은 아닙니다. 100미터 떨어진 곳에서 걸어오는 몬스터의 발소리가 조용하게 들려와도, 2미터 떨어진 곳에서 몬스터 10마리가 마법 보석을 발사한다면 멀리 있는 발소리는 들을 수 없을 것입니다. 멀리 있는 발소리도 가까이 있는 마법 소리와 동일한 양의 처리 능력을 소비하기 때문에, 알아차리지 못할 가능성이 큰 먼 곳의 소리를 렌더링하는 것은 처리 능력을 낭비하는 일입니다. 이러한 낭비를 최소화하기 위해서 Wwise 프로젝트에는 사운드를 실제로 보이스로 렌더링하는 데에 필요한 최소 볼륨을 정의할 수 있는 기능이 있습니다.

  1. Wwise 메뉴 바에서 Project > Project Settings를 선택하고 General 탭을 클릭하세요.

    개발 중인 게임 시스템에 따라 설정이 다르게 구성될 수 있음을 알 수 있습니다. 예를 들어 Nintendo Switch는 PlayStation 5보다 처리 능력이 상당히 낮기 때문에 각 게임 시스템에 따라 값을 개별적으로 조절해야 합니다. Volume Threshold(볼륨 스레숄드)는 -80으로 기본 설정되어 있으며, 이 값의 단위는 데시벨입니다. 즉 이 게임의 동적 범위(dynamic range)는 80dB입니다. 게임 시스템 프로세서의 부하량을 줄이려면, Volume Threshold의 값을 높여서 동적 범위를 줄일 수 있지만, 이 경우 미묘한 환경음과 같이 꼭 들려야 하는 사운드까지 끊길 수가 있다는 점을 유의하세요.

    또한 동시에 시스템을 통해 재생할 수 있는 최대 보이스 개수를 정의하는 또 다른 매개 변수가 있습니다. 이 매개 변수는 시스템이 과부화되지 않도록 해줍니다. 이 매개 변수의 값을 낮추면 오디오 엔진이 CPU 처리량을 낮추지만 마찬가지로 다양한 액션이 일어나는 전투가 한창일 때 꼭 들려야 하는 소리까지 끊길 수 있습니다. 가장 치열한 순간에 갑자기 주요 마법 사운드가 들리지 않아 게임 플레이에 더 이상 몰입할 수 없는 것보다 더 최악의 상황은 없을 거예요! 하지만 걱정 마세요. 이 실습의 뒷부분에서 보이스의 우선 순위를 정하는 방법을 배우게 될 것입니다.

  2. 시스템의 Volume Threshold-50으로 변경하고 Max Voice Instances(최대 보이스 인스턴스)40으로 설정한 후 OK를 클릭하세요.

    일부 사운드는 선천적으로 많은 보이스를 차지합니다. Cube에서 Poison Gem은 아주 빠른 속도로 발사되며, 발사할 때마다 재생되는 소리는 서로 겹쳐지기 시작합니다. 이 경우 보이스 개수가 급증할 수 있죠. 이 경우에는 게임의 한 시점에서 한 오브젝트에 몇 개의 보이스가 만들어질 수 있는지를 관리할 수 있습니다.

  3. Designer 레이아웃으로 돌아간 후 Project Explorer에서 Magic Actor-Mixer를 선택하고 Property Editor에서 Advanced Settings 탭을 클릭하세요.

    Playback Limit 그룹에서는 사용 가능한 보이스의 최대 개수를 설정할 수 있습니다. 이 제한 개수가 각 오브젝트에 적용되도록 설정하면 각 캐릭터가 특정 마법마다 50개의 보이스를 사용할 수 있으며, 이 제한을 전역적(global)으로 설정할 경우 어떤 유형의 마법 소리이든 동시에 재생되는 마법 소리는 50개를 초과하지 않게 됩니다. 플레이어는 아마도 동시에 재생되는 동일한 유형의 소리를 어느 정도 밖에 구별하지 못할 것이기 때문에 두 번째 방법이 더 유용합니다.

  4. Limit sound instances to 체크 상자를 선택하고 인스턴스 값을 25로 선택한 후 드롭다운 메뉴에서 Globally를 선택하세요.

    일부 사운드는 게임에서 일어나는 일과 상관 없이 절대 죽어서는(kill) 안 됩니다. 이러한 작업을 실행하기 위해서 Wwise는 보이스 우선 순위 시스템을 제공하는데, 이 시스템을 통해 게임에서 들려야 하는 소리 유형의 우선 순위를 정할 수 있습니다. 이렇게 하면 게임 시스템이 보이스를 제거해야 할 경우 항상 들려야 하는 사운드는 죽이지 않습니다.

    예기치 않게 끊어져서는 안 되는 사운드의 좋은 예시로 플레이어의 대사나 음악이 있습니다. 이 경우 음악 오브젝트의 보이스 우선 순위 값을 최고로 설정해야 합니다.

  5. Cube Main Theme 오브젝트를 선택한 후 Priority 값을 80으로 변경하세요.

    이제 게임을 플레이하는 동안 음악이 의도치 않게 꺼지는 일은 거의 불가능합니다.

    [작은 정보]

    Offset priority 체크 상자와 설정은 Attenuation Editor에서 지정된 최대 거리값에 도달할 때까지 오브젝트의 우선 순위 값을 상쇄하는 기능입니다. 이 기능은 리스너와 가까울 경우 우선되고 멀리 있을 경우 별로 중요하지 않아지는 발소리 같은 오브젝트의 우선순위를 설정할 때 유용합니다.

    [작은 정보]

    또한 Advanced Settings에는 Virtual Voice 그룹이 있습니다. Virtual Voice는 플랫폼에 설정된 Volume Threshold 값보다 볼륨이 작아서 재생을 멈추고 Virtual Voice 목록에 추가되는 사운드를 말합니다. Virtual Voice 목록은 사운드 엔진이 사운드의 특정 매개 변수를 지속적으로 모니터링하는 가상 환경입니다. 소리를 들을 수 있는 물리적 보이스와 들을 수 없는 가상 보이스를 왔다 갔다 하는 기준은 사운드의 볼륨 레벨입니다. 볼륨이 다시 Volume Threshold보다 높아지거나 재생되는 사운드가 동시 재생 가능한 제한 개수보다 적어지면 오브젝트는 자동으로 물리적 보이스로 돌아가게 됩니다.


이 페이지가 도움이 되었나요?