Wwise SDK 2023.1.8
|
The Geometry API uses emitter and listener positions, and triangles of your game's (typically simplified) geometry in order to compute image sources for simulating dynamic early reflections, in conjunction with the Reflect plug-in. Sound designers control translation of image source positions directly in Reflect, per tweaking of properties based on distance and materials.
Refer to the Reflect Diffraction demo and its code in the Integration Demo 예제 (in SDK/samples/IntegrationDemo) for an example of using the geometry API to simulate Early Reflections in conjuction with with the Reflect plug-in. Look for Spatial Audio Demos > Reflect Demo.
지오메트리에 따른 초기 반사(early reflections, 줄여서 ER)에 대한 기본적인 설명을 보시려면 블로그 Image Source Approach to Dynamic Early Reflections (다이내믹 초기 반사에 대한 허음원 다루기) 와 Creating compelling reverberations for virtual reality (VR을 위한 효과적인 리버브 만들기)를 참고하세요.
참고: 반사 순서는 리스너에 도달하기 전까지 파면(wavefront)이 부딪히는 표면의 개수를 나타냅니다. 예를 들어, 여섯 면으로 둘러싸인 구두 상자 모양의 공간이 있고, 그 안에서 일어나는 1차 반사를 시뮬레이션하려면 이미터당 초기 반사, 즉 허음원(image source)이 여섯 개를 이용합니다. 그러면 6 개의 반사가 만들어집니다. 2차 반사를 시뮬레이션하려면 1차 반사 여섯 개에 더해 다른 다섯 개의 벽에서 발생하는 2차 반사 여섯 개가 있어야 합니다. 그러면 이미터당 36 개의 반사가 만들어집니다. 반사의 개수는 반사 차수의 제곱지수로 증가합니다. Wwise Spatial Audio에서는 현재 4차 반사의 시뮬레이션까지 지원됩니다. 반사 차수는 AkSpatialAudioInitSettings::uMaxReflectionOrder init 설정을 통해 전역적으로 설정됩니다. 이는 또한 AK::SpatialAudio::SetReflectionsOrder 를 이용해 동적으로 변경할 수도 있습니다. |
For each sound that should support dynamic early reflections, make sure an early reflections bus is assigned under the General Settings tab in the Wwise Authoring Tool to indicate the Auxiliary Bus that hosts the desired Reflect plug-in. Spatial Audio가 이 버스와 연결하는 특수한 보조 센드를 구축하게 됩니다. 또는 센드 볼륨을 설정해도 됩니다.
일반적으로 환경 리버브의 경우, 리스너 게임 오브젝트에 Auxiliary Bus가 생성돼 복수의 이미터가 동일한 버스와 효과 인스턴스를 공유하도록 만듭니다. Spatial Audio에 의해 후기 리버브에 사용되는 Room에 대해서는 변함이 없지만, 초기 반사의 경우에는 다릅니다. 각 이미터에는 그 이미터 고유의 위치에 따라 달라지는 자체 반사 세트가 있기 때문입니다. 대신, ER 버스 인스턴스는 이미터 게임 오브젝트에 생성되고, 다양한 이미터는 Auxiliary Bus의 서로 다른 인스턴스를 전송하게 됩니다. This is illustrated in the image of the Voices Graph in the Early reflections sending to late reverberation section below.
Wwise 프로젝트 내의 동적 환경 효과를 효과적으로 다루기 위해서는 버스 구조체 디자인과 관련한 다음 내용을 잘 이해하는 것이 중요합니다.
Spatial Audio와 함께 사용하는 사운드의 감쇠 곡선을 설계할 때, 효율적인 계산을 위해 기억해둬야 할 중요한 것이 있습니다. Sounds that are assigned an early reflections Auxiliary Bus and those that are marked with Enable Diffraction and Transmission in the Authoring tool must be assigned an attenuation with finite radius to limit the computation of paths.
Spatial Audio는 사운드의 감쇠를 사용해 반사와 회절 경로 계산의 최대 전달 거리를 결정합니다. 따라서 해당 최대 감쇠 거리가 이를 대표하는 값이 되도록 설정하는 것이 중요합니다. 또한, 감쇠가 플랫폼의 지정된 볼륨 한계점 아래로 내려가지 않을 경우 해당 사운드의 반경은 사실상 무한대가 됩니다. 이런 경우 Spatial Audio는 월드에 리스너가 어디 위치해있든 상관 없이 반사와 회절을 계산하려는 시도를 합니다. Both the distance-driven volume and Auxiliary send volume curves must have their final point on the far right side of the curve below the volume threshold to ensure that Spatial Audio calculations are limited to a finite radius around the emitter Game Object. 볼륨 한계점은 프로젝트 설정 대화창에서 정의되어 Authoring Tool의 Project 메뉴에서 확인할 수 있습니다.
참고: 만약 Game Object에 여러 개의 활성화된 사운드가 각각 다른 감쇠가 할당되어 재생 중일 경우, 전체 감쇠 반경 중 가장 큰 것만 경로 처리 제한에 사용됩니다. 경로 처리는 한 Game Object당 한 번씩만 실행되며, 이 경로는 필요시 여러 사운드에 재사용됩니다. |
If you want the early reflections to have an attenuation design similar to the emitter's, you can set the Reflect effect curves to Use Attenuation. We call this Reflect's simplified mode. Make sure that the Early Reflections Auxiliary Bus input bus configuration is set to Audio Objects for the sound engine to be able to retrieve the corresponding attenuation curves.
대개의 경우 다양한 환경을 표현하기 위해 다양한 Auxiliary Bus가 사용되며, 이 버스들은 이러한 환경의 리버브 특징을 에뮬레이트하는 각각의 리버브 ShareSet을 가질 수 있습니다. When using dynamic ER, such as those processed by Reflect under Spatial Audio, late reverberation may still be designed using reverbs on Auxiliary Busses. However, you may want to disable the ER section of these reverbs (if applicable), as this should be taken care of by Reflect.
On the other hand, Reflect should run in parallel with the aux busses used for the late reverberation. The figure below shows a typical bus structure, where the three Auxiliary Busses under the EarlyReflections bus each contain a different ShareSet of Reflect. 이 설계를 보면, 초기 반사를 발생시키는 ShareSet를 몇 개만 사용했다는 걸 알 수 있습니다. This is motivated by the fact that the "spatial aspect" of this Effect is driven by the game geometry at runtime. 여기서 서로 다른 ShareSet를 사용한 이유는, 다른 오브젝트에서 방사되는 소리보다 플레이어(리스너)에 의해 방사되는 소리의 다양한 감쇠 곡선을 얻기 위함입니다. Using Reflect's simplified mode can also reduce the number of Reflect ShareSets needed. You can read more about it in the Intended Reflect Workflow.
The ER bus (hosting Reflect) will exist in as many instances as there are game objects currently playing sounds with an assigned ER bus. 허음원(image source)의 위치가 이미터의 위치에 따라 달라지므로 이는 매우 중요합니다. ER 버스의 라우팅을 올바르게 설정하기 위해서는 아래 그림과 같이 Listener Relative Routing 체크 상자를 활성화해야 합니다. 이렇게 하면 ER 버스의 다양한 인스턴스에 의해 발생되는 신호가 다음 믹싱 버스 다운스트림의 단일 인스턴스로 올바르게 믹싱됩니다. 이 단일 인스턴스는 이 이미터( AK::SoundEngine::SetListeners
로 설정)를 듣게 되는 게임 오브젝트에 해당되며, 이 게임 오브젝트는 주로 최종 리스너인 플레이어(또는 카메라)가 됩니다.
동일한 게임 오브젝트에 대해 재생중인 여러 사운드에 서로 다른 초기 반사 보조 버스가 할당된 경우, 해당 버스의 여러 인스턴스는 동일한 이미터 게임 오브젝트에 생성됩니다. The reflection calculations that are performed by Spatial Audio will still only be done once per game object, however the results will be sent to the two unique instances of the Reflect plug-in. 이렇게 하면 플러그인의 서로 다른 ShareSet를 사용하는 사운드별로 반사 곡선을 커스터마이징할 수 있습니다.
주의: 모든 이미터-인스턴스가 리스너의 버스에 병합되도록 하기 위해서는 ER 버스의 Listener Relative Routing을 활성화해야 하지만, 3D Spatialization 모드를 None으로 설정해야 Wwise에 의한 '3D 공간화 중첩'을 방지할 수 있습니다. Likewise, you should not use attenuation, unless you want additional attenuation to be applied on top of the image-source curves in Reflect. |
또한, 후기 리버브를 처리하는 데 사용했던 Auxiliary Bus로 전송된 게임 오브젝트(이미터)로 인해 ER 버스와 후기 리버브가 연결됩니다. 이러한 과정이 매우 유용한 이유는, ER이 발생된 다음 후기 리버브의 색을 정하고 '밀도'를 높이는 데 활용되기 때문입니다. In order to enable this, you need to make sure you enable the Use game-defined auxiliary sends check box in the General Settings tab of the ER bus editor. You can then use the Volume slider below to balance the amount of early reflections you want to send to the late reverb against the direct sound.
다음 표는 앞에서 설명한 내용의 런타임 모습을 나타내고 있습니다. 다음에 유의하세요.
각각의 반사 삼각형에 대해 게임에서 머터리얼 ID를 전달합니다. 이 머터리얼은 Wwise Project에서 Acoustic Texture의 형태로 Virtual Acoustics ShareSet에서 편집됩니다. 여기서 각 머터리얼의 흡수 특징을 정의하게 됩니다.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요