Wwise에서 쿼리 사용하기

Wwise에 대한 팁과 도구

Query Editor(쿼리 편집기)는 Wwise의 강력한 도구 중 하나입니다. 그런데 대부분의 사람들과 대화를 나눠보면 이 편집기를 모르고 있거나 써 본 적이 없더군요. Query Editor를 사용하면 프로젝트에서 검색을 실행하여 일괄 편집, 항목 태그, 심지어 버그 해결까지 쉽게 실행할 수 있습니다. 이 블로그를 통해 Query Editor의 숨겨진 면을 발견하고, 유저들이 이 도구를 더 잘 이해해 Wwise 파워 유저가 되는 데 도움이 되기를 바랍니다.

ProjectExplorer_01-1.png

Wwise Project Explorer Queries

Project Explorer에는 쿼리 탭이 있으며 Wwise 프로젝트의 다른 탭과 마찬가지로 프로젝트 안에 폴더를 갖고 있습니다. 여기에 필요한대로 Work Unit을 추가하고, 새로운 쿼리를 만들거나, 기존의 쿼리를 복제하고 변경해서 시스템을 검색하고 원하는 것을 찾을 수 있습니다. 쿼리를 일종의 '미니 보고서'라고 생각해보세요. 추적해야 하는 것이 있거나 프로젝트에서 특정 값으로 설정되거나 특정 RTPC를 사용하는 모든 오브젝트를 확인하고자 할 경우 쿼리를 사용해서 이러한 오브젝트를 보여주는 목록을 생성할 수 있습니다.

Query Editor 이해하기

2._Query_Editor_01.png

Query Editor

Query Editor는 Query 시스템의 중심입니다. Wwise에서 Query를 열면 Query Editor가 열립니다. 이 글에서는 Query Editor의 구성 요소를 분석해볼 것입니다. 하지만 이 편집기는 접근할 수 있는 설정의 개수 (및 네스팅 구성)를 고려할 때 상당히 복잡한 도구이기 때문에 시간을 들여 인터페이스를 익히고 일반 설정이 어디 있는지 알아볼 것을 권장해드립니다.

3_QueryEditor_top.png

Query Editor의 상단 영역입니다. 모든 즐거움이 시작되는 곳이죠!

Query Editor의 상단에서는 현재 Query의 이름을 보여줍니다. 여기서부터 아래로 정보가 표시되죠. 우리가 가장 먼저 해야 할 일은 바로 시스템이 찾고자 하는 Object의 유형을 결정하는 것입니다. Sound와 Random Container에서부터 Music Segment까지 Wwise에서 찾을 수 있는 어떤 구조이든 Object 유형으로 선택할 수 있습니다. Object Type의 드롭다운 메뉴를 클릭하고 스크롤해서 원하는 옵션을 탐색하세요. Query를 실행하면 Wwise가 여기서 선택한 오브젝트의 유형을 반환합니다. 프로젝트에 있는 모든 구조를 포함하여 검색하고자 할 경우 All Objects(모든 오브젝트)를 선택하세요.

그런 다음 검색을 시작하고자 하는 위치를 설정할 수 있습니다. 'Start From(~에서 시작)' 상자 옆에 있는 생략 부호를 클릭하면 Actor Mixer HierarchyInteractive Music Hierarchy, 혹은 전체 프로젝트에서 위치를 선택할 수 있는 창이 열립니다. Query는 여기에서 선택한 위치에서부터 반복적 검색을 실행합니다. 그래서 Actor Mixer Hierarchy를 선택하면 모든 Work Unit에 있는 모든 구조를 검색하는 반면, 한 Work Unit을 선택하면 이 Work Unit 안에 있는 내용만 검색하게 됩니다.

또한 멀티 플랫폼 프로젝트에서 작업할 경우 Platform을 선택하면 모든 플랫폼에서 검색하거나 한 플랫폼에서만 검색할 수 있습니다.

Browser(브라우저) 창

4_QueryEditor_browser.png

브라우저 창

Query Editor의 브라우저 섹션은 시스템의 '고기'라고 할 수 있죠 (혹은 채식주의자의 경우 단백질이 풍부한 고기 대체 식품이랄까요). 브라우저는 접혀 있는 여러 가지 카테고리를 담고 있으며 여기에서 검색하고자 하는 논리와 매개 변수를 선택하기 시작할 수 있습니다. 브라우저는 Query editor에서 가장 강력한 부분이지만 동시에 가장 둔감한 부분이기도 하죠. 가끔 찾고자 하는 매개 변수가 예상하던 카테고리가 아닌 다른 곳에 묻혀 있거나 찾고자 하는 설정을 담고 있는 드롭다운 메뉴가 아주 일반적인 이름으로 돼있어서 원하는 것을 직관적으로 찾기가 힘들 수 있습니다. 다행히 2015.1 버전 이후의 Wwise 버전을 사용하신다면 스크롤 바 위에 있는 작은 돋보기를 클릭해서 브라우저에서 검색하고 필터링할 수 있답니다. 돋보기를 클릭하면 글자를 입력할 수 있는 텍스트 입력란이 뜨며 여러분이 입력하는 대로 브라우저가 내용을 필터링합니다. 저는 사실 시간을 들여 이 브라우저에 있는 모든 카테고리를 살펴보고 하나씩 열어서 각 옵션을 클릭하여 어떤 것들이 있는지 확인해볼 것을 추천해드립니다. 이러한 내용을 대충 알고 있으면 후에 더욱 강력한 맞춤 Query를 만드는 데 도움이 됩니다.

Criteria(기준)

5_QueryEditor_criteria.png

Query Editor에서 기준 편집하기

브라우저에서 항목을 선택하면 브라우저의 우측에 Criteria 창이 뜹니다. Criteria 창은 간단한 드롭다운 메뉴와 체크 상자에서부터 조건문에 이르기까지 다양한 도구를 사용해서 이러한 일반적인 카테고리를 좀 더 자세하게 다룰 수 있도록 해줍니다. 위의 예시에서 저는 특정 RTPC를 사용하는 오브젝트를 찾고자 합니다. 또한 Criteria의 이름에서는 특정 요소가 위치한 브라우저를 보여주는 것을 볼 수 있습니다 (Game Parameter -> RTPC -> Game Parameter Usage). 이 부분 역시 꽤 복잡하게 보일 수 있는데, 사실 몇몇 옵션을 클릭해서 무엇이 제공되는지 확인하면 가장 쉽게 이해할 수 있을 것입니다.

Criteria 창 위에는 Operator(연산자) 드롭다운 메뉴가 있습니다. Query에서 여러 기준을 만들 경우 연산자를 사용하면 검색에서 모든 기준에 부합한 오브젝트만 반환하도록 하거나 (And) 적어도 하나의 기준에 부합한 오브젝트를 모두 반환하도록 할 수 있습니다 (Or).

Result(결과)

6_QueryEditor_results.png

성공적인 Query를 통해 반환된 결과

이러한 것들을 모두 배치하면 이제 Wwise가 작업을 실행하도록 할 수 있습니다. 편집기의 상단에 있는 Run Query(쿼리 실행) 버튼을 클릭하세요. 그러면 검색 범위에서 Object Type과 Criteria에 대응하는 모든 오브젝트가 Query Editor의 하단에 있는 Results 창에 표시됩니다. 여기에서 오브젝트를 선택하여 일괄 편집하거나 각 오브젝트를 개별적으로 확인하여 변경하고 문제 해결할 수 있습니다.

기준과 연산자를 사용하는 것은 근본적으로 Wwise가 대답할 수 있는 간단한 논리적 문제를 만드는 것과 같은 거죠. 프로젝트의 일부 사운드에 대한 정보를 찾으려고 하는 경우 질문을 적어보고 이 기준에 따라 쿼리를 제작할 수도 있습니다. 예를 들어 '무기 Actor-Mixer에서 어떤 Sequence Container가 Continuous(지속형)이며 0.25초 미만의 Trigger Rate(트리거 비율)을 가지는가'라는 질문의 경우 Object Type을 Sequence Container로, Start From을 무기 Actor-Mixer로, Property에 Continuous Playback과 알맞은 Trigger Rate 값 (< .25)을 설정하면 원하는 오브젝트를 찾을 수 있습니다.  이때 Operator가 반드시 And로 설정되도록 하세요. 자, 이렇게 해서 우리가 갖고 있던 질문이 해결되었네요.

예시

위에서 Query Editor를 분석해보았지만 여전히 어렵게 느껴질 수 있습니다. 다행히 Wwise는 유용한 쿼리가 담긴 전체 Factory Presets Work Unit(기본 프리셋 작업 단위)과 함께 제공됩니다. 이 작업 단위를 프로젝트에서 요소를 찾는데 사용할 수 있을 뿐만 아니라 여러분이 자체적으로 쿼리를 만들기 위한 발판으로 사용할 수도 있습니다. 예시 몇 개를 통해 Query Editor가 어떻게 작동하는지 살펴봅시다.

7_Factory_UnlinkedProperties_FIXED.png

프로젝트 내에 연결 해제된 오브젝트를 찾는 법을 보여주는 Wwise Factory Query(기본 쿼리)

멀티 플랫폼 프로젝트에서 각 플랫폼 별로 다양한 오브젝트를 변경해야 하는 분들의 경우, Wwise의 '전역적'인 상태에서 각 변수를 연결 해제하여 플랫폼 전용 값을 설정하는 과정을 잘 아실 거예요. (초보자 분들을 위해 말씀드리자면, 슬라이더의 연결을 깨고 Wwise가 각 플랫폼마다 다른 값을 적용하도록 할 수 있답니다. 예를 들어 PC 버전과 Android 버전이 서로 다른 믹스와 변형의 개수를 가질 경우 Wwise에서 이를 연결 해제할 수 있습니다.) 이러한 프로젝트에서는 일부 오브젝트가 연결 해제되고 대부분의 오브젝트가 연결을 유지하는 것이 일반적입니다. 여기서 연결 해제된 모든 오브젝트를 확인하여 플랫폼마다 값이 어떻게 다른 지 확인할 경우를 가정해봅시다. 위에 있는 이미지는 Audiokinetic의 Objects with Unlinked Properties Query(연결 해제된 속성을 가진 오브젝트 쿼리) 프리셋을 보여줍니다. 이 쿼리는 연결 해제된 속성을 가진 모든 오브젝트를 보여줍니다. Query Editor에서 Criteria를 보면 Volume, Pitch, Low Pass/High Pass filter가 연결 해제된 오브젝트를 주시하는 것을 볼 수 있습니다. 그런 다음 이 Query는 프로젝트에서 이러한 오브젝트 중 하나가 연결되지 않은 모든 오브젝트를 반환합니다. Factory Query를 분석하면 다양한 항목이 있는 위치와 어떤 매개 변수를 변경할 수 있는지 익히는 데 굉장한 도움이 됩니다. 직접 쿼리를 만들어보기 전에 또 다른 예시를 하나 살펴봅시다.

저는 프로젝트에서 갑자기 사운드가 들리지 않는 버그를 경험한 적이 꽤 많았습니다. 이 경우 저는 보통 프로파일러를 사용해서 어떤 일이 일어나는지 추적하려고 시도합니다 (이 부분도 따로 글을 작성할 좋은 재료가 되겠네요). 그런데 필터의 추가적인 특성 때문에 종종 문제가 일어납니다. 사운드에 Low Pass filter를 설정할 수도 있고 그런 다음 여러 State를 활성화할 수도 있는데, 이 모든 것이 필터를 조정하죠. 이렇게 필터의 지수적인 특성으로 인해 각 변경 사항이 아주 작더라도 순식간에 누적되어 사운드가 안 들리게 되는 경우가 있습니다. 어떤 것이 과도한 값을 만들어내는지 찾아 해결할 때 저는 프로파일러의 Voices 탭을 확인해서 LPF에 패턴이 있거나 비정상적으로 높은 값이 없는지 확인합니다. 그런 다음 저는 쿼리를 실행해서 명확한 값이 있거나 특정 값을 초과하는 LPF 값을 찾아내죠. 아래 이미지는 LPF 값이 45보다 높은 모든 오브젝트와 반환된 일부 오브젝트가 표시된 쿼리를 보여줍니다. Criteria에서 조건을 변경하여 특정 값에 초과/미만이거나 동일한 값을 찾도록 할 수 있습니다.

8_SpecficExampleWithReturns.png

Actor-Mixer Hierarchy에서 LPF 값이 45보다 큰 모든 오브젝트 찾기

이제 프로젝트의 Notes 입력란을 사용해서 나중에 다시 참고할 경우를 대비해 프로젝트 내 여러 항목의 상태를 기록해놓는 법을 알아봅니다. 예를 들어 임시로 플레이스홀더 사운드를 추가할 경우 Notes 입력란에 'placeholder'라고 메모를 추가할 수 있습니다. 그리고 Query를 사용하면 Note에 'placeholder'라고 된 모든 사운드를 찾아낼 수 있죠. Browser의 General 섹션에 Note라는 항목이 있습니다. Criteria에 'placeholder'를 입력하세요. 그리고 프로젝트에서 Query를 실행하면, 짠! 모든 플레이스홀더 사운드가 Results 창에 표시되었네요. 여기에서 이 사운드를 클립보드에 복사하여 참조 목록을 만들고, 메모를 제거하거나 원하는 대로 변경하도록 일괄 편집할 수 있습니다.

9_SearchForNote_02.png

Notes 입력란에 특정 문자열이 들어있는 오브젝트를 검색한 결과를 보여주고 있는 쿼리

위에서 배운 내용을 바탕으로 직접 만들어보기

이제 Query Editor에 대한 기본 사항을 이해하셨길 바랍니다. 그렇다면 이제 직접 쿼리를 만들어볼까요? Interactive Music Hierarchy에 음악을 추가할 경우 Music Segment는 기본적으로 스트리밍하지 않도록 되어있습니다. Music Segment를 스트리밍하도록 직접 설정하려면 여러 컨테이너를 거쳐서 세그먼트를 찾아 스트리밍하도록 태그해야 하죠. 여러 파일을 동시에 가져올 경우 이러한 작업을 실행하려면 굉장히 골치가 아플 수 있습니다.  그렇기 때문에 쿼리를 만들어서 모든 Music Segment를 스트리밍하도록 설정해봅시다. 이렇게 하면 목록을 쉽게 일괄 편집하여 원하는 세그먼트를 스트리밍하도록 할 수 있죠.

먼저 새로운 쿼리를 만들어야 합니다. Wwise의 다른 구조와 마찬가지로 Queries 탭에 있는 Work Unit에서 하위 계층 Query를 만들면 됩니다.

10_CreateQuery.png

그런 다음 새로 만든 쿼리를 구성해봅시다. 지금은 Streaming 기능을 담고 있는 음악 오브젝트인 Music Track만 신경 쓰면 되니까 Object Type을 Music Track으로 설정하겠습니다. 그리고 Start From 지점을 Interactive Music Hierarchy의 Default Work Unit으로 하겠습니다. 브라우저에서 Property를 열고 Value를 더블 클릭해서 해당 항목을 Criteria에 추가합니다. 드롭다운 메뉴에서 'Is Streaming Enabled(스트리밍이 활성화됐는가)'를 선택하고 체크 상자를 선택 해제한 상태로 유지합니다. 이제 이 쿼리는 Default Work Unit에서 스트리밍하지 않도록 설정된 모든 Music Track을 찾게 됩니다. Run Query(쿼리 실행)을 클릭하면 스트리밍하지 않는 음악 트랙의 목록이 Query Editor의 하단에 있는 Results 창에 표시됩니다. 이제 스트리밍하고자 하는 오브젝트를 선택한 후 Ctrl+M을 눌러 일괄 편집 창을 열어서 Enable Streaming(스트리밍 활성화) 체크 상자를 선택하면 됩니다. 작업이 끝났습니다!

11_New_MusicNotStreaming_query.png

이렇게 Query Editor를 사용하는 방법과 버그를 해결하고 작업 과정의 속도를 향상시킬 수 있는 방법을 간단히 알아보았습니다. Query Editor는 꽤 복잡하며 완벽히 익히려면 분명 시간이 꽤 걸리는 도구입니다. 그러나 프로젝트의 콘텐츠에 대한 정보를 찾으려고 할 경우 Query를 사용하면 원하는 것을 찾아낼 수 있습니다. Factory Query는 쿼리 사용을 시작하기에 훌륭한 출발점이며, 직접 쿼리를 만들어 커뮤니티와 공유하고 의견을 나눌 수 있습니다. 여기서 보여드린 것들은 아주 표면적인 부분일 뿐입니다. 여러분의 상상력에 따라 엄청나게 복잡한 쿼리를 만들어낼 수 있답니다.

 

Subscribe

 

이 글의 원본은 Designing Sound에서 출판되었습니다.

 

Bradley Meyer (브래들리 메이어)

오디오 감독

Sucker Punch Productions

Bradley Meyer (브래들리 메이어)

오디오 감독

Sucker Punch Productions

게임 사운드 디자인, 시스템 디자인, 스크립팅 및 통합, 보이스오버 감독 등, 18년 이상의 경력을 가진 오디오 감독 겸 사운드 디자이너입니다.

 @AuralSurgeon

댓글

댓글 달기

이메일 주소는 공개되지 않습니다.

다른 글

왜 Wwise를 쓰는 걸까요?

게임 음향 커뮤니티에서 가장 흔한 질문 중 하나는 바로 '미들웨어 사용의 장점을 상사나 고객에게 어떻게 설명해야 하는가'입니다. 우리 음향 전문가의 입장에서 이 질문은 너무나 쉽게...

12.10.2018 - 작성자: CIARAN WALSH (키어런 왈쉬)

Wwise에서 Audio Object 저작하기

미래... 미래란 항상 멀리 있고, 절대 지금으로 앞당길 수 없지만, 항상 손안에 잡힐 듯 말 듯 하지 않나요? 최신 뉴스를 꿰뚫고 있거나, 좋아하는 드라마를 바로바로 챙겨...

7.7.2021 - 작성자: 데미안 캐스트바우어 (Damian Kastbauer)

Wwise 2022.1에서의 SDK 런타임 성능 개선

이 글에서는 Wwise 2022.1의 런타임에서 CPU 사용량에 대한 몇 가지 개선 사항을 살펴보게...

5.12.2022 - 작성자: 데이비드 크룩스 (David Crooks)

Wwise 2023.1 새로운 기능

Wwise 2023.1이 출시되었으며 Audiokinetic 런처를 통해 다운받으실 수 있습니다. 이 버전이 제공하는 새로운 기능을 간략하게 소개해드리려고 합니다....

7.7.2023 - 작성자: Audiokinetic (오디오키네틱)

WAQL 2.0

Wwise Authoring Query Language (WAQL, 와클) 첫 번째 버전이 출시된 지 벌써 몇 년이 지났습니다. 첫 버전 이후 크게 변경된 점은 없습니다. 가장...

10.8.2023 - 작성자: 베르나르 로드리그 (Bernard Rodrigue)

Wwise Spatial Audio 2023.1의 새로운 기능 | 위상 완화 (Phasing Mitigation)

오늘 이 글에서는 '위상(phasing)'이라는 흥미로운 음향적인 현상에 대해 알아보겠습니다. 이 현상은 특정 환경에서 음향을 모델링할 때 나타날 수 있죠. Wwise 23.1의...

25.1.2024 - 작성자: Allen Lee

다른 글

왜 Wwise를 쓰는 걸까요?

게임 음향 커뮤니티에서 가장 흔한 질문 중 하나는 바로 '미들웨어 사용의 장점을 상사나 고객에게 어떻게 설명해야 하는가'입니다. 우리 음향 전문가의 입장에서 이 질문은 너무나 쉽게...

Wwise에서 Audio Object 저작하기

미래... 미래란 항상 멀리 있고, 절대 지금으로 앞당길 수 없지만, 항상 손안에 잡힐 듯 말 듯 하지 않나요? 최신 뉴스를 꿰뚫고 있거나, 좋아하는 드라마를 바로바로 챙겨...

Wwise 2022.1에서의 SDK 런타임 성능 개선

이 글에서는 Wwise 2022.1의 런타임에서 CPU 사용량에 대한 몇 가지 개선 사항을 살펴보게...