버전
Wwise에서는 자유롭게 계층 구조를 만들 수 있습니다. 프로젝트 초반에 일관적인 전략을 도입하면 나중에 시간과 노력을 절약할 수 있습니다. 물론 오디오 오브젝트에 접근하는 방법은 아주 다양하지만 다음과 같이 최고의 결과를 도출해내는 데에 도움이 될 만한 몇 가지 개념을 고려해보아야 합니다.
저작(authoring) 시간을 절약하고 프로젝트의 메모리 사용량을 잘 관리하려면 계층 구조를 구축하기 전에 오브젝트를 정리하는 최고의 방법이 무엇인지 생각해보아야 합니다. 여러분의 계획에 따라 프로젝트의 다양한 오브젝트를 효과적으로 묶을 수 있는 방법을 제안해 드리겠습니다.
Actor-Mixer는 메모리와 CPU 사용량을 줄여주는 고마운 존재입니다. 위치 지정(positioning)이나 RTPC와 같은 Actor-Mixer의 속성이 모든 하위 오브젝트에 같이 공유되기 때문입니다. 그렇기 때문에 오브젝트 정리법을 고려하고 있다면 다음 사항을 위해 Actor-Mixer 아래로 오브젝트를 묶는 것을 생각해 보세요.
속성 설정을 공유하여 이 설정이 한 번만 처리되도록 함.
덮어쓰기를 제한하여 각 오브젝트의 덮어쓰기 처리를 피함.
주의 | |
---|---|
Actor-Mixer 계층에 적용된 효과는 Effect를 적용할 수 있는 효율적인 방법이지만 CPU 사용은 절약해주지 않습니다. Actor-Mixer 레벨에 효과를 적용할 때 해당 Effect의 인스턴스가 모든 하위 오브젝트에 적용됩니다. 효과는 실시간으로 각 오브젝트마다 처리되기 때문에 많은 양의 CPU를 사용할 수 있습니다. |
메모리 사용을 최적화하려면 Actor-Mixer로 오브젝트를 묶어 다음 속성을 공유하세요.
Positioning
RTPC
States
Randomizer
10개의 사운드를 포함하는 Actor-Mixer가 있으며 사운드의 위치 지정을 3D로 설정하려 한다고 가정합시다. 이 경우 각 사운드의 Override parent 옵션을 사용해서 3D 위치 지정을 개별적으로 사용할 수 있습니다. 하지만 이 방법은 Actor-Mixer의 위치 지정 속성을 3D로 설정하는 것보다 10배 이상의 메모리를 런타임에서 사용합니다. 이제 일부 사운드를 패닝하려고 할 경우 Actor-Mixer의 위치 지정을 3D Emitter로 설정하면 여전히 메모리를 최적화할 수 있습니다. 이 경우 패닝된 사운드는 추가적인 메모리를 필요로 하지 않기 때문에 Actor-Mixer를 덮어쓰고 특정 사운드에 패닝을 적용하면 됩니다.
보통 Actor-Mixer가 최선의 선택이지만 메모리 사용 최적화를 위해 컨테이너에 속성을 적용해야 하는 상황도 있습니다. 컨테이너 내 특정 오브젝트, 예를 들어 Random Container 내 발자국 소리에만 위치 지정을 적용할 경우 상위 Actor-Mixer보다 해당 컨테이너에 위치 지정 속성을 적용하는 것이 메모리를 더 절약할 수 있습니다. 하지만 구조상의 모든 오브젝트가 하나의 위치 지정 속성을 공유하고자 할 경우 이 속성을 Actor-Mixer 계층에 적용하는 것이 더 좋습니다.
앞에서 다루었던 몇몇 개념을 사용하여 Actor-Mixer 내 오브젝트를 어떻게 효과적으로 묶을 수 있는지를 살펴봅시다. 다음 예시에서는 게임의 대사 에셋을 작업하고 있습니다. 몇몇 에셋은 캐릭터 음성으로 사용하고 몇몇 에셋은 무전기로 사용하고자 합니다. 이 경우 이 에셋을 Dialogue Actor-Mixer로 묶을 수 있겠죠. 왜냐하면 이 대사들이 모두 볼륨과 같은 속성을 공유하고 있다는 것을 이미 알기 때문입니다.
이제 Actor-Mixer 볼륨 설정을 완료했고, 무전기 대사에만 Parametric EQ 효과를 추가하려 한다고 가정합시다. 물론 각 무전기 대사를 편집하여 Actor-Mixer 설정을 덮어쓰고 이 효과를 적용할 수 있습니다. 하지만 모든 무전기 대사를 함께 컨테이너로 묶은 다음 컨테이너에서 Actor-Mixer 설정을 덮어쓰고 이 Effect를 추가하면 더욱 효과적으로 작업할 수 있습니다.
게임이나 Game Simulator에 연결하면 Wwise에서 다음과 같은 상대적 속성값을 실시간으로 변경할 수 있습니다.
Volume
Pitch
Low-Pass Filter
Center %
RTPC 값
State와 Switch 변경
Triggers
Attenuation 컨트롤
일부 오디오 및 음원 효과 플러그인 속성.
참고 | |
---|---|
일반적으로 Game Parameter에 매핑할 수 있는 속성은 게임에서 실시간으로 변경할 수 있습니다. |
하지만 그렇게 하려면 속성을 변경하고자 하는 오브젝트를 Transport Control이나 Soundcaster에 불러와야 합니다. 오브젝트를 불러오지 않으면 사운드 엔진에 이 오브젝트가 등록되지 않기 때문에 변경 사항이 적용되지 않습니다. Actor-Mixer의 경우 Transport Control에 불러올 수 없기 때문에 Actor-Mixer의 하위 오브젝트를 불러오면 그 상위 오브젝트가 사운드 엔진에 등록됩니다. 해당 오브젝트를 등록하면 게임에 연결되어 있는 동안 계속해서 등록된 채로 유지됩니다.
참고 | |
---|---|
Transport Control에서 오브젝트에 핀을 꽂을 경우 핀을 빼기 전까지는 다른 오브젝트를 불러올 수 없다는 점을 주의하세요. 하지만 Soundcaster에 오브젝트를 불러오면 이 오브젝트는 사운드 엔진에 등록됩니다. |
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요