1. 程式人生 > >UE4 集成 Wwise 插件知識積累

UE4 集成 Wwise 插件知識積累

lib 進行 mesh strong anim 了解 全局 基礎知識 dex

本博文默認認為讀者已經有一定的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 插件知識積累