Wwise와 Unity로 12일만에 상호작용 폴리 디자인하기

게임 오디오 / 사운드 디자인

12-days-of-interactive-foley-design-with-wwise

버튼을 누를 때마다 캐릭터의 외모, 태도, 자세가 끊임없이 새로워지는 캐릭터가 걷는다는 것은 폴리 아티스트에게 정말 꿈만 같으면서도 동시에 악몽이기도 하죠.

꿈이든 악몽이든, 저는 작업을 해내야 했습니다. 벤자민 베드렌(Benjamin Vedrenne)의  Random Access Character(랜덤 접근 캐릭터) 프로젝트에서는 3백만 가지의 조합이 가능했거든요. 작업할 수 있는 기간이 단 12일뿐이었고, 제작자 분께서도 그동안 저를 도와줄 수 없을 거라는 이메일을 보내시더군요. 이 블로그에서는 게임 폴리에 대해 관심있으신 분들에게 유용한 정보가 되길 바라며 Wwise와 Unity를 사용한 방법을 소개해드리려고 합니다. 하지만 이 방법들은 궁극적인 것도 절대적인 것도 아니니까, 여기서 설명해 드린 디자인을 발전시키는 데 누구든 망설이지 말고 아이디어를 공유해주세요.

 

 

 

1 & 2일차: 제한된 무한성, 계산, 폭포 그리기

가장 처음으로 저는 Random Access Character를 우연적인 아주 작은 이야기들의 모임이라고 해석했습니다. 새롭게 생성되는 각 결과물은 곧 저마다 다른 상황에 처한 고유의 캐릭터라고 볼 수 있어요. 나무 인간이 숲을 탈출하거나, 라즈베리 소녀가 빗속에서 뛰놀거나, 술에 취한 콜라 소년이 경기장 입구에서 비틀 비틀 걷거나, 혹은 달걀들이 둥지 안에서 기어나온다거나... 펼쳐질 수 있는 이야기에는 끝이 없죠.

첫 번째로 고려해야 할 중요한 것은 표현력과 다양성을 최대한으로 유지하면서 녹음할 에셋을 최소로 줄이는 방법이었습니다. Unity의 생성 스크립트는 다음과 같습니다. 각각의 새로운 생성은 제공되는 50 개의 걷기 애니메이션 중에서 하나를 고릅니다. 그리고 52 개의 고유한 오브젝트에서 1~4 개의 오브젝트를 골라 캐릭터를 만들어내죠. 그런 다음 선택된 오브젝트는 랜덤으로 크기가 조정됩니다. 수학자인 제 친구에 의하면 이 방법으로 색깔과 질감을 고려하지 않고 최대 331,651,200 개의 서로 다른 캐릭터를 생성할 수 있다고 하더군요.

게임을 어느 정도 플레이해본 후에 저는 대부분의 애니메이션에 몇 가지 타입의 발자국 소리가 사용될 수 있는지를 기록했습니다. 그렇게 얻어낸 발자국 타입은 부드러움, 일반, 거침, 짧게 끌기, 길게 끌기, 까치발 걷기였습니다. 처음엔 '술에 취한' 발자국 소리도 녹음하려고 했지만 생각해보니 위의 발자국을 그냥 마구잡이로 섞어 넣으면 되겠더라구요. 하지만 발자국 에셋만으로는 충분하지 않았습니다. 몸이 흔들거리는 소리도 필요했어요. 처음에 저는 세 가지 다른 반복 재생 구간을 만들어 여러 가지 걷는 속도에 사용하려고 했지만, 결국 결과물 대비 알맞게 조정하는 시간이 너무 많이 걸릴 것 같았습니다. 그래서 각 오브젝트마다 하나의 반복 재생 구간을 만들었어요.

그리고 몇 가지 질문이 생겼습니다. "바닥의 표면에 따라 다른 소리가 필요할까? 왼발과 오른발을 구분해야 할까? 발끝과 발꿈치 소리가 서로 달라야 할까?" 프로젝트를 막 시작한 사람이 모든 것을 더 복잡하게 만들어버리기 시작하는 전형적인 순간이었죠. 하지만 이러한 모든 질문은 현실적인 시간과 프로젝트의 진정한 본질 및 규모를 두고 바라봐야 했습니다. RAC는 보기보다 굉장히 간단합니다. 최종 디자인이 더욱 간단할수록 제가 미세 조정할 시간이 더 많아집니다.

현재 계산법은 다음과 같습니다.

52 오브젝트 * 6 발자국 타입 * 7 변형 = 2,184 개의 서로 다른 발자국 소리

+

52 오브젝트 * 1 서로 다른 속도의 현장감 반복 재생 구간 = 52 개의 반복 재생 구간

= 2,236 개의 에셋이 필요함.

이 숫자를 더 줄이기 위해 저는 Wwise의 Pitch 매개 변수를 사용하면 일부 오브젝트를 기존의 오브젝트에서 만들어낼 수 있다는 것을 알아냈습니다. 예를 들어 작은 플라스틱 상자는 Wwise에서 계층 구조를 복사하여 피치를 낮추기만 하면 보다 크며 낮은 공명 주파수를 가진 상자에 사용할 수 있어요. 궁극적으로 저는 35 개의 고유한 오브젝트를 녹음해야 함을 알아냈습니다. 그러면 결과적으로 총 1,560 개의 에셋을 얻을 수 있겠죠.

그런 다음 저는 종이에 Wwise 계층 구조를 그려보면서 어떻게 Unity로 연결할 수 있는지를 고민했습니다. 그렇게 해서 아래에 있는 계층 구조를 사용하게 되었습니다. Unity는 Event의 문자열 이름을 다음의 방법으로 연결하기만 하면 되죠.

애니메이션에 태그된 각 발자국 소리는 발자국 타입에 따라 특정 함수를 트리거합니다. 그런 다음 현재 캐릭터 생성에 대해 랜덤으로 뽑힌 오브젝트의 이름을 수집합니다.

 

Script1

Script2Wwise와 Unity 간의 통신에 필요한 몇 줄의 코드를 추출

2일차의 끝: 필요한 줄을 게임의 주요 스크립트에 추가하고 봉고 샘플 소리를 사용해서 시스템을 시험했습니다. 제대로 작동하더라구요!

 

3, 4, 5, 6일차: 소품 수집하기, 파리에서 폴리 스테이지 즉흥 제작하기, 계란 깨뜨리기

걸어 다니는 계란, 라즈베리, 덜그덕거리는 콜라 병 같은 것이 너무 많기 때문에 상용 발자국 라이브러리는 아무 도움이 되지 못했습니다. 사서 고생하기 좋아하는 저는 게임 동영상이나 이미지의 도움 없이 폴리를 실행했어요. 저는 Unity에서 이 모든 것들이 어떻게 함께 모여 완성되는지 정말 보고싶었습니다. 폴리 에셋이 함께 실시간으로 재생되는 것을 처음으로 들었을 때의 기쁨이란 정말 말로 표현이 안되더군요!

FoleyProp_day13일차 : 폴리 소품 첫 번째 세트

저는 하이퍼 카디오이드와  전방향 마이크를 같은 위상으로 설치한 더블 모노 구조를 사용해서 녹음했습니다. 그런 다음 나흘 동안 나뭇잎, 빈 맥주 캔, 케틀 벨, 과일, 나뭇가지 등을 열심히 흔들고, 깨뜨리고, 문질러댔죠.

총 작업 기간의 반은 녹음 작업으로, 반은 Reaper에서의 편집 작업으로 보냈습니다.

 

Reaper Session모든 폴리 편집은 Reaper에서 진행되었습니다.

 

7, 8, 9, 10일차: 오디오 디자이너의 일상과 간단한 동적 기술을 통한 표현력 높이기

추가하는 새로운 소품마다 표현력과 음향적 자취를 더해서 Unity 안에서 캐릭터에 점점 생기가 생기기 시작했습니다.

 

전반적인 사운드에 생생함과 리듬을 더욱 주기 위해 저는 Wwise에서 척추 움직임 버스에 덕킹 컴프레션을 추가해서 각 발자국 소리가 몸 움직임 반복 재생 소리를 짧게 낮추도록 했습니다. 또한 몇몇 애니메이션에서는 특수한 이벤트를 사용해서 짧은 기간동안 척추 움직임 소리가 더 크거나 작아지도록 하기도 했어요 (예를 들면 술 취한 애니메이션에서 캐릭터가 거의 넘어지려고 할 때처럼 말이죠). 그리고 어떤 애니메이션에서는 발소리와 몸소리 사이의 볼륨을 특별히 조절해서 캐릭터의 속도에 맞추었습니다.

 

11, 12일차: 환경음, 시간대, 플레이어의 게임 플레이 시간 고려하기

11일차가 되니 거의 작업 완료 시기에 도달하게 되었습니다. 이제 환경음이 게임의 '우연적 이야기'를 향상시키도록 만들어야 했습니다.

플레이어의 플레이 시간은 환경음의 내용과 디자인에 직접적인 영향을 끼치기 때문에 반드시 고려해야 합니다. 얼마나 길어야 할까요? 몇 개나 필요할까요? 플레이어가 생성할 여러 가지 캐릭터 간의 연관성을 어떻게 만들어낼 수 있을까요?

게임에서는 보통 환경음 자체에 너무 큰 주의를 기울이지 않도록 설계됩니다. 그렇지 않으면 반복성이 드러날 수가 있거든요 (작은 범위에서는 WAV 파일의 반복 재생, 큰 범위에서는 시스템의 유한성). 그렇기 때문에 '배경' 혹은 '공기' 트랙은 보통 특이한 부분을 다 편집해내고 간단하게 만들어버리는 경우가 많습니다. 평균적으로 RAC 플레이어는 장시간동안 플레이하지 않기 때문에 저는 중간 중간 두드러진 이벤트를 넣어서 몇 분 간 모든 콘텐츠를 '제공하여' 스토리텔링을 극대화할 수 있었습니다.

저희가 가진 아이디어는 동시에 일어나는 평행적 이야기를 만들어내는 것이었어요. 짐 자무쉬(Jim Jarmusch)의 지상의 (Night On Earth)에서 각각 다른 시간 상의 다섯 명의 택시 드라이버의 야간 근무를 보는 것처럼요. RAC에서 환경음은 랜덤으로 선택되며 이미 들었던 환경음으로 다시 돌아갈 경우 정확한 경과 시간을 따르게 됩니다. 이렇게 하니, RAC에 마치 어떤 일이 일어나서 동시에 여러 다른 위치에서 생명체들이 모두 살아난 것 같은 마법적인 느낌과 현실적 시간감이 생겼습니다.

***

정말 정신 없는 12일이었지만, 저는 현재 제공되는 기술만으로 한 사람이 해낼 수 있는 작업량이 얼마나 많은지에 대해 아직도 감탄하고 있습니다. 이 프로젝트는 사운드 작업의 가장 원시적 활동 중 하나인 폴리를 가장 최신의 상호작용 도구와 합쳐주었습니다. RAC의 요상한 우화를 여러분도 즐겨주셨으면 좋겠네요. 앞으로 상호작용 프로젝트에서 폴리가 더욱 강조되기를 바랍니다!

Random Access Character 는 2017년 벤자민 베드렌(Benjamin Vedrenne)에 의해 ProcJam을 위해 제작되었습니다.
이 프로젝트는 2018년 베를린의 Pictoplasma에서 상호작용 설치물로 쇼케이스되었습니다.
더 많은 정보와 프로젝트는 벤자민의 웹사이트 (http://glkitty.com/)에서 확인하실 수 있습니다.

 

피에르-마리 블랑 (Pierre-Marie Blind)

사운드 디자이너

Ubisoft Blue Byte

피에르-마리 블랑 (Pierre-Marie Blind)

사운드 디자이너

Ubisoft Blue Byte

피에르 마리는 현재 독일 뒤셀도르프에 위치한 Ubisoft Blue Byte(유비소프트 블루 바이트)의 사운드 디자이너입니다. 게임, 가상 현실 프로젝트, 연극, 현대 예술 등을 작업해온 피에르는 2015년부터 전기음향 작곡가인 세실 르 프라도(Cécile Le Prado)를 보조해왔습니다. 피에르가 배워온 클래식 음악과 산업 사운드 디자인 지식은 그가 사운드를 접근하는 방식에 중대한 영향을 끼쳤습니다. 바람이 솔솔 부는 날에는 새로운 바람 텍스처를 찾거나 부러진 나뭇가지를 휘둘러보는 모습은 그의 흔한 일상이죠. 피에르의 폴리와 현지 녹음에 대한 애정은 항상 한결같습니다.

 @PierreM_Blind

댓글

댓글 달기

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

다른 글

Wwise / Unreal Engine 4 / Unity 3D를 사용해 발자국 소리의 표면 관리하기

사전 제작의 초기 단계에서 사운드 디자이너는 많은 시스템을 프로토타입화해야 하는데, 이를 도와줄 오디오 프로그래머가 없는 경우도 있죠. 다행히도 Wwise는 Unreal...

17.7.2019 - 작성자: 세바스티앙 겔라르 (Sébastien Gaillard)

Wwise 오디오 플러그인을 제작하는 간단한 과정

Wwise용 오디오 플러그인을 개발하는 것은 디지털 오디오 편집 프로그램 (DAW)에서 플러그인을 개발하는 것과 꽤 다릅니다. Wwise는 상호작용적이며 수많은 플랫폼을 지원하기...

27.8.2019 - 작성자: 조엘 로비쇼 (Joel Robichaud)

제 2부: 니어 : 오토마타(NieR:Automata)의 공간 음향과 Wwise로 구현한 다양한 게임 플레이 유형

블로그 제 1부를 읽어주세요! 다양한 게임 플레이를 지원해주는 Wwise 컨트롤 앞서 말씀드렸듯이 이 게임에서는 카메라의 위치가 자주 변경됩니다. 표준 후면 시점부터 시작해서 탑...

17.9.2019 - 작성자: PlatinumGames Inc. (플래티넘 게임즈)

라우드니스를 처리하는 최상의 방법, 제 1강: 라우드니스 측정 (1부)

방송과 같은 푸시 서비스, 멀티 플랫폼 상호작용 엔터테인먼트, 인터넷 스트리밍과 같은 다양한 미디어 형식에서 라우드니스는 단지 신호 전달 표준이 아니라 소비자 선호에 직접적인...

12.11.2019 - 작성자: 지에 양 (Jie Yang, 디지몽크)

라우드니스를 처리하는 최상의 방법, 제 1강: 라우드니스 측정 (2부)

이전 블로그인 라우드니스를 처리하는 최상의 방법, 제 1강: 라우드니스 측정 (1부)에서는 지에 양 (디지몽크) 님이 다양한 플랫폼과 콘텐츠 타입에 대한 오디오 표준의 도전 과제와...

20.11.2019 - 작성자: 지에 양 (Jie Yang, 디지몽크)

게임의 사회성에 큰 역할을 하는 음성 채팅: Wwise GME 서비스 시작!

상호작용 요소가 많은 인기 게임의 사운드는 잘 만들어진 게임 자체의 '개별적인 캐릭터'를 뒷받침해줄 뿐만 아니라 더 풍부한 플레이 경험을 제공하고 게임 시스템을 강화하는 데 큰...

8.1.2020 - 작성자: 시몽 아슈비 (Simon Ashby)

다른 글

Wwise / Unreal Engine 4 / Unity 3D를 사용해 발자국 소리의 표면 관리하기

사전 제작의 초기 단계에서 사운드 디자이너는 많은 시스템을 프로토타입화해야 하는데, 이를 도와줄 오디오 프로그래머가 없는 경우도 있죠. 다행히도 Wwise는 Unreal...

Wwise 오디오 플러그인을 제작하는 간단한 과정

Wwise용 오디오 플러그인을 개발하는 것은 디지털 오디오 편집 프로그램 (DAW)에서 플러그인을 개발하는 것과 꽤 다릅니다. Wwise는 상호작용적이며 수많은 플랫폼을 지원하기...

제 2부: 니어 : 오토마타(NieR:Automata)의 공간 음향과 Wwise로 구현한 다양한 게임 플레이 유형

블로그 제 1부를 읽어주세요! 다양한 게임 플레이를 지원해주는 Wwise 컨트롤 앞서 말씀드렸듯이 이 게임에서는 카메라의 위치가 자주 변경됩니다. 표준 후면 시점부터 시작해서 탑...