Dreams Universe 음향 테크

Dreams Universe 음향 엔진

Dreams Universe에는 여러분의 창조물의 음향 성능을 이해할 수 있도록 도와주는 강력한 도구가 있답니다. 대부분의 창조자에겐 굳이 알 필요 없는 내용이겠지만, 엔진의 잠재력을 최대한 사용하고자 하는 분에게는 도움이 될 거예요! 이 툴을 사용하면 어떤 음향이 어째서 잘리고, 왜곡되고, 딜레이가 생기는지 알아낼 수 있어요.

우선 Dreams Universe의 음향 엔진 테크놀로지에 대해 알아보죠. Dreams Universe의 음향은 일반적으로 장면의 음향 가젯에서 발생해요. 논리가 음향 가젯을 발동시키면 자체적으로 인스턴스를 생성하죠. 가젯이 한 번에 하나 이상의 인스턴스를 생성하는 것도 가능해요. 예를 들어 기존 인스턴스의 재생이 끝나기 전에 다시 트리거된다던가 하면 말이죠.

각 사운드 인스턴스는 여러 개의 음성을 생성할 수 있어요. 효과음은 일반적으로 하나의 음성을 가진 하나의 인스턴스를 발동해요. 실제로 오디오 샘플 데이터를 재생하는 건 바로 이 음성이랍니다. 악기 클립은 하나의 인스턴스를 생성하고, 그 인스턴스가 여러 개의 음성을 생성하며, 각 음성이 클립의 각 음을 담당합니다. 이러한 플로우와 이러한 유닛에 무엇이 포함될 수 있는지에 대한 예제는 다음과 같아요.

음향 유닛의 플로우와 콘텐츠를 보여주는 다이어그램.

음향 유닛의 플로우와 콘텐츠를 보여주는 다이어그램.

더 깊이 들어가면 Dreams Universe는 그레인 엔진을 사용하며, 각 음성은 그레인이라고 하는 개별 덩어리를 재생하는 거예요. Dreams Universe 그래픽의 입자와 비슷한 개념이죠!

오디오 분석기

이 툴은 특정 시점에서 창조물이 사용 중인 자원의 양을 보여줘요. 오디오 분석기에 대한 정보 영상을 여기에서 볼 수 있답니다!

오디오 분석기 툴 사용에 대한 내레이션 비디오

오디오 분석을 실행하고 창조물을 플레이하면 툴이 지속적으로 정보를 수집해서 해당 플레이에 대한 수치를 표시하죠. 툴을 닫으면 분석 개요(아래 사진 참조)가 표시돼요. 여러분의 플레이에서 수집한 데이터를 그래프로 표시한 보고서로, 창조물의 어떤 부분이 자원을 많이 쓰는지 확인할 수 있어요. 그래프 상에서 원하는 대로 시간대를 이동할 수 있고, 그래프 오른쪽의 이미지가 해당 시간에 무슨 일이 벌어지는지를 보여준답니다.

오디오 분석 개요 화면의 이미지. “저 근사한 그래프 좀 봐!”라고 생각하셨죠?

오디오 분석 개요 화면의 이미지. “저 근사한 그래프 좀 봐!”라고 생각하셨죠?

여기서 가장 중요한 수치는 오디오 코스트예요. 음성, 인스턴스, 그레인을 비롯하여 리버스, 딜레이, 컴프레서 등의 모든 효과 코스트가 합쳐진 것이죠. 이 값이 최대치에 가까울 수록 엔진이 100%에 도달하는 것을 방지하기 위해 음성을 잘라내기 시작합니다. 그런 상황이면 보통 경고가 뜰 거예요. 코스트가 100%에 도달하면 Dreams Universe가 오디오를 제대로 출력할 수 없기 때문에 그런 상황을 방지하기 위해 뭐든 하게 되는 거죠.

인스턴스와 음성에는 한계가 있으며, 이 한계에 도달하면 새로운 음향이 재대로 재생되지 않거나 이미 재생 중인 음향이 잘릴 수도 있어요. 인스턴스의 한계는 128이에요. 음성의 경우엔 더 복잡하지만, 그래프에서는 동일하게 128로 한계를 설정했어요. 이론적으로는 더 많은 음성을 재생할 수 있지만, 일반적으로 그 수치 이상은 성능에 큰 영향을 끼치며, 이는 Dreams Universe를 구동하는 시스템에 따라 달라요.

음성과 인스턴스를 많이 재생할 수록 오디오 코스트가 증가해요. 그래프를 보면 어느 부분을 최적화해야 할지 알 수 있을 거예요.

모든 음성이 동일하게 생성되지는 않는다는 점을 유념하세요. 그레인 엔진에서 어떤 음성은 다른 것보다 오버랩된 그레인이 더 많아서 코스트가 훨씬 높기도 하답니다. 그레인 코스트 수치는 장면의 모든 음향을 재생하는 비용의 평균값이에요. 대부분의 음성이 평균 그레인 코스트인 1배이지만, 음향 가젯에서 그레인 합성이나 그레인 무작위화 변형을 적용하면 코스트가 높아질 수 있어요. 아래의 다이어그램은 비용이 높고 낮은 그레인 오버랩 설정의 예시를 보여줘요.

그레인 오버랩 변형의 효과를 보여주는 다이어그램.

그레인 오버랩 변형의 효과를 보여주는 다이어그램.

음향 변형 메뉴의 그레인 합성 페이지에서 그레인 오버랩을 설정할 수 있어요. 이 변형은 그레인 무작위화 페이지에도 있는데, 다른 여러가지 슬라이더도 그레인 코스트에 영향을 미치죠.

그레인 합성 페이지의 그레인 오버랩 변형 이미지.

그레인 합성 페이지의 그레인 오버랩 변형 이미지.

오실레이터, 디스토션, 다이내믹 컴프레서 등의 음향 기능을 켜면 음성의 코스트가 훨씬 높아질 수도 있어요. 코스트가 낮은 음성은 일반적으로 별다른 변형이 적용되지 않은 단순한 음향 효과예요.

이 정보를 어떻게 활용하면 창조물을 최적화할 수 있을까요? 가장 흔한 방법은 음향의 다성 제한을 낮추는 거예요. 이 패러미터는 한 음향이 생성할 수 있는 음성의 수를 제한하죠. 적절하게 조절하면 체감할 수 있는 차이도 없을 거예요. 다성을 줄이는 것이 유용한 상황의 예를 들어볼게요.

-서로 겹치는 다수의 아주 긴 음을 재생하는 음악 클립. 예: 릴리스 인벨로프가 긴 피아노나 신스 -아주 짧은 간격으로 발동돼서 자체적으로 겹쳐서 재생되는 폭발음이나 무기음.

다성 제한은 보통 기본값이 20이고, 이는 대부분의 음향이 아주 빠르게 반복적으로 발동시키면 불필요하게 20개의 인스턴스를 재생할 수 있다는 의미죠.

음향 변형 메뉴의 옵션 페이지에 있는 다성 제한 슬라이더를 보여주는 이미지.

음향 변형 메뉴의 옵션 페이지에 있는 다성 제한 슬라이더를 보여주는 이미지.

또 다른 옵션은 그레인 오버랩이 큰 음향을 찾아서 낮추는 거예요. 다만 이 경우에는 보통 그레인 옵션을 사용해서 적용한 멋진 효과에 영향을 준다는 점을 염두하세요.

효과음 페이지로 가서 일부나 전체를 끄는 방법도 있어요. 그러면 대부분의 음향 코스트가 낮아진답니다.

물론 이 모든 것이 도움이 되지 않는다면 장면을 잘 살펴보고 필요 없는 음향을 삭제하는 것이 좋겠죠.

오디오 측정기와 음향 가용성

오디오 측정기에 대해 얘기해보죠! 우선 엔진을 다시 살펴볼까요.

Dreams Universe 오디오는 샘플로 들어와서 슬라이스로 쪼개집니다. 샘플은 마이크로 녹음할 때 생성되는 것이며, 슬라이스는 음향의 슬라이스 매퍼에서 보이는 거예요.

개별 샘플(측정기의 개별 음향을 참조하세요)의 총 개수에는 제한이 있으며, 이런 샘플이 사용하는 메모리 양에도 제한이 있어요.

가령, 아주 짧은 음향을 엄청 많이 써도 샘플이 모자랄 수 있고, 아주 긴 음향을 몇 개만 써도 메모리가 모자랄 수 있어요. 또 다른 제한은 커스텀 임포트나 녹음한 음향의 수랍니다. Dreams Universe 오디오 시스템 전체의 원리를 이해할 때 도움이 될만한 것들을 소개할게요.

컬렉션의 악기나 효과음과 같은 모든 MM 오디오 콘텐츠는 다운로드 코스트가 0이에요.

오디오 데이터는 일반적으로 저장 장치와 다운로드 시간을 아주 많이 소비하기 때문에 Dreams Universe의 표준 샘플 세트에 포함된 내용 덕분에 커뮤니티 창조물을 아주 빠르게 불러올 수 있는 거예요. 누군가가 업로드한 오디오 콘텐츠를 사용하면 창조물의 불러오기 시간에 영향을 미치게 된답니다. 가령, 다음 레벨로 심리스하게 넘어가는 것이 아니라 시간이 더 걸리게 되죠. 곡 전체와 같은 긴 오디오 샘플을 임포트했다면 더 심해져요.

이러한 이유로 MM 악기나 여기서 파생된 것을 사용해서 Dreams Universe에서 제작한 음악을 사용하는 것이 훨씬 좋답니다. 많은 경우 MM 샘플 라이브러리로도 내장 효과를 사용해서 충분히 다양한 음향을 창조할 수 있어요. 창조물의 불러오기 속도를 빠르게 유지하고 싶다면 최소한 오디오 임포트를 최대한 잘라내고 재활용하세요.

음향 슬라이스 매퍼에 있는 샘플을 잘라내도 코스트가 전혀 줄어들지 않는다는 점을 아셔야 해요. 샘플 그 자체는 녹음 후에 변경되지 않기 때문에 최대한 필요한 만큼만 임포트하는 것이 중요해요. Dreams Universe로 파일을 임포트해서 슬라이스로 나누려고 한다면 미리 무음 부분이나 필요 없는 오디오를 최대한 제거해두세요. 단 한 가지라도 한계점에 도달한다면 창조물을 게시하거나 저장할 수 없어요.

두 개의 음향과 코스트의 예제를 보여드릴게요. 왼쪽의 경우엔 두 가지 샘플에서 두 개의 슬라이스를 사용해요. 오른쪽 것은 한 샘플에서 두 개의 슬라이스를 사용하고요. 오른쪽 것의 코스트가 더 낮지만 임포트하기 전에 필요 없는 부분을 먼저 잘라냈다면 더 낮았을 거예요. 왼쪽 것은 완전히 자원 낭비고요! 저희 MM은 하나의 샘플에서 잘라낸 슬라이스로 효과음과 악기를 만들어서 전체 코스트를 최소화하는 것을 선호해요.

임포트한 2개의 음향의 다른 코스트를 보여주는 다이어그램.

임포트한 2개의 음향의 다른 코스트를 보여주는 다이어그램.

항상 존재했지만 드러나거나 설명한 적이 없는 매우 중요한 제한이 하나 있어요. 바로 음향 가용성이에요.

트리거된 음향을 재생하려면 오디오 데이터가 “로드”된 상태여야 한답니다. 오디오 데이터가 준비되지 않았다면 음향을 트리거했을 때 딜레이가 발생할 것이고, 음악이나 애니메이션과 타이밍이 맞아야 하는 음성의 경우 매우 곤란하겠죠.

하지만 오디오가 중요하다고 모든 음향의 모든 슬라이스를 미리 로드해둔다면 게임의 다른 부분에 사용할 메모리가 남아나질 않을 테고, 엔진이 과부하가 걸리겠죠. 저희는 이 시스템을 피닝이라고 하는데, 각 음향이 최소 하나의 슬라이스를 언제든 재생할 수 있게 준비하죠. 이 시스템은 도움이 되지만, 창조물에 음향이 너무 많다면 저마다 다른 오디오를 로드하려 할 테고, 메모리가 부족해서 딜레이가 발생하거나 수시로 잘리게 될 거예요.

이전엔 Dreams Universe에서 이런 일이 소리 없이 발생했지만, 이제 경고가 표시되고 특별한 툴을 사용해서 어떤 음향이 문제인지 특정할 수 있게 되었답니다.

창조물을 만들 땐, 특히 다른 사람들이 자기 레벨에 도장 찍어서 쓰라고 만드는 창조물이라면 반드시 측정기 코스트를 최소화해야 해요. 요소를 도장찍고 보니 음성이 늦게 재생된다면 누가 좋아하겠어요?! 그래도 그런 상황이 발생한다면 다른 걸 잘라내서 최적화할 수 있겠죠. 그 방법을 살펴볼까요.

우선 음향 모드를 보면 음향 가용성 코스트가 증가할 때 나타나는 측정기 막대가 있어요. 음향 모드에 표시/비 표시 메뉴를 추가했으니 측정기를 항상 표시해둘 수 있어요. 그래도 일반적으로는 음향 가용성 제한에 도달했을 때만 신경 쓰시면 된답니다. 막대를 클릭하면 음향 가용성 측정기로 가고, 여기서 추가 세부 내용을 선택하면 장면 내의 가장 코스트가 높은 음향 20개의 내역을 볼 수 있어요. 잊지 마세요. 어디까지나 음향 가용성 코스트 기준이라는 걸요!

음향 가용성 측정기 막대와 음향 가용성 측정기 자체를 보여주는 두 개의 이미지.음향 가용성 측정기 막대와 음향 가용성 측정기 자체를 보여주는 두 개의 이미지.

음향 가용성 측정기 막대와 음향 가용성 측정기 자체를 보여주는 두 개의 이미지.

음향 채널 기준 내역도 포함되어 있어요. 목록의 아무 항목이나 선택하면 장면 내에서 해당 음향이 있는 위치로 이동한답니다(마이크로칩이나 타임라인을 들여다봐야 할 수도 있어요). 잠시 동안 음향이 있는 곳을 알려주는 표시기가 파란색으로 깜빡일 거예요.

음향 가용성 추가 세부 사항에서 음향을 선택해서 장면 내의 해당 음향 위치로 이동하는 법을 보여주는 이미지.

음향 가용성 추가 세부 사항에서 음향을 선택해서 장면 내의 해당 음향 위치로 이동하는 법을 보여주는 이미지.

목록 중에 중복된 음향이 있다는 걸 알 수 있을 거예요. 음향 가용성 여유를 확보하고 싶다면 중복된 것을 처리하세요. 전부 메모리를 차지하거든요.

다음에 해야할 일은 코스트가 가장 높은 음향을 삭제하거나 슬라이스 매퍼로 잘라내는 거예요. 잘라내기는 오디오 코스트에 도움이 되지 않지만 음향 가용성 코스트에는 도움이 돼요. 샘플 전체가 아니라 슬라이스 코스트만 계산되거든요. 하나의 긴 샘플의 다른 부분을 사용한 두 개의 음향 예시를 보여드릴게요.

잘라내기로 가용성 코스트를 해결하는 법을 보여주는 다이어그램.

잘라내기로 가용성 코스트를 해결하는 법을 보여주는 다이어그램.

코스트는 두 슬라이스가 사용하는 샘플의 해당 부분에만 산정돼요. 공유하는 부분을 두 번 계산하지는 않아요!

보통 음향 가용성 이슈는 불필요하게 긴 음향 때문에 발생하는 경우가 많아요. 예를 들어 볼게요. 숲의 낮이라는 배경음이 하나 있는데, 가용량의 5.24%를 사용하고, 이건 장면 내에 있는 곡 전체와 비슷한 수준이에요! 이 경우 가용량이 충분하긴 하지만, 필요하다면 슬라이스 매퍼에서 숲의 낮 음향을 잘라낼 수 있겠죠.

음향 가용성 측정기에서 코스트가 높은 배경음과 이를 잘라낼 수 있는 슬라이스 편집기를 보여주는 두 개의 이미지.음향 가용성 측정기에서 코스트가 높은 배경음과 이를 잘라낼 수 있는 슬라이스 편집기를 보여주는 두 개의 이미지.

음향 가용성 측정기에서 코스트가 높은 배경음과 이를 잘라낼 수 있는 슬라이스 편집기를 보여주는 두 개의 이미지.

새로운 팁을 드릴게요. 사전 녹음된 음악과 같은 긴 오디오를 임포트하면 음향 가용성 가용량을 빠르고 비효율적으로 소모하게 되며, 이는 오디오를 원활하게 구동하려면 Dreams Universe 내에서 만든 음악을 사용하는 것이 효과적인 이유 중 하나랍니다.

이 정도로 마칠게요. 이 기능을 잘 활용하셨으면 좋겠네요. 다만 조심하셔야 할 극단적인 상황, 주의 사항이 많다는 점을 유념하세요. 예를 든다면…

  • 각 음향은 하나의 슬라이스만 준비 상태로 유지하기 때문에(하지만! 아래를 참조하세요!) 하나 이상의 슬라이스가 있다면 그게 어느 것인지 찾으려면 좀 헤매야 할 수도 있어요.
  • 열 매핑이 켜진 악기는 예외예요! 이 경우엔 음이 자리를 차지하는 피아노 롤의 각 열마다 한 개의 슬라이스를 준비합니다. 다시 말해서, 코스트가 상당히 높아질 수 있다는 거죠!
  • 샘플에서 거의 같은 부분이지만 정확히 일치하지는 않는 음향은 공유한다 하더라도 샘플에서 사용하는 부분만큼의 코스트를 사용해요. 이는 얼마나 준비시켜야 하는지 볼 수 있도록 하기 위해서랍니다. 하지만 앞서 말씀 드렸듯이 오디오의 공유하는 부분은 총 코스트에서 중복 계산되진 않아요. 기본적으로 목록의 음향은 거의 동일한 오디오 데이터를 사용한다고 하더라도 다르게 잘라내면 분리된 항목이 되죠.
  • 현재로서는 어떤 슬라이스가 준비 상태가 될지 선택할 수 있는 방법은 없습니다만, 앞으로 또 어떻게 바뀔지 누가 알겠어요!

Dreams Universe 유저 가이드는 제작 진행 중입니다. 학습 자원 및 기사를 계속 추가할 예정이므로 업데이트를 수시로 확인해주세요.