什么是Audio Toolkit?

简而言之,ClockStone Audio Toolkit是一套Unity工具,可以帮助您:

  • 轻松管理项目的所有音频资产。让您的音频艺术家配置音频属性,如音量,随机音高,渐变等 - 所有这些都来自Unity检查器。
  • 以最简单的方式播放脚本代码中的音频 - 通过调用具有唯一音频ID的静态函数:AudioController.Play(“MySoundEffect1”);
  • 或者,您可以使用ExampleBehaviour目录中提供的组件来触发音频而无需任何脚本(例如PlayAudio组件)
  • 根据检查器中音频艺术家设置的音频配置,MySFX可以是简单的声音文件,也可以是更复杂的音频行为。请注意,Unity所需的所有必要音频对象与AudioSource组件将自动创建。

它不是什么

Audio Toolkit不是一个单独的音频引擎。它是使用Unity内部音频引擎(FMOD)播放和管理音频的一组非常方便的工具。它支持Unity提供的所有功能,但也受到相同的限制。

为什么你不应该直接使用Unity的AudioSource来播放音频

通过使用AudioSource设置预制件,您有很多理由不应播放音频:

  • 如果他/她必须在项目的资产层次结构的许多不同位置浏览数百个对象,只是为了调整基本参数(如音量或随机变量),您的音频艺术家就会发疯。
  • 您不希望程序员关心音频应该如何发声 - 他们只需要触发某个音频ID,而音频艺术家就会定义实际播放的内容
  • 如果经常触发很多声音,那么对于性能尤其如此,尤其是在移动平台上。Audio Toolkit使用一种称为“池”的方法来快速创建和销毁音频对象,同时避免了内存问题。

Audio Toolkit是一个完整的解决方案

该工具包旨在解决与播放声音和音乐相关的所有问题(在Unity基础声音引擎的限制范围内)。不再需要使用具有AudioSource组件的对象。Audio Toolkit是旧系统的完全替代品,并不会以任何方式限制您的声音设计。它只是帮助您更快更轻松地到达那里!
Toolkit支持所有官方Unity平台(包括PC,Mac,iOS,Android等)。它可以与C#或Java脚本一起使用。

音频工具包功能

音频类别

  • 按类别定义音频资产
  • 设置属性,例如整个类别的音量,可在运行时调整并影响所有播放的音频
  • 类别可以是构成子类别树的其他类别的父级
  • 设置特殊属性,例如每个类别的音量滚降或多普勒效果
  • 将Unity 5音频混音器分配到类别以实现例如音频闪避

音频设置(按音频项目)

  • 指定音量,音高,延迟,平移,起始偏移等。
  • 限制同时播放相同类型音效的数量
  • 定义两个几乎同时播放的声音只播放一次的时间间隔。这可以防止在这种情况下产生不必要的声音伪影
  • 设置3D声音的最小/最大距离
  • 自动淡入和淡出
  • 随机音高或音量
  • 在子项级别上也可以指定音量,音高等参数,并可以在音频项级别批量更改它们
  • 将设置从一个项目复制/粘贴到另一个项目

音频播放

  • 播放环境音频效果(没有特定位置)
  • 在指定的3D位置播放音频
  • 播放音频,用于移动物体
  • 使用可选的淡入/淡出暂停/取消暂停
  • 播放多个自定义音效的无间隙链
  • 预定的声音效果停止(可选淡出)
  • 安排播放无间隙音频效果链

音频行为

  • 将多个音频文件分配给一个音频项目,并在几个模式之间进行选择

    • 随机
    • 随机但两次不一样
    • 序列
    • 两个或所有声音效果同时发生
    • 使用可选的交叉淡入淡出循环一系列音效
    • 循环序列可以是随机的
    • 简介/循环序列
    • Intro / Loop / Outro序列
  • 播放具有可选重叠,随机延迟或无间隙的音频文件序列

音乐

  • 用于播放在不同音轨之间自动交叉淡入淡出的音乐的特殊功能
  • 音乐曲目播放列表管理与随机播放,循环播放等。

氛围声音

  • 具有类似于音乐功能的自动交叉渐变的独立环境声道

管理

  • 音频事件日志,用于跟踪在哪个时间点触发的音频项目
  • 音频概览窗口,包含所有可用音频项目的列表,带有搜索功能(对于大型项目非常有用)
  • 在一个场景中使用多个AudioController将特定场景与全局使用的资源分开
  • 内存管理:自动从内存中卸载场景特定的音频

脚本界面

  • 播放功能返回播放相应声音效果的(poolable)AudioObject的参考。此参考可用于操纵特定音频效果。(例如停止或淡出)
  • 代表在声音播放完毕后收到通知
  • 在运行时动态添加或删除新的音频项目或类别
  • 支持流式传输音频和从资产包中加载

性能

  • 优化的性能,尤其适用于移动平台
  • 对象池以避免内存开销
  • 使用特定于场景的AudioControllers来控制要为每个场景加载的音频资源的数量。

谁使用Audio Toolkit?

该工具包被认为是无数商业产品中使用的专业标准解决方案,包括着名游戏工作室的着名AAA游戏(遗憾的是,由于法律原因,这些游戏未被命名)

以下是Codemasters的声明:
“Codemasters在我们的移动游戏开发中使用Clockstone的Audio Toolkit,因为它在我们的AAA控制台游戏如DiRT,F1和RaceDriver:GRID中增加了Unity3D的许多高级功能。诸如色度控制,动态语音管理,混合类别与组属性,音高,音量和样本随机化,自动淡入淡出,无间隙链接和事件记录等功能与Unity3D的快速周转相结合,使小型团队能够与巨人保持同步; Clockstone的迅速和专业支持使Audio Toolkit更具便宜价值。
- Simon N Goodwin,首席程序员,Codemasters“

如何使用:

  • 创建一个名为“AudioController”的唯一GameObject,并添加了AudioController脚本组件
  • 创建一个包含以下组件的AudioObject预制件:Unity的AudioSource,AudioObject脚本和PoolableObject脚本(如果需要池化)。
  • 然后在此预制件中设置自定义AudioSource参数。接下来,在AudioController中将自定义预制件指定为“音频对象”。
  • 使用Inspector在AudioController中创建音频类别,例如“Music”,“SFX”等。 
  • 对于脚本要播放的每个音频,创建一个在相应类别中具有唯一名称的“音频项目”。
    您还可以在Unity项目视图中选择音频剪辑列表,然后按“添加所选音频剪辑”按钮。这将为每个剪辑创建一个音频项目。
  • 根据需要为每个音频项创建尽可能多的音频子项。子项代表实际的音频文件(Unity AudioClip)。如果指定了多个子项,Audo Toolkit将按随机或按特定顺序选择音频剪辑,具体取决于音频项设置。
    您还可以在Unity项目视图中选择音频剪辑列表,然后按“添加所选音频剪辑”按钮。这将为每个剪辑创建一个子项。

要播放音频项目,请调用静态功能

AudioController.Play(“MyUniqueAudioItemName”)

使用

AudioController.PlayMusic(“MusicAudioItemName”)

演奏音乐。此功能可确保一次只播放一个音乐文件,并根据AudioController实例中的配置自动处理交叉淡入淡出。

更多例子:

AudioController.Play(“MySoundEffect1”); 
AudioController.Play(“MySoundEffect2”,新的Vector3(posX,posY,posZ)); 
AudioController.PlayMusic(“MusicTrack1”); 
AudioController.SetCategoryVolume(“Music”,0.5f); 
AudioController.PauseMusic();

unity AudioToolkit 音频工具包的简介+使用方法相关推荐

  1. Python语言学习之图表可视化:python语言中可视化工具包的简介、安装、使用方法、经典案例之详细攻略

    Python语言学习之图表可视化:python语言中可视化工具包的简介.安装.使用方法.经典案例之详细攻略 目录 python语言中可视化工具包的简介 python语言中可视化工具包的安装 pytho ...

  2. java apache commons_Apache commons(Java常用工具包)简介

    Apache Commons是一个非常有用的工具包,解决各种实际的通用问题,下面是一个简述表,详细信息访问http://jakarta.apache.org/commons/index.html Be ...

  3. Unity 之 音频类型和编码格式介绍

    Unity 之 音频类型和编码格式介绍 一,加载音频文件 二,Load Type:加载类型 三,编码格式与品质级别 Inspector窗口显示多个导入设置.这些设置决定了:加载行为,压缩行为,质量,采 ...

  4. Unity 物理系统 -- 碰撞体简介(碰撞、触发条件)

    Unity 物理系统 -- 碰撞体简介(碰撞.触发条件) 几个常用的碰撞体: Box Collider:盒碰撞体,盒碰撞体是一个立方体外形的基本碰撞体,该碰撞体可以调整为不同大小的长方体,可用作门.墙 ...

  5. Unity 播放音频文件

    Unity 播放音频文件参考代码: 1 public void Play(string strSoundName, float autoDestroyTime = 0f, bool bLoop = f ...

  6. ML之FE:特征工程中数据缺失值填充的简介、方法、全部代码实现之详细攻略

    ML之FE:特征工程中数据缺失值填充的简介.方法.全部代码实现之详细攻略 目录 特征工程中数据缺失值填充的简介.方法.经典案例

  7. Dataset之DA:数据增强(Data Augmentation)的简介、方法、案例应用之详细攻略

    Dataset之DA:数据增强(Data Augmentation)的简介.方法.案例应用之详细攻略 目录 DA的简介 DA的方法 DA的案例应用 DA的简介 数据集增强主要是为了减少网络的过拟合现象 ...

  8. php获取音频的时长,PHP编程获取音频文件时长的方法【基于getid3类】

    本文实例讲述了PHP编程获取音频文件时长的方法.分享给大家供大家参考,具体如下: 问题: 昨天在新增论坛功能的时候,移动端显示音频文件需要知道是多长的音频: 具体解决方案如下: 首先就是数据库中增加保 ...

  9. 音频服务器未运行怎么办,音频服务未运行怎么办 音频服务未运行解决方法【详细介绍】...

    最近许多网友在使用电脑时遇到了"音频服务未运行"的错误提示,出现这种提示的原因有很多,症状也不尽相同.今天我们就针对不同的"音频服务未运行"症状进行分析解答,希 ...

最新文章

  1. 我拍了拍 Redis,没想到被移出了群聊......
  2. Javascript变量的注意要点
  3. -bash: jps: command not found
  4. In-Sat:今年全球VoIP用户将达5500万
  5. 第一次运行Spring Boot有感
  6. 美团王兴评价马云:“我仍然认为他有诚信问题”,大家怎么看?
  7. mysql查询网址_bootstrap+flask+mysql实现网站查询
  8. 使用supervisord 来守护 nginx进程
  9. VC按最小化、关闭按钮、Esc都隐藏主窗口
  10. ubuntu使用问题与解决记录[持续更新]
  11. 系统登录界面(收集)
  12. 深入理解java虚拟机---JDK8-废弃永久代(PermGen)迎来元空间(Metaspace)(十二)
  13. Windows中cmd命令启动Oracle数据
  14. javascript DOM 操作基础知识小结
  15. 丁磊:顶尖技术人才的特质,是热爱与专注!
  16. 大话设计模式之设计原则
  17. matlab滤波器滤除低频直流信号,极低频滤波器MATLAB
  18. 快速傅里叶变换的原理及实现
  19. netty 拆包和粘包 (三)
  20. 蓝桥杯算法(python)

热门文章

  1. 云服务器同账号不同地域数据迁移的方法
  2. GIS开发之二维地下管线综合管理系统(Arcgis)第一节 总体介绍
  3. 不可思议的德国汉堡,一座不能被忽略的城市!
  4. 地图的电子围栏功能的技术选型
  5. 优秀的软文标题应该怎么起才能吸引人?
  6. 豆豆趣事[2012年03月]
  7. MYSQL查看表结构
  8. 迭代器(lterator)
  9. 2022 年(23届)计算机保研经验分享(北航、东南、西工大、哈工大、中山等)
  10. Onvif OSD相关操作