Wwise Unity Integration Documentation
|
A. 표면 리플렉터와 포털
포털이 공간 영역을 열어 소리가 전달되도록 하듯이 표면 리플렉터는 반사적인 표면을 통해 소리가 전달되도록 합니다. 표면 리플렉터 튜토리얼 의 끝부분에서 간단한 큐브를 표면 리플렉터로 사용할 경우 리플렉션이 메시의 열린 부분에서 일어나는 것을 볼 수 있었습니다. 이 문제를 해결하기 위해서 Spatial Audio Portal은 리플렉션 경로를 인식하며 통과시킵니다. 심지어 리플렉션 경로는 포털의 경계선에서 회절합니다.
- 설정 방법은 간단합니다. 공간으로의 포털을 설치하면 표면 리플렉터가 작동합니다.

Game Object 3D Viewer에서 포털을 통한 리플렉션 경로
B. 표면 리플렉터와 리버브
늦은 리버브가 있는 Room의 경우 리버브에 초기 리플렉션을 추가하여 지오메트리를 더욱 인식하도록 할 수 있습니다.
- Wwise 프로젝트에서 Reflect Effect가 적용된 Auxiliary Bus를 여세요.
- General Settings 탭에서 Use game-defined auxiliary sends가 선택되었는지 확인하세요.

초기 리플렉션를 공간 리버브로 전달하는 Auxiliary Bus Property Editor General Settings 탭
- 씬을 재생하고 작은 Room에서 버튼을 누르세요. 플레이어가 작은 Room에 있을 때 Voice Graph가 다음과 같이 표시됩니다.

Voices Graph에서 작은 공간의 초기 리플렉션은 작은 공간의 리버브로 전달됩니다.
C. 회절
오브젝트가 방사체와 리스너 사이에 나타날 경우 Spatial Audio는 오브젝트를 피해 지나갈 회절 경로를 생설할 수 있습니다. 모서리 주위의 경로 각도에 따라 사운드가 감쇠되어 방해를 시뮬레이션합니다. 회절은 Sound마다 그리고 Surface Reflector마다 활성화할 수 있습니다. 회절이 활성화된 사운드를 방사하는 방사체는 회절이 활성화된 반사적 표면에서만 회절합니다.
- Sound에서 회절 활성화하기:
- Positioning 탭에서 Enable Diffraction 체크 상자가 활성화되었는지 확인하세요.

Sound에서 회절 활성화하기
-
AkSurfaceReflector 컴포넌트에서 회절 활성화하기
- Enable Diffraction을 선택하세요. 그러면 Wwise Spatial Audio에 전송된 지오메트리에서 회절 모서리가 생성됩니다. 회절 모서리는 Wwise가 게임에 연결되었을 경우 게임 오브젝트 뷰어에서 확인할 수 있습니다.
- Enable Diffraction On Boundary Edges도 확인하세요. 이 체크 상자는 이전의 체크 상자가 체크되었을 때 나타납니다. 경계 모서리는 한 삼각형에만 연결된 모서리를 말합니다. 예를 들어 Unity Quad 3D Object의 모서리가 경계 모서리로 간주됩니다.

Diffraction enabled AkSurfaceReflector
- Wwise Unity Demo 씬에서는 실외 방사체, 건물의 경계선과 외부에 회절이 활성화되어 있습니다. 회절 경로는 보라색으로 표시됩니다. 각 회절 경로는 사운드가 들려올 곳인 가상 근원지를 생성합니다.

Game Object 3D Viewer에서 회절 경로
D. Transmission (전달)
이미터와 리스너 간에 오브젝트가 나타날 경우 사운드가 이 오브젝트도 통과할 수 있습니다. Spatial Audio는 해당 사운드의 직접 경로에 차단 필터링을 적용하여 이 현상을 모델링합니다. 차단값은 0~1이며 AkSurfaceReflector나 AkRoom 컴포넌트에서 적용될 수 있습니다. 그런 다음 이 차단값이 Wwise로 전송되어 연관된 필터가 해당 프로젝트의 차단 곡선에 따라 적용됩니다. 보통 값이 1.0일 경우 사운드가 완전히 차단되며 값이 0.0일 경우 사운드가 지오메트리를 통해 전달될 수 있습니다.
- 공간 음향 초기 설정에서 전달을 활성화하세요

Spatial Audio Init Settings
- 사운드의 전달값은 이미터로부터 리스너로의 직접 경로 안에서 사운드가 만나는 AkSurfaceReflector나 AkRoom 컴포넌트의 최대 차단값입니다.
-
AkSurfaceReflector 컴포넌트에서 Occlusion Values 배열을 구성하여 표면 리플렉터의 각 하위 메쉬에 대한 차단값을 연결하세요.

AkSurfaceReflector 컴포넌트의 Occlusion Values 배열
-
AkRoom 컴포넌트에서 Wall Occlusion 매개 변수의 차단값을 변경하세요.

AkRoom 컴포넌트의 Wall Occlusion 매개 변수
- Project Settings의 Obstruction/Occlusion 탭에서 Wwise Authoring의 차단 곡선을 조절하세요.

Wwise Project Settings의 차단 곡선
E. 공간 인식적 표면 리플렉터 (최적화)
Spatial Audio에 추가된 각 표면 리플렉터는 회절각과 가시성에 대해 분석됩니다. 이 단계를 최적화하기 위해서 각 공간이 연결된 표면 리플렉터의 그룹을 가질 수 있습니다. 공간에 연결된 Surface Reflector(표면 리플렉터)는 다른 공간에서 볼 수가 없습니다. Surface Reflector가 공간에 완전히 둘러싸여 있으며 이 공간이 다른 공간과 표면 리플렉터를 공유하지 않을 경우에만 공간에 연결되어야 합니다. 공간을 표면 리플렉터와 연결하는 것은 완전히 선택적입니다. 공간을 선택하지 않으면 표면 리플렉터가 표면 리플렉터의 전역 그룹으로 추가됩니다. 표면 리플렉터를 공간에 연결하면 리플렉션과 회절 계산에 의해 실행되는 레이 캐스팅에 대한 검색 공간이 줄어듭니다.
- 공간을 연결하려면 AkSurfaceReflector 컴포넌트의 Associated Room에서 Room을 선택하세요.

Room-Aware AkSurfaceReflector
.
Helper class that knows a Wwise Event and when to trigger it in Unity. As of 2017....
Definition: AkEvent.cs:36
UnityEngine.Vector3 axis
The axis used to find the contribution of each environment
Definition: AkEnvironmentPortal.cs:17
static bool Call(string Uri, string Args, string Options, out string Result)
Perform a call to the Wwise Authoring. See Querying the Wwise Project for more information.
Definition: AkWaapiClient.cs:184
(DEPRECATED) This script is deprecated as of 2019.2. Early reflections, Diffraction and Room Reverb c...
Definition: AkSpatialAudioEmitter.cs:9
bool decodeBank
Decode this SoundBank upon load
Definition: AkBank.cs:20
AK.Wwise.AcousticTexture[] AcousticTextures
The acoustic texture per submesh. The acoustic texture represents the surface of the geometry....
Definition: AkSurfaceReflector.cs:17
bool loadAsynchronous
Check this to load the SoundBank in the background. Be careful, if Events are triggered and the Sound...
Definition: AkBank.cs:23
bool drawDiffractionPaths
This allows you to visualize geometric diffraction sound paths between an obstructed emitter and the ...
Definition: AkSpatialAudioDebugDraw.cs:18
void ClosePortal(UnityEngine.GameObject in_gameObject)
Closes the portal on trigger event
Definition: AkRoomPortal.cs:132
ulong GetID()
Access the portal's ID
Definition: AkRoomPortal.cs:99
float reverbLevel
The reverb control value for the send to the reverb aux bus.
Definition: AkRoom.cs:29
Trigger triggerDelegate
All components reacting to the trigger will be registered in this delegate.
Definition: AkTriggerBase.cs:19
static bool IsConnected
Is the client connected
Definition: AkWaapiClient.cs:33
Sorts AkEnvironments based on the selection algorithm. The selection algorithm is as follows:
Definition: AkEnvironment.cs:75
Sorts AkEnvironments based on their priorities.
Definition: AkEnvironment.cs:61
float transitionDuration
Duration of the fade. See AK::SoundEngine::ExecuteEventOnAction()
Definition: AkEvent.cs:72
static bool Unsubscribe(ulong SubscriptionID, int TimeoutMs, out string Result)
Unsubscribes from a topic.
Definition: AkWaapiClient.cs:166
float reflectionsAuxBusGain
(DEPRECATED) As of 2019.2, the early reflections send volume can be set per sound,...
Definition: AkSpatialAudioEmitter.cs:20
virtual UnityEngine.Vector3 GetUpward()
Definition: AkGameObj.cs:228
This component converts the provided mesh into Spatial Audio Geometry.
Definition: AkSurfaceReflector.cs:10
float roomReverbAuxBusGain
(DEPRECATED) As of 2019.2, the Room Reverb Aux Bus Gain is set by the Game-Defined Auxiliary Sends Vo...
Definition: AkSpatialAudioEmitter.cs:28
uint diffractionMaxPathLength
(DEPRECATED) As of 2019.2, diffraction is enabled in the Sound Property Editor in the Authoring tool.
Definition: AkSpatialAudioEmitter.cs:39
static SpatialAudioListenerList SpatialAudioListeners
Returns the list of active Unity Game Objects that are designated to be spatial audio listeners.
Definition: AkSpatialAudioListener.cs:36
static bool Subscribe(string Uri, string Options, WaapiEventCallback Callback, out ulong SubscriptionID, out string Result)
Subscribes to a topic. See Subscribing to Topics in the Wwise Authoring API for more information.
Definition: AkWaapiClient.cs:75
bool drawDiffractionPaths
(DEPRECATED) Spatial Audio Debug Drawing were moved to the new AkSpatialAudioDebugDraw component.
Definition: AkSpatialAudioEmitter.cs:55
This class represents the list of active Unity Game Objects that are designated to be spatial audio l...
Definition: AkSpatialAudioListener.cs:60
bool isLocalizedBank
Is the bank localized (situated in the language-specific folders)
Definition: AkMemBankLoader.cs:20
void UpdateGeometry()
Update the surface reflector's geometry in Spatial Audio.
Definition: AkSurfaceReflector.cs:202
override void OnEnable()
Definition: AkRoom.cs:86
static bool Unsubscribe(ulong SubscriptionID, out string Result)
Unsubscribes from a topic.
Definition: AkWaapiClient.cs:149
bool drawSecondOrderReflections
(DEPRECATED) Spatial Audio Debug Drawing were moved to the new AkSpatialAudioDebugDraw component.
Definition: AkSpatialAudioEmitter.cs:49
The full Wwise Authoring API is exposed to Unity as a native plugin for the Windows and macOS platfor...
Definition: AkWaapiClient.cs:6
void LoadNonLocalizedBank(string in_bankFilename)
Load a SoundBank from WWW object
Definition: AkMemBankLoader.cs:45
AK.Wwise.AuxBus reflectAuxBus
(DEPRECATED) As of 2019.2, the early reflections auxiliary bus can be set per sound,...
Definition: AkSpatialAudioEmitter.cs:13
This component represents a sound object in your scene tracking its position and other game syncs suc...
Definition: AkGameObj.cs:21
Add this script on the game object that represent a listener. This is normally added to the Camera ob...
Definition: AkAudioListener.cs:16
bool EnableDiffractionOnBoundaryEdges
Switch to enable or disable geometric diffraction on boundary edges for this mesh....
Definition: AkSurfaceReflector.cs:30
void SetGeometry()
Sends the mesh's triangles and their acoustic texture to Spatial Audio
Definition: AkSurfaceReflector.cs:175
uint diffractionMaxPaths
(DEPRECATED) As of 2019.2, diffraction is enabled in the Sound Property Editor in the Authoring tool.
Definition: AkSpatialAudioEmitter.cs:36
Defines the behavior of a AkEventPlayable within a AkEventTrack.
Definition: AkEventPlayableBehavior.cs:14
bool drawFirstOrderReflections
(DEPRECATED) Spatial Audio Debug Drawing were moved to the new AkSpatialAudioDebugDraw component.
Definition: AkSpatialAudioEmitter.cs:46
void ExitedRoom(AkRoom room)
Called when exiting a room.
Definition: AkRoomAwareObject.cs:80
void UnloadBank(UnityEngine.GameObject in_gameObject)
Unloads a SoundBank
Definition: AkBank.cs:75
delegate void Trigger(UnityEngine.GameObject in_gameObject)
Delegate declaration for all Wwise Triggers.
This enables us to detect intersections between portals and environments in the editor
Definition: AkEnvironmentPortal.cs:80
static bool Subscribe(string Uri, string Options, WaapiEventCallback Callback, int TimeoutMs, out ulong SubscriptionID, out string Result)
Subscribes to a topic. See Subscribing to Topics in the Wwise Authoring API for more information.
Definition: AkWaapiClient.cs:106
bool Remove(AkSpatialAudioListener listener)
Removes listeners from the list
Definition: AkSpatialAudioListener.cs:92
AK.Wwise.AuxBus reverbAuxBus
The reverb auxiliary bus.
Definition: AkRoom.cs:25
void LoadLocalizedBank(string in_bankFilename)
Load a language-specific bank from WWW object
Definition: AkMemBankLoader.cs:52
delegate void WaapiEventCallback(ulong SubscriptionID, string Contents)
Delegate ran when a subscription is triggered
override void HandleEvent(UnityEngine.GameObject in_gameObject)
Loads the SoundBank
Definition: AkBank.cs:66
This will call AkSoundEngine.SetSwitch() whenever the selected Unity event is triggered....
Definition: AkSwitch.cs:17
bool drawSecondOrderReflections
This allows you to visualize second order reflection sound paths.
Definition: AkSpatialAudioDebugDraw.cs:12
AkGameObjPositionOffsetData m_positionOffsetData
When not set to null, the position will be offset relative to the Game Object position by the Positio...
Definition: AkGameObj.cs:38
virtual UnityEngine.Vector3 GetForward()
Definition: AkGameObj.cs:221
UnityEngine.GameObject sender
GameObject from whom the callback function was called
Definition: AkEvent.cs:18
An AkRoom is an enclosed environment that can only communicate to the outside/other rooms with AkRoom...
Definition: AkRoom.cs:8
virtual UnityEngine.Vector3 GetPosition()
Definition: AkGameObj.cs:210
AK.Wwise.AuxBus reflectionsAuxBus
Definition: AkEarlyReflections.cs:14
Add this script on the game object that represent a listener. This is normally added to the Camera ob...
Definition: AkSpatialAudioListener.cs:19
A playable asset containing a Wwise event that can be placed within a AkEventTrack in a timeline.
Definition: AkEventPlayable.cs:16
void EnteredRoom(AkRoom room)
Called when entering a room.
Definition: AkRoomAwareObject.cs:71
System.Collections.Generic.List< int > unloadTriggerList
Reserved.
Definition: AkBank.cs:29
uint reflectionsOrder
(DEPRECATED) As of 2019.2, the Reflection Order is set in the Spatial Audio Initialization Settings.
Definition: AkSpatialAudioEmitter.cs:23
float wallOcclusion
Occlusion level modeling transmission through walls.
Definition: AkRoom.cs:33
static bool Call(string Uri, string Args, string Options, int TimeoutMs, out string Result)
Perform a call to the Wwise Authoring. See Querying the Wwise Project for more information.
Definition: AkWaapiClient.cs:209
Event callback information. Event callback functions can receive this structure as a parameter
Definition: AkEvent.cs:13
AkCallbackInfo info
For more information about the event callback, see the classes derived from AkCallbackInfo.
Definition: AkEvent.cs:15
A track within timeline that holds AkEventPlayable clips.
Definition: AkEventTrack.cs:20
static void Disconnect()
Disconnects from the connected Wwise Authoring application
Definition: AkWaapiClient.cs:50
This will call AkSoundEngine.SetState() whenever the selected Unity event is triggered....
Definition: AkState.cs:17
Definition: AkRoom.cs:156
UnityEngine.Mesh Mesh
The mesh to send to Spatial Audio as a Geometry Set. We recommend using a simplified mesh.
Definition: AkSurfaceReflector.cs:13
string bankName
Name of the bank to load
Definition: AkMemBankLoader.cs:17
AkEnvironment[] environments
Definition: AkEnvironmentPortal.cs:22
bool drawHigherOrderReflections
This allows you to visualize third or higher order reflection sound paths.
Definition: AkSpatialAudioDebugDraw.cs:15
ulong GetID()
Access the room's ID
Definition: AkRoom.cs:81
void RemoveGeometry()
Remove the surface reflector's geometry from Spatial Audio.
Definition: AkSurfaceReflector.cs:211
override void HandleEvent(UnityEngine.GameObject in_gameObject)
Opens the portal on trigger event
Definition: AkRoomPortal.cs:126
AkRoom AssociatedRoom
Optional room with which this surface reflector is associated. It is recommended to associate geometr...
Definition: AkSurfaceReflector.cs:34
AK.Wwise.Event roomToneEvent
Wwise Event to be posted on the room game object.
Definition: AkRoom.cs:36
This class is an example of how to load banks in Wwise, if the bank data was preloaded in memory....
Definition: AkMemBankLoader.cs:11
int priority
Definition: AkRoom.cs:22
bool drawFirstOrderReflections
This allows you to visualize first order reflection sound paths.
Definition: AkSpatialAudioDebugDraw.cs:9
Use this component to define a reverb zone. This needs to be added to a collider object to work prope...
Definition: AkEnvironment.cs:23
AkCallbackType type
AkSoundEngine.PostEvent callback flags. See the AkCallbackType enumeration for a list of all callback...
Definition: AkEvent.cs:21
bool enableActionOnEvent
Enables additional options to reuse existing events. Use it to transform a Play event into a Stop eve...
Definition: AkEvent.cs:44
Base class for the generic triggering mechanism for Wwise Integration. All Wwise components will use ...
Definition: AkTriggerBase.cs:12
AkCurveInterpolation curveInterpolation
Fade curve to use with the new Action. See AK::SoundEngine::ExecuteEventOnAction()
Definition: AkEvent.cs:41
bool isEnvironmentAware
Is this object affected by Environment changes? Set to false if not affected in order to save some us...
Definition: AkGameObj.cs:25
float reflectionMaxPathLength
(DEPRECATED) As of 2019.2, the Reflection Max Path Length is set by the sound's Attenuation Max Dista...
Definition: AkSpatialAudioEmitter.cs:16
This script deals with initialization, and frame updates of the Wwise audio engine....
Definition: AkInitializer.cs:22
bool Add(AkSpatialAudioListener listener)
Uniquely adds listeners to the list
Definition: AkSpatialAudioListener.cs:74
Completely obstructs/occludes the emitter of the current game object from its listeners if at least o...
Definition: AkEmitterObstructionOcclusion.cs:12
uint diffractionMaxEdges
(DEPRECATED) As of 2019.2, diffraction is enabled in the Sound Property Editor in the Authoring tool.
Definition: AkSpatialAudioEmitter.cs:33
bool drawHigherOrderReflections
(DEPRECATED) Spatial Audio Debug Drawing were moved to the new AkSpatialAudioDebugDraw component.
Definition: AkSpatialAudioEmitter.cs:52
float roomToneAuxSend
Send level for sounds that are posted on the room game object; adds reverb to ambience and room tones...
Definition: AkRoom.cs:41
UnityEngine.GameObject soundEmitterObject
Game object onto which the Event will be posted. By default, when empty, it is posted on the same obj...
Definition: AkEvent.cs:69
float reflectionsVolume
Definition: AkEarlyReflections.cs:21
const int MAX_ROOMS_PER_PORTAL
AkRoomPortals can only connect a maximum of 2 rooms.
Definition: AkRoomPortal.cs:10
Use this component to add a Large Mode position to any AkAmbient in a Scene.
Definition: AkAmbientLargeModePositioner.cs:8
Add this script on a GameObject to print Spatial Audio paths.
Definition: AkSpatialAudioDebugDraw.cs:6
Completely obstructs the spatial audio portal of the current game object from the spatial audio liste...
Definition: AkRoomPortalObstruction.cs:13
An AkRoomPortal can connect two AkRoom components together.
Definition: AkRoomPortal.cs:8
float[] OcclusionValues
The occlusion value per submesh. The occlusion value is a control value used to adjust sound paramete...
Definition: AkSurfaceReflector.cs:22
EnvListWrapper[] envList
Unity can't serialize an array of list so we wrap the list in a serializable class
Definition: AkEnvironmentPortal.cs:85
Use this component to define an area that straddles two different AkEnvironment's zones and allow mix...
Definition: AkEnvironmentPortal.cs:13
static bool Connect(string Uri, uint Port)
Connects to a Wwise Authoring application
Definition: AkWaapiClient.cs:14
This component makes a GameObject aware of AkRoom components. When using Spatial Audio rooms,...
Definition: AkRoomAwareObject.cs:15
static AkAudioListener? TheSpatialAudioListener
Returns the "single" spatial audio listener.
Definition: AkSpatialAudioListener.cs:28
Loads and unloads a SoundBank at a specified moment. Vorbis sounds can be decompressed at a specified...
Definition: AkBank.cs:16
Use this component to attach a Wwise Event to any object in a scene. The sound can be started at vari...
Definition: AkAmbient.cs:36
Set an early reflections auxiliary bus and send volume for a particular game object.
Definition: AkEarlyReflections.cs:7
bool saveDecodedBank
Save the decoded SoundBank to disk for faster loads in the future
Definition: AkBank.cs:26
AkActionOnEventType actionOnEventType
Replacement action. See AK::SoundEngine::ExecuteEventOnAction()
Definition: AkEvent.cs:38
bool EnableDiffraction
Switch to enable or disable geometric diffraction for this mesh.
Definition: AkSurfaceReflector.cs:26
지원이 필요하신가요?
질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!
지원 페이지를 방문해 주세요
작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요