FMOD+UE4的免费3D声音方案

在拜访了AimSound之后,我们用UE4实现了一套免费声音解决方案。达到一些原本用UE4无法达到的设计效果。
效果1:固定声源在人朝向不同的时候,左右耳渲染出方向感;
效果2:实现游戏中根据遮挡物和距离动态设定声源发出声音的Lowpass。

操作系统:Win10
游戏引擎:Unreal Engine 4.12.5
FMOD的UE4插件: FMOD Studio UE4 Engine Integration for Windows/Android, 版本号fmodstudio10809ue4.12win64
声音引擎:FMOD Studio 1.08.09
声音算法插件:Oculus Audiosdk_1.0.4

安装解压过程省略,从部署插件开始说起

I. 部署插件

首先需要将Oculus插件部署到FMOD,然后需要将FMOD插件部署到UE4中。

I.I 将Oculus插件部署到FMOD

先建立FMOD工程,然后保存FMOD工程。退出FMOD后,打开FMOD工程目录(不是FMOD目录)。我的是F:\FMODProj\SoundTweak,在这个文件夹下建立“Plugin”文件夹


FMOD+UE4的免费3D声音方案_第1张图片
image.png

将\audiosdk_1.0.4\AudioSDK\Plugins\FMOD\Win32这个文件夹拷进去


FMOD+UE4的免费3D声音方案_第2张图片
image.png

然后再次运行FMOD工程,就有了一个新的Effect: OCULUS SPATIALIZER
FMOD+UE4的免费3D声音方案_第3张图片
OCULUS SPATIALIZER

I.2 将FMOD插件部署到UE4

首先把FMOD的UE4插件放入引擎的插件目录(也可以放在项目的Plugins文件夹里)

FMOD+UE4的免费3D声音方案_第4张图片
解压出的插件文件

FMOD+UE4的免费3D声音方案_第5张图片
拷贝到引擎中Plugins文件夹

然后启动 UE4,选择 Edit->Project Settings->Plugins->FmodStudio
FMOD+UE4的免费3D声音方案_第6张图片
插件设定

需要注意的是上图中Advanced-Plugin Files,这些文件并不在你的FMOD的UE4插件中,需要手工导入到相应目录。由于我们准备发布到PC64位,所以就把文件都复制到下图中的这个文件夹中
FMOD+UE4的免费3D声音方案_第7张图片
下面的几个文件都需要拷贝到这里!

具体有哪些呢?第一个文件 ovrfmod 的来源是从Oculus Audio SDK里来,32或者64根据项目实际情况来。我用的是x64文件夹。这个是必须装的,把它放入上图的引擎中FMOD插件文件夹中的相应位置
FMOD+UE4的免费3D声音方案_第8张图片
ovrfmod 就在这里!!

然后是fmod_gain和fmod_distance_filter(最后,我没有装,那么上图(插件设定)中也要去掉Advanced->Plugin Files里面的1和2), 这两个不知道装了有什么用。但是好像是需要装的。 如果你不装,也没关系。 需要强调的是,这两个文件是在FMOD软件的安装目录找到的。这个关于打包的问题这里没有讲完,最后一段是打包后的检查工作,以确保FMOD的Bank在打包运行时候能被读取和应用。
FMOD+UE4的免费3D声音方案_第9张图片
fmod_gain和fmod_distance_filter 在这里!!

2. FMOD生成Bank和Event

我们需要把Wav文件封装到FMOD里去,暴露出事件和参数接口。先启动FMOD

2.1 导入Wav

FMOD+UE4的免费3D声音方案_第10张图片
导入Wav

2.2 拖拽素材到Event中

FMOD+UE4的免费3D声音方案_第11张图片
拖拽素材到Event中

2.3 依次放到Master Bank里

FMOD+UE4的免费3D声音方案_第12张图片
依次放到Master Bank里

2.4 添加参数Occlusion

FMOD+UE4的免费3D声音方案_第13张图片
添加一个参数,Occlusion

2.5 选择Event,添加FMOD Lowpass Simple 效果器

FMOD+UE4的免费3D声音方案_第14张图片
添加FMOD Lowpass Simple 效果器

2.6 添加曲线,用于调整参数与Lowpass之间的关系

FMOD+UE4的免费3D声音方案_第15张图片
添加曲线

2.7 单击添加的轨道的任意一处,加点

FMOD+UE4的免费3D声音方案_第16张图片
加点

2.8 拖拽白色时间轴,调整点。根据效果调整。

FMOD+UE4的免费3D声音方案_第17张图片
调整好的样子

2.9 如果想循环播放,可以这样加上循环命令

FMOD+UE4的免费3D声音方案_第18张图片
只有加了循环,音轨上才会出现蓝色的条。这个音轨就是循环的

2.10 别忘了保存后(过程省略)再Build

FMOD+UE4的免费3D声音方案_第19张图片
Build

2.11 从FMOD工程里找到Build导入到UE4的工程中去

FMOD+UE4的免费3D声音方案_第20张图片
注意大小写和文件夹名

3. UE4中播放Bank声音

打开UE4,这时候发现虽然新建了一个文件夹,但是里面会显示出有4个文件夹。如图


FMOD+UE4的免费3D声音方案_第21张图片
这里能看到我们的Event

3.I 建立播放类

|变量名|变量类型|变量初值|
| :-------------: |:-------------:|:-------------:|
| FMODEvent | FMODEvent |None(Editable)|
| FMODInstance | FMODEvent Instance |None|
| LastNoOcclusionPos | Vector |0,0,0 |

3.2 初始化方法

FMOD+UE4的免费3D声音方案_第22张图片
初始化方法

3.3 调整Occlusion,注意拼写和大小写

FMOD+UE4的免费3D声音方案_第23张图片
调整Occlusion

3.4 利用射线做遮挡

如果射线找得到玩家,那么没有遮挡;如果射线照不到玩家,开始计算遮挡。


FMOD+UE4的免费3D声音方案_第24张图片
利用射线做遮挡

3.5 打包检查

上图是我的插件位置,下图是的打包出来的文件。我们需要确保这几个dll都有,如果没有,从上图拷贝到下图就可以了。这个步骤很重要。


FMOD+UE4的免费3D声音方案_第25张图片
DLL拷贝

点击跳转到优酷视频观看效果

参考资料
VR 游戏音频设计
An idiots guide to using the Oculus SDK with FMOD

你可能感兴趣的:(FMOD+UE4的免费3D声音方案)