UE4 集成 Wwise 插件知識積累
本博文默認認為讀者已經有一定的Wwise、Unreal知識基礎,重點是總結一些原理及代理流程,並沒有過多介紹基本使用,如果需要了解相關基礎知識可以查看博文最後的“相關文檔鏈接”
- 在Montage 中Add Notify “AkEvent”事件原理
Montage的 “AkEvent” Notify事件是調到了 Wwise Plugin 提供的“AnimNotify_AkEvent” 函數中
在“AnimNotify_AkEvent” 中調用全局的“GetAkComponent”,調用到 Wwise 的C++中的“FAkAudioDevice::GetAkComponent”
在這個函數中,會全局掃描一個所有的Component,並過濾出 AkComponent 組件,如果找到直接返回,如果沒找到就 AttachToComponent 到 參數AttachToComponent的 組件中。
所以可以看到在可以從Mesh身上獲得 AkComponent 組件,如下:
個人不建議這麽做,這樣每次都會掃描掃一次所有組件,可以增加一個自定義通知,在自定義通知上再做事件處理。
- UE4 的Wwise Plugin 中自動添加LocalPlayerController 為Wwise的 Listener 原理
這個是Wwise作為UE4插件時, 自動加載初始化的, AkAudioDevice 會全局存在唯一對象,就是在這裏初始化
當判斷是LocalPlayerController時,獲取到RootComponent ,然後把New出來的UAkComponent 組件添加進去,這樣就添加了一個Listener,就可聽到發聲者的聲音。
所以可以通過以下方式GetAkComponent 進行PostAkEvent
相關文檔鏈接
Unreal 中使用wise的官方文檔:https://www.audiokinetic.com/library/edge/?source=UE4&id=index.html
Wwise官方提供了一個Unreal樣例:https://www.audiokinetic.com/library/edge/?source=UE4&id=usingwwisespatialaudio.html
Wwise 相關知道參考:https://www.audiokinetic.com/library/edge/?source=Help&id=welcome_to_wwise
UE4 集成 Wwise 插件知識積累