menu
 
버전
2024.1.6.8842

2024.1.6.8842

2023.1.14.8770

2022.1.19.8584

2021.1.14.8108

2019.2.15.7667

2019.1.11.7296

2018.1.11.6987

2017.2.10.6745

2017.1.9.6501

2016.2.6.6153

2015.1.9.5624

menu

Wwise SDK 2024.1.6
Room과 Portal에 관련된 심화 주제

방해(obstruction)와 차단(occlusion)이 있는 Room과 Portal의 결합

Wwise Spatial Audio에서, 다른 공간으로부터 오는 소리 전달은 Room과 Portal 추상화를 통해 관리됩니다. Rooms with at least one propagation path to the listener through open Portals simulate diffraction. Additionally, rooms model sound transmission through walls. 회절 및 Transmission Loss(전달 손실) 값은 이미터 게임 오브젝트에 적용됩니다. Wwise Authoring 애플리케이션에서 감쇠 곡선을 사용하여 사운드를 감쇠할지, 아니면 내장된 게임 매개 변수를 사용할지 선택할 수 있습니다. If a sound doesn't have an attenuation instance (either custom or ShareSet), the project diffraction and transmission curves are used to attenuate the sound.

If you are using built-in game parameters to drive RTPCs, any obstruction and occlusion values set on a Portal do not affect the RTPC values. This behavior is intentional and occurs because RTPCs only provide one value per game object, but a single game object can have multiple paths through different Portals, each with different obstruction and occlusion values.

If you want 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 AK::SoundEngine::SetObjectObstructionAndOcclusion sound engine API. 포털 입구의 차단에는 게임에서 Spatial Audio API AK::SpatialAudio::SetPortalObstructionAndOcclusion을 사용할 수 있습니다. AK::SpatialAudio::SetGameObjectToPortalObstructionAK::SpatialAudio::SetPortalToPortalObstruction 을 사용하면 이미터와 근처 포털, 리스너와 근처 포털 또는 연속된 한 쌍의 포털 사이의 사운드 경로에 방해를 적용할 수도 있습니다. 예상치 못한 결과를 낳을 수 있으므로 어떠한 경우에도 게임 오브젝트 매개 변수로 룸 ID와 함께 AK::SoundEngine::SetObjectObstructionAndOcclusion 을 호출해서는 안 됩니다. Spatial Audio와 동일 공간 내 방해를 사용하는 방법에 대한 더 자세한 내용은 Room 안의 장애물 모델링하기 를 참고하세요.

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

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가 전달 경로를 계산하는 데 사용하는 알고리즘보다 레이 캐스팅의 비용이 훨씬 더 비싸기 때문입니다. 이미터와 리스너 사이 공간 내 방해는 기본적으로 동일한 공간에서 발생하기 때문에, 장애물이 리스너나 이미터를 완전히 가리지 않으며 해당 사운드는 공간 내 반사를 통해 리스너에 도달한다고 추정합니다. 이는 보조 전송이 아니라 원본(dry/direct) 신호 경로를 통해서만 올바르게 모델링됩니다. 즉, Obstruction이 올바른 매커니즘이라는 뜻입니다. 때문에 게임은 AK::SoundEngine::SetObjectObstructionAndOcclusion 을 호출해야 합니다.

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

복잡한 Room 리버브 구현하기

게임에 Spatial Audio 공간과 함께 AK::SoundEngine::SetGameObjectAuxSendValues 를 사용할 수도 있습니다. 게임의 센드는 AkRoomParams::ReverbAuxBus 로 정의된 대로 공간 오브젝트의 보조 버스에 대한 센드에 추가됩니다.

또한, Spatial Audio가 이미 회절과 전달을 사용하더라도 Spatial Audio 이미터와 함께 AK::SoundEngine::SetObjectObstructionAndOcclusion 이나 AK::SoundEngine::SetMultipleObstructionAndOcclusion 을 사용할 수 있습니다. 방해와 차단 및 이들을 Spatial Audio Room과 Portal에서 사용하는 방법에 대한 더 자세한 정보는 Modeling Sound Propagation from Other RoomsRoom 안의 장애물 모델링하기 를 참고하세요.

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

참고

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

지원이 필요하신가요?

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

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

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

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

Wwise를 시작해 보세요