[团队] 在Unity项目中使用FMOD来管理你的音效

Hello各位小伙伴, 今天来聊一下Unity项目中的音效管理.

我目前正在研发的项目, 使用了FMOD的来管理音效和背景音乐.

FMOD本身是一款免费的音频集成工具. 自身的音效编辑器还拥有强大的编辑功能.

首先, 做一个简单的入门说明:

获取FMOD编辑器:

首先进入官网 https://www.fmod.com/download 下载对应平台的编辑器软件 (需要先注册一个FMOD的账号)

选择对应你操作系统的软件版本, 下载并安装:

[团队] 在Unity项目中使用FMOD来管理你的音效_第1张图片

安装软件, Mac系统直接拖拽, Windows可以选择你要安装的路径

[团队] 在Unity项目中使用FMOD来管理你的音效_第2张图片

打开FMOD Studio 编辑器, 默认打开就是一个新工程, 可以先选择保存工程, 下一步方便我们使用. 如果已经有现成的项目. 可以选择菜单上的 File/Open, 或者干脆直接双击 *.fspro 打开项目.

首先我们需要从外部将各个原始的音频文件导入项目, 可以使用菜单 File/Import Assets... 来导入.

原音频文件会从目标目录拷贝到项目 Assets 目录下.

[团队] 在Unity项目中使用FMOD来管理你的音效_第3张图片

但是实际操作起来, 一个比较快的方式是直接将你想要的资源拷贝到项目 Assets 目录下, 建议对于所有的音频文件进行统一的命名和整理. 在例子中我们统一采用 字母小写 + 下滑线的方式命名各种音频. 

[团队] 在Unity项目中使用FMOD来管理你的音效_第4张图片

编辑音频项目[Studio]

导入资源后, 我们要开始建立对应的音频事件. 

首先进入工程后, 我们可见刚导入的音效文件显示 #unimported 的标签. 选中对应的音效, 在右键菜单内点击 Import 导入音频

[团队] 在Unity项目中使用FMOD来管理你的音效_第5张图片

 [团队] 在Unity项目中使用FMOD来管理你的音效_第6张图片

 导入后, 在音效 ui_click 上, 右键菜单, 选择 Create Event. 鉴于这是一个普通的UI点击音效, 无需特殊设置, 可以选择 2D Action. (3D音效对应你的游戏场景, 可选择3D环绕立体声, 视情况而定)

[团队] 在Unity项目中使用FMOD来管理你的音效_第7张图片

[团队] 在Unity项目中使用FMOD来管理你的音效_第8张图片

而对于背景音乐 music_level_1.mp3, 之后需要设置循环播放, 所以选择 2D Timeline. 然后进入到 Events 面板, 点击对应的音频, 在右侧 Timeline 编辑界面上点击右键, 并选择 Add Loop Region 为其添加循环事件属性

[团队] 在Unity项目中使用FMOD来管理你的音效_第9张图片 [团队] 在Unity项目中使用FMOD来管理你的音效_第10张图片

OK, 目前已有的一个点击音效和一段BGM已经准备就绪, 但是右侧仍显示 #unassigned 的字样. 我们需要将每个音频分配到对应的 .bank 文件内, 压缩为对应的二进制文件. FMOD默认有一个 Master Bank, 不要轻易的删除这个文件. 我们可将目前的两个文件都分配到 Master Bank 即可 

[团队] 在Unity项目中使用FMOD来管理你的音效_第11张图片

对了, 别忘了 Ctrl + S 保存你的工程.

导出Bank文件[Studio]

编辑工作完成后, 下一步是打包Bank文件

首先, 设置一下你输出的平台, 打开软件的 Perferences 菜单, Build页, 根据你发布的平台来设置你要打包的平台类型. PC和Mac应用使用Desktop预设即可, 手游可以添加Mobile平台, 并配置压缩品质 (Demo里我们使用默认的配置)

Built banks output directory 选框内, 可将路径直接设置到当前对应的Unity项目音频配置路径内.

[团队] 在Unity项目中使用FMOD来管理你的音效_第12张图片

设置完毕后, 进入 File/Build 构建当前平台的Bank, 多平台请直接选择 Build All Platforms

[团队] 在Unity项目中使用FMOD来管理你的音效_第13张图片

本例中, 将构建路径设置为Unity项目根目录下 FMOD 文件夹内, 构建后如图: 

 [团队] 在Unity项目中使用FMOD来管理你的音效_第14张图片

导入FMOD插件[Unity]

在FMOD官网可下载到对应Unity版本的Plugins插件包:

[团队] 在Unity项目中使用FMOD来管理你的音效_第15张图片 打开Unity项目. 双击导入插件包, 并按照提示进行整合和设置.

[团队] 在Unity项目中使用FMOD来管理你的音效_第16张图片

导入后, 首次弹出引导面板时可进行对应的配置

[团队] 在Unity项目中使用FMOD来管理你的音效_第17张图片

 在上步中若设置过Unity项目路径, 则可直将 Multiple Platform Build 路径设置为 /FMOD 目录

[团队] 在Unity项目中使用FMOD来管理你的音效_第18张图片

如果在一开始不小心关闭了初始化引导也不要紧, 可以直接进入FMOD Settings 文件内进行配置 

[团队] 在Unity项目中使用FMOD来管理你的音效_第19张图片 [团队] 在Unity项目中使用FMOD来管理你的音效_第20张图片

导入后请打开 FMOD/Event Browser 进行确认, 观察音效是已获得更新:

[团队] 在Unity项目中使用FMOD来管理你的音效_第21张图片

调用音频事件[Unity]

音频导入结束后, 便可着手编辑音频事件了.

基于MonoBehaviour的组件调用可以直接参照教程和例子

音频事件可直接挂载到 GameObject 上, 通过属性菜单可为指定的音频事件编辑开始和结束的事件

[团队] 在Unity项目中使用FMOD来管理你的音效_第22张图片

如果是中大型项目, 有完善的音频管理器, 可在对应调用的环节使用代码触发音频播放:

这里贴一段示例引用, 注意: 音效路径可在 FMOD/Event Browser 中复制得到

using FMOD.Studio;
using FMODUnity;
using UnityEngine;

public class Main : MonoBehaviour
{
    // 音效实例引用
    private EventInstance _sfxButtonClicked;
    
    /// 
    /// 按钮点击时播放音效
    /// 
    public void OnButtonClick()
    {
        if (!_sfxButtonClicked.isValid())
            _sfxButtonClicked = CreateInstance("event:/ui_click");
        
        _sfxButtonClicked.start();
    }
    
    /// 
    /// 创建音效
    /// 
    /// 
    /// 
    public EventInstance CreateInstance(string eventPath)
    {
        var instance = RuntimeManager.CreateInstance(eventPath);
        return instance;
    }
}

[团队] 在Unity项目中使用FMOD来管理你的音效_第23张图片

注意事项

当前版本的FMOD自带ignore配置, 请导入插件后, 自行将对应的忽略配置添加到 .gitignore文件中:

[团队] 在Unity项目中使用FMOD来管理你的音效_第24张图片

 Editor 运行时展示的 FMOD Debug 面板可在 FMOD Settings 内设置关闭

[团队] 在Unity项目中使用FMOD来管理你的音效_第25张图片

[团队] 在Unity项目中使用FMOD来管理你的音效_第26张图片

若Bank 文件过大, 或者基于未来动态扩展考虑, 可将部分音频分配到不同Bank内, 在导入时需要选择对应的类型, 默认是将Bank文件拷贝到 Streaming Assets路径下. 也可以作为 AB 包导入并进行热更操作.

[团队] 在Unity项目中使用FMOD来管理你的音效_第27张图片

以上!

你可能感兴趣的:(Unity,团队,unity,编辑器,游戏引擎)