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