버전

menu_open
Wwise SDK 2023.1.8
Advanced Topics in Rooms and Portals

Combining Rooms and Portals with Obstruction and Occlusion

Wwise Spatial Audio에서, 다른 공간으로부터 오는 소리 전달은 Room과 Portal 추상화에 의해 관리됩니다. Rooms with at least one propagation path to the listener via open Portals will simulate diffraction. Additionally, rooms will model transmission of sound through walls. Diffraction and Transmission Loss values are applied to the emitter game object. In the Wwise Authoring application, you can choose whether you want these values to attenuate the sound using the attenuation curves or using built-in game parameters instead. If a sound doesn't have an attenuation instance (either custom or ShareSet), the project obstruction and occlusion curves are used to attenuate the sound according to diffraction and transmission loss, respectively.

If you wish to implement your own solution for obstruction (for example, one driven by game-side raycasting), in conjunction with diffraction set from Spatial Audio, the game can use the sound engine API AK::SoundEngine::SetObjectObstructionAndOcclusion. For the occlusion of portal openings, the game can use the Spatial Audio API AK::SpatialAudio::SetPortalObstructionAndOcclusion. You can also apply obstruction on the sound path between an emitter and a nearby portal, a listener and a nearby portal or a pair of consecutive portals with the help of AK::SpatialAudio::SetGameObjectToPortalObstruction and AK::SpatialAudio::SetPortalToPortalObstruction. 예상치 못한 결과를 낳을 수 있으므로 어떠한 경우에도 게임 오브젝트 매개 변수로 룸 ID와 함께 AK::SoundEngine::SetObjectObstructionAndOcclusion 을 호출해서는 안 됩니다. Spatial Audio와 동일 공간 내 방해를 사용하는 방법에 대한 더 자세한 내용은 Modeling Obstacles Within a Room 를 참고하세요.

이와 관련한 음향 개념에 대한 설명은 Spatial Audio 개념 를 참고하세요.

Modeling Obstacles Within a Room

리스너와 동일한 공간에서 방사되고 있는 사운드의 방해는 Geometric Diffraction를 이용해 다룰 수 있으며 ( Using the Geometry API for Simulating Diffraction and TransmissionCombining the Geometric APIs with Rooms and Portals 참고), Spatial Audio Rooms and Portals에서만 다루지는 않습니다. 만약 방해를 계산할 목적으로 지오메트리를 Spatial Audio로 보내고자 한다면, 동일한 공간 내의 방해는 게임 단에서 관리해야 합니다. 공간 내 방해 계산에 사용되는 상세 표현 단계 및 방법, 지오메트리의 표현은 게임 엔진의 명시에 따라 크게 달라집니다. 게임에서는 주로 정밀하게 계산된 다양한 각도로 레이 캐스팅(ray-casting)을 이용해 이 작업을 실행합니다. 이 섹션에서는 Rooms and Portals를 함께 사용해 게임 단에서 어떻게 방해를 구현하는 지를 설명합니다.

반면 Spatial Audio Room과 Portal에서는 이 작업을 모든 이미터에 대해 실행할 필요는 없지만, 리스너와 동일한 Room에 있는 이미터에 대해서는 이 작업을 실행합니다. 이 방법이 유용한 이유는, 대부분의 경우 Spatial Audio가 전달 경로를 계산하는 데 사용하는 알고리즘보다 레이 캐스팅의 비용이 훨씬 더 비싸기 때문입니다. 이미터와 리스너 사이 공간 내 방해는 기본적으로 동일한 공간에서 발생하기 때문에, 장애물이 리스너나 이미터를 완전히 가리지 않으며 해당 사운드는 공간 내 반사를 통해 리스너에 도달한다고 추정합니다. 이는 보조 전송이 아니라 원본/변조 신호 경로를 통해서만 올바르게 모델링됩니다. 즉, Obstruction이 올바른 매커니즘이라는 뜻입니다. 때문에 게임은 AK::SoundEngine::SetObjectObstructionAndOcclusion 을 호출해야 합니다.

또한, 인접한 공간의 Portal은 리스너의 Room에 있는 사운드 이미터와 같이 간주돼야 합니다. 따라서 리스너와 이 리스너가 있는 Room의 Portal 사이의 방해 알고리즘이 게임 단에서 실행돼야 합니다. 그런 다음 각각의 포털에 대해 AK::SpatialAudio::SetPortalObstructionAndOcclusion 를 호출해야 이 리스너와 공간 내 방해를 안전하게 선언할 수 있습니다.

Implementing Complex Room Reverberation

It is possible for the game to use AK::SoundEngine::SetGameObjectAuxSendValues in conjunction with Spatial Audio rooms. The game's sends will be added in addition to the send to the room object's auxiliary bus, as defined by AkRoomParams::ReverbAuxBus.

Additionally, it is possible to use AK::SoundEngine::SetObjectObstructionAndOcclusion or AK::SoundEngine::SetMultipleObstructionAndOcclusion with Spatial Audio emitters, even though Spatial Audio already uses diffraction and transmission. 방해와 차단 및 이들을 Spatial Audio Room과 Portal에서 사용하는 방법에 대한 더 자세한 정보는 Modeling Sound Propagation from Other RoomsModeling Obstacles Within a Room 를 참고하세요.

사운드 엔진 API AK::SoundEngine::SetGameObjectAuxSendValues 는 Spatial Audio가 설정한 또 다른 Auxiliary Send를 추가하는 데 사용됩니다. 이는, 서로 다른 환경 효과를 필요로 하는 오브젝트나 지형이 있는 경우와 같이 동일한 공간 안에서 복잡한 잔향을 디자인할 때 매우 유용합니다. 특정 Room의 AkRoomParams::ReverbAuxBus 역시 "none" (AK_INVALID_AUX_ID)으로 설정해놓을 수 있어, AK::SoundEngine::SetGameObjectAuxSendValues 로 오직 게임에 의해서만 해당 전송 버스을 관리할 수 있게 됩니다.

참고

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

지원이 필요하신가요?

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

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

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

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

Wwise를 시작해 보세요