Wwise SDK 2023.1.8
|
Here is the outline of this page:
아래 표에는 Spatial Audio의 Room과 Portal 기능들을 음향 현상 측면으로 묶어놓았습니다. 그리고 각 기능에 대해 Spatial Audio가 어떤 역할을 하는지, 사운드 디자이너는 이를 어떻게 프로젝트에 적용할 수 있는지 간단한 설명이 나와있습니다.
Acoustic Phenomenon | Spatial Audio | Sound Design in Wwise |
---|---|---|
Diffraction of direct path |
|
|
Diffuse field (reverb) |
|
|
Room coupling: reverb spatialization and diffraction of adjacent room's diffuse field |
|
|
Transmission |
|
|
Spatial Audio Room과 Portal과 함께, 리스너 소리를 제외한 Room 안의 소리 전달은 Room과 Portal 추상화에 의해 관리됩니다. 다른 Room 내부의 이미터가 Portal 및 연결된 회절(diffraction)을 통해 리스너에 도달하고, 공간들의 '벽'을 통한 전달(transmission)을 통해 도달합니다. Ensure that the Enable Diffraction and Transmission box is checked in the Positioning tab of each sound that need to be propagated.
인접한 Room의 각 이미터에 대해 Spatial Audio는 Shadow Boundary, 즉 연결된 Portal의 가장 가까운 모서리로부터의 회절 각도를 계산합니다. For more information, see Diffraction (회절). 180도까지 가능한 이 회절 각도는 0에서 100% 사이 계수에 매핑되어 오디오 변환을 만들어낼 수 있습니다. 여기에는 두 가지 방법이 있습니다. It can set the diffraction value on the emitter game object or set the value of the Diffraction built-in game parameter.
The diffraction value on the emitter game object is used to drive curves in the Authoring. By default, the project obstruction curves are used. They can be authored in the Project Settings' Obstruction/Occlusion tab and will impact Volume, LPF, and HPF to emulate volume and frequency-dependent behaviors. Project obstruction curves impact all the sounds in a project, which makes them less flexible. However, custom Diffraction curves can be created in an Attenuation ShareSet applied to the sound.
Alternatively, the Diffraction built-in parameter can be used. To do so, create a game parameter and set its Bind to Built-in Parameter drop-down menu to Diffraction. 이 게임 매개 변수에 입력되는 값의 범위는 게임 오브젝트에 의해 결정되므로 각 이미터마다 고유한 범위를 갖습니다. 설정이 끝나면 RTPC로 자신의 Actor-Mixer의 속성을 제어할 수 있습니다. Output Bus Volume과 LPF는 기본 Volume과 LPF에 대해 특권이 있는데, 그 이유는 이들이 직접 신호 경로에만 적용되고 Room의 잔향의 보조 전송에는 적용되지 않기 때문입니다.
주의: Compared to curves, using a built-in parameter requires more manipulations. Built-in game parameters also only apply on a single value for all positions of a game object. When multiple values are set, the smallest is taken. Recall that multiple game object positions are used when a Room has more than one Portal, so a built-in parameter is not recommended for this scenario. |
A Room's diffuse energy is an essential part of the Wwise Spatial Audio sound propagation model. The reverb signal chain, or wet path, also has diffraction ("wet diffraction") applied to it. Wet diffraction models the diffuse field of a room being scattered as it propagates out of portals or around obstacles. Wet diffraction is applied on the input connection to the Room bus (that is, the auxiliary send from the emitter to the room), so that each sound uses its own individual diffraction curve. The wet diffraction value for each Room Auxilliary Send is calculated using the path between the emitter and the listener.
The wet diffraction calculation is similar to the dry diffraction calculation, but with a modified diffraction angle calculation as the path passes through the Room to which the emitter is sending. Spatial Audio assumes that the diffuse energy enters or exits a Room perpendicular to its Portals, and does not diffract inside the Room itself. Thus, when the path enters or exits the Room, it computes a diffraction angle relative to the Portal's normal vector, effectively using only half of the angle as the path bends into the Portal. All geometry inside the Room is ignored, because the Room is treated as an ideally diffuse field.
Consider the following scenario, with an emitter, listener, and a single sound propagation path. The emitter has two Room Auxilliary Sends: one to "Outside," the room the emitter is currently in, and one to "Room A," an adjacent room.
Wet diffraction is calculated separately for each of the two Room Auxilliary Sends:
Finally, the wet diffraction value can never exceed the dry diffraction value. It is clamped if the calculation above results in a value greater than the dry diffraction value.
When the Spatial Audio's initialization setting AkSpatialAudioInitSettings::bCalcEmitterVirtualPosition
is set, the position of the emitters located in Rooms that are adjacent to the listener is modified such that they seem to appear from the diffracted angle, if applicable. 아래 3D Game Object Profiler의 스크린샷을 보면, 리스너 (Listener L)는 Portal의 오른쪽에 있고 '진짜' 이미터는 왼쪽 아래에 있습니다 (Emitter E, 방향 벡터 없음). Spatial Audio는 이동 거리를 유지하며 이미터의 위치를 왼쪽 위로 옮겨, 변경된 위치가 마치 그 구석에서 오는 것처럼 만듭니다. 리스너는 Portal 가장자리의 음영 영역에 대해 약 45도 각도에 위치하고 있어, 두 교차점에 작성되어 있듯이 27의 회절을 만들어냅니다.
Room에 여러 개의 Portal이 연결돼있을 경우, Spatial Audio는 이미터에 복수의 위치를 할당할 수 있습니다 (Portal 당 하나씩). MultiPosition_MultiDirection
모드를 사용하면 특정 Portal의 활성화 또는 비활성화 여부가 다른 Portal의 지각적 볼륨에 영향을 끼치지 않도록 할 수 있습니다.
When an emitter is in a different room than the listener, and has no direct line of sight through a portal, Spatial Audio models sound transmission through walls by applying a transmission loss factor to the Game Object.
Spatial Audio models sound transmission between Rooms differently depending on whether or not geometry is available. Refer to Modeling Transmission Between Rooms with Geometry and Modeling Transmission Between Rooms without Geometry.
Regardless of how the transmission loss coefficient is derived, it is applied on the Room send connection, between the emitter and each Room, and is converted using the curves defined in the attenuation settings to map transmission loss to volume attenuation and filtering. Refer to Setting up a Sound for Diffraction and Transmission.
By default, the project occlusion curves are used for transmission. They can be authored in the Project Settings' Obstruction/Occlusion tab and will impact Volume, LPF, and HPF to emulate volume and frequency-dependent behaviors. Project occlusion curves impact all the sounds in a project, which makes them less flexible. However, custom Transmission curves can be created in an Attenuation ShareSet applied to the sound.
It is also possible to map transmission loss to any other Wwise parameter with an RTPC bound to the Transmission Loss built-in parameter. However it is difficult to use the Transmission Loss built-in parameter effectively because the transmission path is typically one of many sound paths between and emitter and listener, and RTPCs are applied at the Game Object scope.
참고: Using curves to simulate transmission loss is preferred over an RTPC, because it provides greater accuracy when modeling both transmission and diffraction. This is due to the fact that RTPCs can not be applied to individual sound paths, therefore any parameter mapped to a transmission loss RTPC will also affect any potential diffraction paths originating from an emitter. |
When geometry is available, sound transmission is modeled using AkAcousticSurface::TransmissionLoss
. Spatial Audio Geometry allows for detailed sound transmission modeling because you can, if desired, assign different transmission loss coefficients to each individual triangle. Spatial Audio also uses room geometry to compute a spread value for the transmission path. When a sound emitter is blocked by one or more geometric surfaces, then the transmission loss factor of the geometry (as defined by AkAcousticSurface::transmissionLoss) is applied. If there is more than one surface between the emitter and listener, then the maximum transmission loss factor is taken. Refer to Setting Up Geometry for Transmission for more details.
참고: For accurate room transmission, it is necessary to define a shape for the Room so that the Room has a source and an extent. The Room shape is calculated from the bounding box surrounding the geometry associated with the Room. To set up Room transmission via the API, refer to Setting up Room Geometry. If you do not want to use the geometry for diffraction and reflection calculation, set the AkGeometryInstanceParams::UseForReflectionAndDiffraction to false on the Room's AkGeometryInstance . |
If geometry is not available to Spatial Audio, the transmission loss value is approximated from each Room's AkRoomParams::transmissionLoss
value. Transmission loss between rooms is calculated from the Room settings' AkRoomParams::TransmissionLoss
parameter, by taking the maximum value between the listener's Room and the emitter's Room. A bounding box for the Room is approximated by fitting a bounding box around all Portals. This bounding box is used to calculate the spread value of the transmission path.
In addition to sound transmission of individual emitters within a Room, Spatial Audio models sound transmission of the Room itself and this includes the contribution of the diffuse reverb field, as well as any Room tones that are playing inside a Room, transmitting through walls.
Transmission loss filtering and attenuation is applied at the input of a Room Auxilliary Bus, so that individual emitters can contribute differently to the reverb. However, it is the output of the Room Game Object that is spatialized. It is necessary to set AkRoomParams::transmissionLoss
to properly spatialize the Room's reverb. A low transmission loss value emphasizes panning the Room towards the Room's center (the center of the Room bounding box) and a high value emphasizes panning towards the Room's Portals.
Because Room tones do not have a point source position, they also rely on AkRoomParams::transmissionLoss
to simulate transmission. Therefore, it is always necessary to have a representative value assigned to the Room's AkRoomParams::transmissionLoss
.
Portal을 통해 리스너의 공간으로 관통하는 인접 공간들의 분산 에너지는 해당 Portal에 위치한 음원들처럼 보일 수 있어 기존 리스너의 공간에 영향을 끼치게 됩니다. 즉, 리스너 Room의 Auxiliary Bus로 전송돼야 합니다. 이를 위해선 앞서 언급한 것처럼, 인접한 Room의 보조 버스에서 Enable Game-Defined Sends 체크 상자를 체크하면 됩니다. Game-Defined Send Offset을 이용해 다른 공간의 잔향으로 전송되는 양을 조정할 수 있습니다.
사운드 전달은 여러 공간에 대해서도 동작합니다. 전달 경로를 검색하면 Spatial Audio 내에서 Room 트리를 검색합니다. Room을 이미 검색한 경우에는 검색을 중지해 순환 연결을 피합니다. 얼마나 깊이까지 검색할 지는 Spatial Audio의 초기화 설정 AkSpatialAudioInitSettings::uMaxSoundPropagationDepth
에 의해 결정됩니다 (기본 설정은 8).
Spatial Audio는 각 Room에 대해 하나의 게임 오브젝트를 Wwise에등록합니다.
주의: 이 게임 오브젝트의 위치 지정과 보조 센드 값을 직접 수정해서는 안 됩니다. |
Room에 리스너가 있을 경우, 해당 Room의 게임 오브젝트는 이 리스너를 따라가도록 움직입니다. 따라서 Room과 Listener 오브젝트의 거리는 약 0입니다. 그러나 Room 설정 (AkRoomParams
)에 지정되어있는 방향은 유지됩니다 . 3D 버스의 방향에 대한 설명은 Setting Up a Room Auxiliary Bus in Wwise 를 참고하세요.
리스너가 Room의 바깥에 있을 경우, 이 Room의 게임 오브젝트는 해당 Portal의 위치를 사용합니다. 더 정확히 말해, Portal의 뒷편, 즉 Portal의 접선에 리스너가 투영(projection)되는 위치 선상에서 Portal의 크기 끝에 고정됩니다. 위의 Virtual Positioning and Diffraction Through Portals 섹션에 있는 3D Game Object Profiler 스크린샷에서 Room의 게임 오브젝트를 통해 이를 확인할 수 있습니다.
여러 Portal이 있는 경우, 이미터와 동일한 이유로 MultiPosition_MultiDirection
mode 에서 Room의 게임 오브젝트가 복수의 위치에 할당됩니다.
Portal 내부에서 전환이 일어날 경우 "Room-내부"와 "Portal"의 작동 방식은 부드럽게 보간(interpolate)됩니다.
The Room Game Object's primary purpose is to spatialize reverb (the emitter's "wet path"), however it is possible to leverage the spatialization behavior of Rooms and Portals (described in Room Game Object Behavior) and post events directly on the Room Game Object to implement room tones. For setting up room tones in Wwise, refer to Setting Up a Room Tone in Wwise. For posting events refer to Posting Events on Room Game Objects.
The spread of a sound in Wwise determines the width of the sound field that is constructed when a 3D sound is panned onto an Audio Bus. For most sounds, spread is defined in Wwise by a curve in the attenuation settings of the sound. However, for sounds played on Room Game Objects (i.e. room tones) and for the reverb sent to a Room Auxiliary bus, it is not necessary to define such a curve, because Spatial Audio calculates the spread automatically.
Furthermore, if a sound has a spread curve defined in the attenuation settings in Wwise, and that sound traverses one or more portals, its final spread value is subject to the Aperture value of those portals. The Aperture value can be thought of as an upper-limit placed on the spread of a sound, and simulates the constriction of the sound field as the sound passes through the portal.
The spread of a sound emitter can be visualized in the Game Object 3D Viewer in Wwise, with the following settings:
The Game Object Spread and portal Aperture values can also be viewed in the Obs/Occ tab of the Advanced Profiler.
Game objects may have a Spread value that is calculated by Spatial Audio if they are Radial Emitters.
For Room Game Objects, the Spread value is the same as the Aperture value, and it is calculated by approximating the solid angle that each Portal subtends on the listener. Note that a Room Game Object has a unique spread value per Portal (each Portal is rendered as a unique sound position).
The Aperture value for a Game Object is calculated on a per-path basis, and is the result of the minimum spread value for all Portals traversed in a particular sound path. In the case of Room Game Objects, Spread and Aperture take on the same value.
For a given sound position and listener pair, the final spread value is calculated as follows:
AK::SpatialAudio::SetGameObjectRadius
). If no radius is given, and no spread curve is defined, the spread is take as 0%.The shape of a Portal is defined by the values in AkPortalParams::Extent
. However, a Portal has an area of influence past the box formed by these extents. The effects of a Portal are based on distance from the Portal's center, up to AkPortalParams::Extent::halfDepth
, and extend past the Portal's opening in every direction. Although the Game Object 3D Viewer displays a Portal as a rectangle, in practice this shape is rounded.
The following illustration is a top-down view of a Portal that connects a small Room to the outside.
Room | |
Portal | |
Outside |
The area in green represents the Portal's AkPortalParams::Extent
. The area in blue is the area of influence of the Portal while inside the small Room. The area in red shows the influence of the Portal while outside of the Room. This area extends around the corner and behind the Portal.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요