버전
menu_open

엔진 내부 메모리 풀

엔진 내부 (lower engine)메모리 풀의 메모리는 사운드를 재생하는 데에 사용됩니다. 이 메모리는 동시에 재생하는 사운드의 개수에 영향을 받습니다. 또한 동시에 사용되는 효과의 개수와 유형에도 영향을 받습니다. 그렇기 때문에 이 메모리를 줄이려면 동시에 몇 개의 사운드를 듣고자 하는지 생각해 보아야 합니다. 어떤 게임은 10개 이상의 사운드가 동시에 들리는 경우가 드물 수도 있지만 어떤 게임은 100개가 한꺼번에 나올 수도 있습니다. 메모리 풀의 크기를 설정할 때 최악의 상황을 가정해야한다는 점을 기억하세요.

이 메모리는 대부분 선형적으로 조정되지만 실제로 어떤 코덱이 사용되고 얼마나 많은 Effect가 사용되는지가 다른 것보다 중요합니다.

또한 170개의 사운드를 동시에 재생하는 것이 과연 게임에 있어 가치 있는 일인지 반드시 생각해 보아야 합니다. 어떤 분기점을 지나면 인간의 귀는 서로 다른 소리를 더 이상 해독하지 못하고 잡음으로 인식해 버립니다. 그렇기 때문에 게임에 가치있을 만한 적당한 보이스 수를 찾아야 합니다. 물론 그러려면 여러 실험을 해보아야 할 것입니다. 게임에서 여러 상황을 프로파일링한 다음 Advanced Profiler의 Memory 탭을 통해 사용한 자원의 양을 확인할 수 있습니다.

엔진 내부 풀의 메모리 사용량을 줄이려면 동시에 재생하는 보이스의 개수를 줄여야 합니다. 그러기 위해서는 다음 전략 중 하나를 사용하세요.

  • 재생 개수 제한(Playback Limit) (Advanced Settings). 예를 들어, 꼭 총알 50 개가 튀어나오는 소리를 들어야 할까요? 대부분의 경우 그럴 필요가 없기 때문에 이 소리를 15와 같이 알맞은 개수로 제한할 수 있습니다. 버스에도 재생 제한을 걸 수 있다는 점 기억하세요.

  • 재생 우선 순위(Playback Priority) (Advanced Settings). 예를 들어, 총알 소리는 대사보다 덜 중요할 수 있죠. 너무 많은 소리가 재생될 땐 총알 소리를 먼저 제거할 수 있습니다. Playback Limits과 함께 사용하세요.

  • 거리 기반 우선 순위 상쇄(Distance-based Priority Offset) (Advanced Settings). 멀리 떨어진 오브젝트는 가까이 위치한 오브젝트보다 중요하지 않습니다. 예를 들어 가까운 곳에서 15개의 총알 소리가 들릴 경우 보다 먼 10미터에서 밖에서 들려오는 총알 소리는 굳이 들을 필요가 없습니다.

  • 메모리 한계점(Memory Threshold) (SDK). 사운드 엔진 메모리 풀을 초기화할 때 우선 순위에 따라 보이스 제거를 시작할 풀 크기를 백분율로 지정할 수 있습니다. 이렇게 하면 통제된 방식으로 거의 모든 메모리 부족 상황을 피할 수 있는 엄격한 메모리 제한이 설정됩니다. 단편화로 인해 메모리는 절대 완전하게 사용될 수 없기 때문에 0.9 또는 90%를 시작 값으로 정하는 것이 좋습니다.

  • 볼륨 한계점(Volume Threshold) (Project Settings). 이 기능은 너무 희미한 사운드를 제거하는 데에 도움을 줍니다. 소리가 멀어지면 희미해지기 때문에 이 기능은 아래 '볼륨 한계점 미만 시 작동 방식', 그리고 감쇠(Attenuation) 설정과 연계하여 사용할 수 있습니다. 기본값은 -80입니다.

  • 볼륨 한계점 미만 시 작동 방식(Below Volume Threshold Behavior) (Advanced Settings). 최저 비용 옵션은 바로 (CPU와 메모리 측면에서) 'Kill Voice(보이스 제거)' 입니다. 이 옵션은 짧은 소리나 반복되는 환경음에 좋습니다. 보이스는 제거하지만 반복 재생은 그대로 두기 때문입니다. 두 번째로 나은 옵션은 'Send To Virtual(가상으로 보내기)' + 'Play from beginning(처음부터 재생)', 'Send To Virtual(가상으로 보내기)' + 'Resume(재개)', 'Send To Virtual(가상으로 보내기)' + 'Play from elapsed time(경과한 시간에서부터 재생)' 순입니다. 'Continue to play(계속 재생)'와 'Play from elapsed time(경과한 시간에서부터 재생)'은 가장 메모리와 CPU를 가장 많이 소비하는 옵션입니다. Wwise의 기본값은 'Continue To Play(계속 재생)'로 설정되었다는 점을 유의하세요.


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

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요