버전
menu_open

Game Sync란?

첫 게임 기획이 나왔다면 Game Sync라는 Wwise 요소를 사용하여 게임의 일부가 될 변화와 선택지를 간소화하여 구현할 수 있는지 살펴보아야 합니다. 게임의 시각적 요소를 돋보이게 할 네 가지 종류의 Game Sync 중 가장 좋은 결과물을 낼 수 있는 것을 하나 정해야 합니다.

  • State—기존 사운드, 음악, 모션의 속성을 전역적인(global) 범위에서 변화시킵니다.

  • Switch—특정 게임 요소에 존재하는 여러 선택지를 각각 표현한 것이며 완전히 새로운 사운드, 음악, 모션이 필요할 수 있습니다.

  • RTPC—Game Parameter의 값이 속성을 알아서 변경시키도록 가변적인 Game Parameter 값에 매핑된 속성을 말합니다.

  • Trigger—게임에서 저절로 일어난 상황에 대한 응답으로 스팅어(stinger)를 시작합니다. 스팅어는 현재 재생되는 음악에 겹쳐서 재생되는 짧은 음악 구절입니다.

게임 프로젝트를 만들 때 우리는 언제나 품질, 한정된 메모리 사용량, 시간 제약과 같은 요소 사이의 균형을 잡으려 안간힘을 씁니다. Game Sync를 전략적으로 사용하면 작업이 단순해지고, 메모리 사용을 절약할 수 있으며, 진정으로 몰입감있는 게임 경험을 만드는 데에 도움이 됩니다.

State 이해하기

State는 기본적으로 게임 오디오와 모션 속성에 대한 '믹서 스냅샷', 전역적 상쇄값 혹은 조정이라고 할 수 있으며 게임에서 물리적 및 환경적 조건의 변화를 나타냅니다. State를 사용하면 오디오와 모션 디자인을 간소화하고 에셋을 최적화하는 데에 도움이 됩니다.

'믹서 스냅샷'으로서의 State는 결과적인 사운드 출력의 세부성을 설정하고 제어할 수 있게 해주며 다른 State들과 함께 사용되어 여러분이 원하는 결과를 창출해낼 수 있습니다. 한 오브젝트에 여러 개의 State가 부여되었을 때에, 하나의 속성이 여러 값의 변화에 영향을 받을 수 있습니다. 이런 상황에서는 각 값의 변화를 모두 합산합니다. 예를 들어서, 볼륨 변화값을 -6dB로 설정한 서로 다른 두 State Group에 각각 속한 두 개의 State가 동시에 활성화 되면 볼륨은 결과적으로 -12 dB가 될 것입니다.

이러한 '믹서 스냅샷'을 만들고 정의하면 메모리나 디스크 공간을 더 사용하지 않고도 하나의 사운드, 음악, 모션 오브젝트에 여러 가지 속성 세트를 만들어놓을 수 있습니다. 이러한 속성 세트는 주어진 State(혹은 여러 State)가 발효된 동안 사운드가 재생되는 방식을 정하는 법칙 세트가 됩니다. 이러한 속성 변경을 수많은 오브젝트에 전역적으로 적용하면 신속하게 보다 현실적인 소리풍경(soundscape)을 만들어내어 게임을 돋보이게 할 수 있습니다. 이미 재생 중인 사운드, 음악, 모션의 속성을 변경해서 사용하면 에셋을 재사용하기 때문에 소중한 메모리를 절약할 수 있습니다.

Example 3. State 사용하기 - 예시

캐릭터가 수면 밑을 지나갈 경우에 일어나는 사운드 처리를 시뮬레이션한다고 가정해 봅시다. 이 경우 State를 사용하여 이미 재생 중인 사운드의 볼륨과 로우패스 필터(low pass filter)를 변경할 수 있습니다. 이러한 속성을 변경하면 캐릭터가 수면 아래로 들어갈 경우의 총격음이나 수류탄 폭발음 변화를 재현할 수 있을 것입니다.

다음 그림은 게임에서 잠수 State가 호출되었을 경우 총과 수류탄 사운드 오브젝트의 볼륨과 로우패스 필터 속성이 어떻게 변경되는지를 보여줍니다.


Switch 이해하기

Wwise에서 Switch는 게임 안의 특정 게임 오브젝트에 존재하는 여러 가지 선택지를 나타냅니다. 사운드, 음악, 모션 오브젝트를 정리한 후 Switch로 할당하면 게임에서 선택지가 변경됐을 때 알맞은 사운드나 모션 오브젝트가 재생되도록 할 수 있습니다. Switch에 할당된 Wwise 오브젝트는 Switch Container로 묶입니다. Event가 변화를 알리면 Switch Container는 해당 Switch를 확인하여 알맞은 음악이나 모션 오브젝트를 재생합니다.

Example 4. Switch 사용하기 - 예시

주인공이 다양한 환경에서 걷거나 뛸 수 있는 1인칭 슈팅 게임을 제작 중이라고 가정합시다. 각 환경에는 콘크리트, 잔디, 흙과 같은 다양한 지표면이 존재하기 때문에 각 지표면에 맞는 발자국 소리를 재생하고자 합니다. 이 경우 여러 가지 지표면에 대응하는 Switch를 만들어서 서로 다른 발자국 소리를 알맞은 Switch에 할당할 수 있습니다. 주요 캐릭터가 콘크리트 표면 위를 걸을 때에는 'concrete' Switch가 활성화되고 해당 사운드가 재생되는 것이죠. 캐릭터가 콘크리트 표면에서 잔디 표면으로 이동하면 'grass' Switch가 활성화되며 해당 사운드가 재생될 것입니다.

다음 그림은 활성화된 Switch가 재생할 발자국 소리를 결정하는 방법을 보여줍니다.


RTPC 이해하기

Real-time Parameter Control(실시간 매개 변수 제어, RTPC)은 게임 안에서 실시간 매개 변수 값이 변화함에 따라 특정 오브젝트의 속성을 실시간으로 편집할 수 있게 해주는 기능입니다. RTPC를 사용하면 Game Parameter를 속성값에 매핑하고 속성의 변경을 자동화하여 게임의 현실성을 향상시킬 수 있습니다. 매개 변수 값은 그래프에 표시됩니다. 한 축은 Wwise에서의 Switch Group이나 속성값을 표시하며 다른 축은 게임 안의 Game Parameter의 값을 표시합니다. 속성값을 Game Parameter 값에 매핑하면 두 매개 변수 간의 전반적인 관계를 정의하는 RTPC 곡선을 만들게 됩니다. 곡선을 필요한 만큼 여러 개 만들 수 있으므로 플레이어에게 풍부하고 몰입감 있는 경험을 제공할 수 있습니다.

Example 5. RTPC 사용하기 - 예시

자동차 경주 게임을 제작한다고 가정합시다. 자동차의 속도와 RPM이 오르락 내리락하면 엔진 사운드의 볼륨과 피치도 함께 움직여야겠죠. 이 경우 RTPC를 사용하여 자동차 엔진 사운드의 피치와 볼륨 레벨을 게임 속의 자동차 속도와 RPM 값에 매핑할 수 있습니다. 자동차가 가속하면 여러분이 매핑한대로 피치와 볼륨 속성값이 변화합니다.

다음 그림은 Wwise에서 매핑된 방식에 따라 게임의 경주용 자동차의 속도가 변화할 때 소리의 볼륨이 어떻게 변화하는지 보여줍니다.


Trigger 이해하기

모든 Game Sync와 마찬가지로 Trigger는 게임에서 호출된 후 게임에서 일어나는 일에 맞춰 Wwise의 특정 반응을 정의하는 Wwise 요소입니다. 좀 더 자세히 말하자면 상호작용 음악에서 Trigger는 게임에서 즉흥적으로 일어나는 상황에 대한 응답으로 스팅어(stinger)를 시작합니다. 스팅어는 게임에 대한 음악적인 반응을 말하며 현재 재생 중인 음악 위에 겹쳐서 재생되는 간략한 음악 구절입니다. 예를 들어 닌자가 무기를 뽑아들 경우 이미 재생 중인 액션 음악 위로 스포르찬도(sforzando) 유형의 음악적 효과를 삽입하고자 한다고 합시다. 게임이 Trigger를 호출하면 스팅어가 시작되고 이미 재생 중인 음악 위로 해당 음악 클립이 재생됩니다.

Example 6. Trigger 사용하기 - 예시

주요 캐릭터가 닌자 파이터인 전투 게임을 제작 중이라고 가정합시다. 게임의 몇몇 시점에서는 적들과 싸우는 액션 모드로 전환됩니다. 캐릭터가 강력한 킥을 선보일 때 그 장면의 청각적 영향을 강화하도록 뮤직 클립을 교체하고자 합니다. 이러한 시퀀스에 맞는 음악을 구현하려면 Trigger를 만들어야 합니다. 게임에서 이 시점에 호출될 수 있도록 'High Kick'이라는 이름을 붙여봅시다. 그리고 임팩트를 더해주기 위해 빠른 관악기 소리가 들어간 짧은 음악 세그먼트를 정의합니다.

다음 그림은 게임의 주요 시점에서 스팅어를 재생하는 Trigger 장치를 설명합니다.


Game Sync - 역할과 책임 분담

다음 표는 Game Sync와 관련해 사운드 디자이너가 해야 하는 작업과 프로그래머가 해야 하는 작업을 보여줍니다.

작업

사운드 디자이너 (Wwise)

프로그래머 (게임 코드/툴)

Switch Group과 Switch 만들기

X

State Group과 State 만들기

X

State Transition Time 정의

X

Switch Container에 Switch와 State Group 할당

X

Trigger 설정

X

게임 엔진에서 오는 State와 Switch 정보를 Wwise Audio Engine에 게시

X

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

지원이 필요하신가요?

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

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

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

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

Wwise를 시작해 보세요