Wwise SDK 2024.1.0
|
게임에서 게임 오브젝트가 벽이나 기둥과 같은 다른 사물에 의해 부분적으로 막히거나(방해, Obstruction) 방 안에 완전히 갇혀(차단, Occlusion) 리스너가 벽을 통과해 나오는 몇 가지 소리만 들을 수 있는 경우가 많습니다. 보조 센드를 사용하면 이 신호의 반사를 표현할 수 있습니다.
Wwise는 방해와 차단 수준을 자체적으로 계산하지 않습니다. 게임에서 물리 계산을 수행하고 AK::SoundEngine::SetObjectObstructionAndOcclusion() 을 사용해 결과를 사운드 엔진에 전달해야 합니다.
Wwise 사운드 엔진은 방해 및 차단 수준을 Wwise에서 정의한 볼륨, 로우패스 필터(LPF) 및 하이패스 필터(HPF) 곡선 세트에 매핑합니다. 기본적으로 이러한 곡선은 프로젝트 전체에 적용되지만, Attenuation ShareSet를 사용하여 다양한 사운드에 맞게 곡선을 사용자 정의로 커스터마이징할 수 있습니다. 이러한 곡선은 게임 플레이 중 방해와 차단의 영향을 받는 사운드 오브젝트에 적용됩니다. 정의한 값은 상대적이며, 게임 오브젝트에 이미 적용된 모든 볼륨 및 LPF/HPF 값에 추가됩니다.
이러한 조건을 구현할 때 사운드 엔진은 백분율 값을 계산하고 이를 방해와 차단에 모두 할당하여 사실감을 높입니다. 이 백분율은 게임 엔진의 실시간 위치 정보를 기반으로 하며 막혀있는 구역 안팎으로 게임 오브젝트의 움직임을 반영할 수 있습니다. 예를 들어, 스파이 캐릭터가 큰 조각품으로 가득한 미술관을 돌아다니는 경우가 있습니다. 스파이가 각 조각품 뒤를 지나갈 때 어디에 있는지에 따라 방해 비율이 달라질 수 있습니다. 마찬가지로, 스파이가 완전히 차단된 청소용품 보관실에서 천천히 빠져나오면서 차단의 비율이 바뀔 수도 있습니다.
Spatial Audio와 함께 방해와 차단을 사용할 수도 있고, 독립적으로 사용할 수도 있습니다. Spatial Audio에 대한 자세한 내용은 Spatial Audio (공간 음향) 을 참조하세요.
다음은 사운드 엔진 내 방해/차단 처리 파이프라인의 다이어그램입니다.
방해(obstruction)는 게임 속 물체(예: 벽이나 기둥)가 음원과 리스너 사이의 공간을 부분적으로 막을 때 발생합니다. 예를 들어, 스파이 게임에서 기둥 뒤에 숨은 플레이어 캐릭터는 앞에서 나는 총소리를 들을 수 있습니다.
방해는 볼륨 컨트롤, 로우패스 필터(LPF), 하이패스 필터(HPF), 또는 이 세 가지의 조합을 신호의 직접 경로에 적용하여 모델링할 수 있습니다. 보조 센드 반사는 영향을 받지 않습니다.
차단은 게임 지오메트리 내의 오브젝트가 음원과 리스너 사이의 공간을 완전히 막을 때 발생합니다. 예를 들어, 스파이 게임에서 플레이어 캐릭터는 옆방에서 발사되는 총과 자신 사이에 벽이 있는데도 불구하고 총소리를 들을 수 있습니다.
차단은 볼륨 컨트롤, 로우패스 필터(LPF), 하이패스 필터(HPF), 또는 신호의 직접 경로와 보조 센드 반사에 영향을 미치는 세 가지의 조합을 적용하여 모델링할 수 있습니다. 방해와 차단은 동시에 일어날 수 있습니다. 직접 경로는 방해 값과 차단 값 모두의 영향을 받습니다. 그러나 반사 경로는 차단 값에 의해서만 영향을 받습니다.
게임 엔진은 게임의 지오메트리에 있는 오브젝트와 리스너의 위치에 따라 방해 및 차단 값을 결정합니다.
사운드 디자이너는 Wwise Authoring에서 곡선을 설정하여, 계산된 방해 및 차단 값에 볼륨, LPF, HPF가 어떻게 반응할 지 결정할 수 있습니다. 또한 최상의 성능과 필요한 현실감에 맞게 특정 곡선을 활성화하거나 비활성화할 수도 있습니다.
기본적으로 모든 사운드는 Wwise 프로젝트에 지정된 곡선을 사용합니다. 자세한 내용은 프로젝트의 방해와 차단 곡선 정의하기를 참조하세요.
다음 예제에서 1.0f(100%)의 방해 값은 소스 오브젝트에서 -50dB의 볼륨 변화를 생성합니다. Obstruction(방해) 및 Occlusion(차단) 레벨은 항상 0.0f와 1.0f 사이의 값이어야 합니다.
Attenuation(감쇠) ShareSet를 사용하면 개별 사운드에 대해 방해와 차단을 활성화/비활성화하고 설정할 수도 있습니다. 자세한 내용은 감쇠(attenuation) 적용하기를 참조하세요.
게임 디자이너는 각각의 리스너에 영향을 미치는 각 게임 오브젝트에 대한 방해 및 차단을 계산하고 AK::SoundEngine::SetObjectObstructionAndOcclusion() 호출을 통해 해당 값을 사운드 엔진에 전달해야 합니다.
한 게임 오브젝트에 대해 여러 리스너가 활성화된 경우, 사운드 엔진은 모든 리스너가 들을 수 있는 최소 LPF 값과 최대 볼륨 값을 결정합니다. 그런 다음 이 값을 사용하여 결과적으로 발생하는 방해/차단을 계산합니다.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요